深度神经网络(DNN)已经成为现代人工智能的基石,在图像识别、语音处理、自然语言理解等领域取得了令人瞩目的成就。本文将从基础概念出发,详细讲解深度神经网络的原理、结构,并介绍三种最流行的网络模型:多层感知器(MLP)、卷积神经网络(CNN)和递归神经网络(RNN),帮助你快速建立对深度学习的系统认知。
1. 什么是深度神经网络
机器学习是一门多领域交叉学科,专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。它是人工智能的核心,是使计算机具有智能的根本途径。如果论及哪一个机器学习的领域最为热门,非人工智能莫属,这就是深度学习。深度学习框架又名深度神经网络,一个复杂的模式识别系统,在过去的几十年里,机器学习给我们的日常生活带来了巨大的影响,包括高效的网络搜索、自动驾驶系统、计算机视觉和光学字符识别。
深度神经网络模型已经成为机器学习和人工智能的有力工具。深度神经网络(DNN) 的输入层和输出层之间有多层的人工神经网络(ANN)。
深层神经网络的迅速发展应用致使语音识别错误率上较传统语音识别方法错误率减少 30%(20年来最大降幅),同时也大幅削减了图像识别的错误率,自2011年以来深度学习图像识别的错误率从 26% 到 3.5%,而人类是 5%。
小提示: 如果你刚开始接触深度学习,可以先从“分类”任务入手理解——比如判断一张图片是猫还是狗,深度神经网络通过学习大量样本自动提取特征,最终输出结果。
2. 深度神经网络的基本原理
深度神经网络模型最初是基于神经生物学的启发。生物神经元通过与树突的突触接触接收多个信号,并通过轴突发送单一的动作电位流。通过对输入模式进行分类,可以降低多个输入的复杂性。受这种输入输出方式的启发,人工神经网络模型由组合多个输入和单一的输出单元组成。神经网络以模拟人类大脑的功能为目标,并基于一个简单的人工神经元:输入信号的加权和的非线性函数(如 max(0, value))。这些伪神经元被聚合成层,一层的输出成为序列中下一层的输入。
简单来说,深度神经网络就是通过多层非线性变换,将原始输入一步步转换成更高层、更抽象的特征表示,最终完成分类或回归等任务。
小提示: 激活函数(如ReLU、Sigmoid)是网络具备“非线性”能力的关键,如果没有它们,再多层网络也只能表达线性关系。
3. 深度神经网络的“深”
深度神经网络在神经网络中采用了深度结构。“深”是指在层次数和单层单元数的深兼具较高复杂性的功能。云计算中的大型数据集可以通过使用额外的和更大的层来捕获更高级数据模式来构建更精确的模型。神经网络的两个阶段被称为 训练(或学习) 和 推断(或预测),它们指的是发展和生产。开发人员选择神经网络的层数和类型,训练确定权值。
网络越“深”,理论上能表达的函数越复杂,但同时也带来了训练难度(如梯度消失、过拟合等),这也正是现代深度学习研究的核心挑战之一。
小提示: 不要盲目增加层数——对于简单任务,浅层网络可能效果更好;对于复杂任务(如高分辨率图像分类),深层网络才有优势。
4. 目前流行的深度神经网络有三种
4.1 多层感知器(MLP)
多层感知器(MLP)是一类前馈人工神经网络(ANN)。MLPs模型是最基本的深度神经网络,其将输入的多个数据集映射到单一的输出的数据集上,由一系列全连接层组成。每一层都是一组非线性函数,它们是前一层所有输出(完全连通)的加权和。
功能函数:
常见问题:MLP 和普通的单层感知机有什么区别?
单层感知机只能解决线性可分问题,而 MLP 通过引入隐藏层和非线性激活函数,可以逼近任意复杂的非线性函数,这就是它的核心优势。
4.2 卷积神经网络(CNN)
卷积神经网络(CNN,或 ConvNet)是另一类深度神经网络。CNN 最常用于计算机视觉。给定一系列来自现实世界的图像或视频,AI系统利用 CNN 学习自动提取这些输入的特征来完成特定的任务,如图像分类、人脸认证、图像语义分割等。
与 MLP 中的完全连接层不同,在 CNN 模型中,一个或多个卷积层通过执行卷积操作从输入中提取简单特征。每一层都是一组非线性函数,这些函数的加权和位于前一层输出的空间附近子集的不同坐标上,允许权重被重用。
应用各种卷积滤波器,CNN 模型可以高水平准确地捕获输入数据,使其成为最受欢迎的计算机视觉应用技术,如图像分类(例如,AlexNet, VGG网络,ResNet, MobileNet)和目标检测(例如,Fast R-CNN, Mask R-CNN, YOLO, SSD)。
- AlexNet。 在图像分类方面,作为2012年第一个赢得ImageNet挑战赛的CNN,AlexNet由5个卷积层和3个全连接层组成。AlexNet需要6100万个权重和7.24亿个MAC(乘法加法计算)来对大小为227×227的图像进行分类。
- VGG-16。 为了达到更高的精度,VGG-16被训练为一个更深层次的16层结构,由13个卷积层和3个全连通层组成,需要1.38亿权值和15.5G MAC对大小为224×224的图像进行分类。
- GoogleNet。 为了提高准确性,同时减少DNN推理的计算,GoogleNet引入了一个由不同大小的过滤器组成的初始模块。GoogleNet比VGG-16具有更好的精度性能,而处理相同大小的图像只需要700万权重和1.43G MAC。
- ResNet。 最新的研究成果ResNet使用了“快捷”结构,达到了人类平均水平的准确率,前5名的错误率低于5%。“捷径”模块用于解决训练过程中的梯度消失问题,使训练具有更深结构的DNN模型成为可能。
近年来CNN的准确率和性能逐渐提高,应用于人们人工智能视觉任务的,超过了人类视觉的平均水平错误率低于5%。
常见问题:为什么CNN在处理图像时比MLP更高效?
因为CNN利用卷积核实现权重共享和局部连接,大大减少了参数量,同时能自动学习空间层次特征(如边缘→纹理→物体部件),而MLP的全连接方式参数量巨大且无法利用图像的空间结构。
4.3 递归神经网络(RNN)
递归神经网络(RNN)是另一类使用顺序数据输入的人工神经网络。RNN是用来解决序列输入数据的时间序列问题的。RNN的输入由当前输入和之前的样本组成。因此,节点之间的连接沿时间序列形成有向图。RNN中的每个神经元都有一个内部存储器,它保存着来自前一个样本的计算信息。
RNN模型在处理输入长度不固定的数据方面具有优势,因此在自然语言处理中得到了广泛的应用。人工智能的任务是建立一个能够理解人类说的自然语言的系统,例如自然语言建模、单词嵌入和机器翻译。
在RNN中,每一层都是输出和前一层状态的加权和的非线性函数集合。RNN的基本单元称为“Cell”,每个Cell层由一系列的Cell组成,层层传递处理使RNN模型能够进行顺序处理。
常见问题:RNN 有哪些局限性?如何解决?
RNN 存在长期依赖问题(梯度消失/爆炸),导致无法记忆较长序列的信息。后来的 LSTM(长短期记忆网络)和 GRU(门控循环单元)通过引入门控机制有效缓解了这一问题,成为实际应用中的主流选择。
5. 深度神经网络应用
深度学习现在已经应用到生活各领域:
- 1. 深度学习应用在音视频的识别上,几乎所有的商用语音识别都是深度学习来完成的,如自然语言理解方面,主要是使用一种叫做LSTM的深度学习方法。
- 2. 深度学习应用于图像识别,目前识别准确率已经超越人类,深度学习成了图像识别的标配。其中图像识别中,应用最广的是人脸识别。
总之,深度神经网络已经深入便捷了人们生活,各类自动驾驶车辆,各种类型的人工智能机器人,智能回答,智能翻译,天气预报,股票预测,人脸比对,声纹比对,以及其他许多有趣的应用,比如智能插画,自动作诗,自动写作文,等都可以通过深度学习来完成深度神经网络。
6. 常见问题(FAQ)
- Q:深度神经网络和普通神经网络有什么区别?
A:普通神经网络通常指只有1~2个隐藏层的浅层网络,而深度神经网络拥有多个隐藏层(一般3层以上),能够学习更复杂的特征表示,但训练也更困难。 - Q:什么是梯度消失问题?
A:在深层网络中,梯度在反向传播时随着层数增加而逐渐衰减,导致靠近输入层的权重几乎无法更新,网络无法有效训练。ResNet的“快捷连接”等结构可以缓解这个问题。 - Q:CNN 和 RNN 可以结合使用吗?
A:可以,例如在视频分析任务中,先用CNN提取每一帧的空间特征,再用RNN分析帧之间的时序关系,这种混合模型在许多场景中表现优秀。 - Q:我该选择哪种网络模型?
A:处理图像、视频等空间数据首选CNN;处理文本、语音、时间序列等序列数据首选RNN或其变种LSTM/GRU;处理结构简单的表格数据或作为入门学习,MLP是不错的选择。
小提示: 实际工程中,很少直接使用最基础的网络结构,往往会根据任务进行改进(如加入注意力机制、正则化等)。建议从经典模型(如AlexNet、LSTM)入手,再逐步学习更先进的变体。
