感知机与多层网络
感知机由两层神经元组成,可实现与、或、非运算。
对于训练样例,若当前感知机的输出为
,则感知机的权重调整过程为:
若两类模式是线性可分的,即存在一个线性超平面能够将其分开,感知机的学习过程一定收敛,否则感知机的学习过程将会发生震荡(例如异或问题)。
对于非线性可分问题,可通过增加神经网络层数,介于输入层与输出层之间层级的被称为隐层,隐层和输出层都是拥有激活函数的神经元(多层前馈网络,不存在同层连接和跨层连接)。
误差逆传播算法
反向传播算法(BP算法)不仅可用于多层前馈神经网络,还适用于其他神经网络。
考虑一个单隐层的神经网络,其BP算法原理见P102,这是一个迭代学习算法,在迭代的每一轮中采用广义的感知机学习规则对参数进行更新估计。首先定义网络输出的均方误差:
网络中需要更新的参数共有个,对于给定的学习率
,有:
学习率多大容易导致震荡,过小容易导致收敛速度过慢,有时为了做精细调节,可令和
使用
,
和
使用
。
需要注意的是,BP算法的目标是最小化训练集上的累计误差:
一般标准BP算法每次更新只针对单个样例,参数更新非常频繁,不同样例更新的效果可能出现“抵消”现象,因此为了达到同样的累计误差最小点,标准BP算法往往需要进行更多次的迭代。
累积BP算法直接针对累计误差最小化,在读取整个数据集一遍后才对参数进行更新,更新频率低,但在很多任务中,累计误差下降到一定程度后,进一步下降会非常缓慢,这是标准BP算法往往会更快获得较好的解,尤其在训练数据集
非常大时更明显。
由于神经网络强大的拟合能力,BP神经网络经常遭遇过拟合,有两种策略常用来缓解BP网络的过拟合:“早停”(early stopping)和“正则化”(regularization)。
早停:训练时同时更新参数和估计验证集误差,当训练集误差降低而验证集误差升高时,停止训练,返回具有最小验证集误差的参数。
正则化:在目标函数中增加一个描述网络复杂度的部分,例如权重和阈值的平方和:
全局最小与局部最小
在现实任务中,人们常采用以下策略来避免陷入局部最优,从而进一步接近全局最优:
- 以多组不同参数值初始化多个神经网络,按标准方法训练后,取其中误差最小的解作为最终参数。
- 使用“模拟退火”技术,在每一步都以一定概率接受比当前解更差的结果,该概率要随着时间的推移而逐渐降低,从而保证算法稳定。
- 使用随机梯度下降,与标准梯度下降精确计算梯度不同,随机梯度下降法在计算梯度时加入了随机因素。
- 使用遗传算法。
上述跳出局部最优的技术大多是启发式,理论上缺乏保障。
其他常见神经网络
RBF(Radial Basis Function,径向基函数)网络是一种单隐层前馈神经网络。(P108)
ART(Adaptive Resonance Theory,自适应谐振理论)网络是竞争性学习的代表。竞争性学习是神经网络中一种常用的无监督学习策略,网络的输出神经元相互竞争,每一时刻仅有一个竞争获胜的神经元被激活,其他神经元的状态被抑制。该网络的识别阈值较高时,输入样例会被分成比较精细的模式类;识别阈值较低时会产生比较粗略的模式类。ART比较好地缓解了竞争性学习中的“可塑性-稳定性窘境”(stability-plasticity dilemma)。可塑性是指神经网络要有学习新知识的能力,稳定性指神经网络在学习新知识时要保持对旧知识的记忆,因此ART网络可进行增量学习(incremental learning)或在线学习(online learning)。
SOM(Self-Organizing Map,自组织映射)网络是一种竞争性学习的无监督神经网络,能够将高维输入数据映射到低维空间(通常为二维),同时保持输入数据在高维空间的拓扑结构,即将高维空间中相似的样本点映射到网络输出层中的邻近神经元。
级联相关网络是结构自适应网络的代表,这类网络将网络结构当作学习的目标之一,并希望在训练过程中找到最符合数据特点的网络结构。与一般的前馈神经网络相比,级联相关网络无需设置网络层数、隐层神经元数目,且训练速度较快,但其在数据较小时易陷入过拟合。
深度学习
多隐层神经网络难以直接用经典算法(如标准BP算法)进行训练,易出现梯度消失和梯度爆炸。
无监督逐层训练时多隐层网络训练的有效手段,其基本思想是每次训练一层隐结点,训练时将上一层隐结点的输出作为输入,而本层隐结点的输出作为下一层隐结点的输入,这称为“预训练”(pre-training)。最优再对整个网络做“微调”(fine-tuning)。——“预训练+微调”
让一组神经元使用相同的连接权,如CNN。——“权共享”
以上两种方法都可以节省训练开销。