第5章
神经网络最基本的成分是神经元模型,神经元接受来自n个其他神经元传递过来的输入,通过带权重的连接得到的总输入值与阈值比较,通过激活函数(常用sigmoid函数)处理得到神经元的输出,抽象图为
把多个这样的神经元按一定的层次结构连接起来,就得到了神经网络。
感知机由两层神经元组成,即输入层和输出层,不过其学习能力有限,只能处理线性可分的问题。要解决非线性可分问题,则需要使用多层功能神经元,也即在输入层和输出层之间,插入一层或多层隐层功能神经元。一般的,每层神经元与下一层神经元全互连,神经元之间不存在同层连接,也不存在跨层连接,称为多层前馈神经网络,示意图
神经网络想要学习的东西,就是连接权(权重)和阈值。
多层神经网络学习能力比单层感知机强大很多,需要强大的学习算法,误差逆传播算法(反向传播算法)是代表,反向传播算法是一个迭代学习算法,基于梯度下降策略,以目标的负梯度方向对参数进行调整。工作流程为:先将输入示例提供给输入层神经元,然后逐层将信号前传,直到产生输出层结果;然后计算输出层的误差,再将误差逆向传播至隐层神经元,最后根据隐层神经元的误差来对连接权和阈值进行调整,该迭代过程循环进行,直到达到某些停止条件为止,如训练误差已达到一个很小的值。
标准反向传播算法每次更新只针对单个样例,参数更新得非常频繁,而且对不同样例进行更新的效果可能出现抵消现象,因此往往需进行更多次数的迭代;累积反向传播算法直接针对累积误差最小化,它在读取整个训练集一遍后才对参数进行更新,参数更新的频率低得多,但在很多任务中,累积误差下降到一定程度之后,下降会非常缓慢,这时标准反向传播往往会更快获得较好的解。
反向传播神经网络经常碰到过拟合问题,其训练误差持续降低,测试误差却可能上升,一般有早停和正则化两种缓解策略。早停即在训练集误差降低但验证集误差升高时停止训练,返回具有最小验证集误差的连接权和阈值;正则化的基本思想是在误差目标函数中增加一个用于描述网络复杂度的部分,如连接权与阈值的平方和。
全局最小解与局部极小解,顾名思义,局部极小解是参数空间中的某个点,其邻域点的误差函数值均不小于该点的函数值;而全局最小解则是指参数空间中所有点的误差函数值均不小于该点的误差函数值。在使用基于梯度的搜索中,参数寻优可能陷入局部极小而找不到全局最小,一般可以通过尝试多组不同初始化参数、模拟退火、计算梯度加入随机因素等策略解决。
还有很多其他神经网络模型,如RBF(径向基函数)网络、可进行增量学习或在线学习的ART(自适应谐振理论)网络、竞争学习型的无监督神经网络SOM(自组织映射)网络、可以学习网络结构的级联相关 (Cascade-Correlation) 网络、递归神经网络Elman网络与Boltzmann机等。
典型的深度学习模型就是很深层的神经网络,深度学习能力强大,但难以直接用经典算法(例如标准 BP 算法)进行训练,因为误差在多隐层内逆传播时,往往会发散而不能收敛到稳定状态。无监督逐层训练是多隐层网络训练的有效手段,可以有效地节省了训练开销;另一种节省训练开销的策略是权共享,即让一组神经元使用相同的连接权,在卷积神经网络(CNN)中发挥重要作用,如卷积与池化运算。
从另一个角度理解深度学习,无论是深度信念网络(DBN)还是卷积神经网络(CNN),其多隐层堆叠、每层对上一层的输出进行处理的机制,可看作是在对输入信号进行逐层加工,从而把初始的、与输出目标之间联系不太密切的输入表示,转化成与输出目标联系更密切的表示。换言之,通过多层处理,逐渐将初始的低层特征表示转化为高层特征表示后,用简单模型即可完成复杂的分类等学习任务,由此可将深度学习理解为进行特征学习或表示学习。