1.神经网络的历史
第一阶段(1940-1970)
- 1943年,形式神经元模型的产生(M-P模型);
- 1958年,感知器的提出(经过训练确定神经元的连接权重);
- 1969年,提出感知器无法解决线性不可分问题。
第二阶段(1980-1990)
- 1980年,神经认知机的提出;
- 1982年,Hopfield模型的提出;
- 1986年,误差反向传播算法的提出(利用多层感知器解决线性不可分问题);
- 1989年,卷积神经网络的提出。
2.M-P模型
假设有三个参数,相应的M-P模型如下:
- 其中
为参数,参数需要人为事先计算后决定;
3.感知器模型
- 与M-P模型相比,感知器模型通过训练自动确定参数;
- 感知器模型是有监督学习模型,通过误差修正学习方法迭代求解。
- 误差修正学习策略如下:
其中r是得到的实际值,y是期望值;
- 当y=0,r=1时:增大
的连接权重
,即增大
,减小
——此时y增大;
- 当y=0,r=1时:降低
的连接权重
,即降低
,增大
——此时y减小。
- 感知器模型中,只有输出层神经元是拥有激活函数的神经元。
4.多层感知器模型
多层感知器模型是一个前馈网络,正向传播网络。
问题:无法跨层调整参数
- 输入层和中间层用随机数确定权重;
- 中间层和输出层之间使用误差修正学习方法确定参数,中间层神经元和输出层神经元是拥有激活函数的神经元。
5.误差反向传播算法(BP算法)
BP算法:通过比较实际输出和期望输出得到的误差信号,把误差信号从输出层逐层向前传播得到各层的误差信号,再通过调整各层的连接权重以减小误差。
主要通过梯度下降法调整权重,连接权重的调整值,其中η为学习率,学习率太大会影响稳定性,学习率太小会导致收敛速度过慢。
- 下述举例中的激活函数为sigmoid函数,
;
- 使用最小二乘误差作为误差函数,
。
存在的问题——梯度消失问题
- 如上图,当u远小于0或者远大于1都会导致激活函数导数为0,导致无法调整梯度,即所谓的梯度消失问题。
接下来求解不同情况下连接权重调整值公式:
单层感知器
只有一个输出单元的多层感知器
中间层与输出层(中间层输出为):
- 各项意义如下:
输入层与中间层:
- 各项意义如下:
有多个(q个)输出单元的多层感知器
中间层与输出层(中间层输出为):
- 各项意义如下:
输入层与中间层:
- 各项意义如下:
6.一些神经网络
RBF网络(径向基函数网络)
单隐层前馈神经网路,径向函数作为隐层神经元激活函数,输出层对隐层神经元输出进行线性组合
具有足够多隐层单元的RBF网络能够以任意精度逼近任意连续函数。
训练步骤:确定(随机采样或聚类)、BP算法确定
ART网络(自适应谐振理论网络)
竞争学习型的无监督学习网络
- 比较层:接收输入样本
- 识别层:每个神经元对应一个模式类,计算输入向量与模式类代表向量之间的距离,距离最小者获胜,如果与最小这距离差大于设定的阈值,则当前样本属于该类,并更新该类连接权,否则在识别层新增一个代表当前样本的神经元(重置模块)
SOM网络(自组织映射网络)
竞争学习型的无监督学习网络
将高维数据映射到低维空间(通常是二维),同时保持输入数据在高维空间的拓扑结构,输出层每个神经元都拥有一个权向量
训练:计算样本与输出神经元权向量之间的距离,最小者(最佳匹配单元)获胜,调整最佳匹配单元及其邻近神经元的权向量
级联相关网络
将网络结构也当作学习目标之一:包括隐层数量以及神经元数量的学习
Elman网络
递归神经网络:允许出现环形,将一些神经元的输出反馈作为输入
7.其它
误差函数
- 多分类问题:交叉熵代价函数
- 二分类问题:
- 回归问题:最小二乘误差函数
激活函数
- step函数:用于M-P模型
- sigmoid函数:用于多层感知器,
,曲线变换比较平缓
- tanh函数:
为单调函数
- ReLU函数:修正线性单元,
似然函数
用于计算多层感知器的输出结果
- softmax函数:归一化操作输出概率值
- 回归问题有时选择线性函数作为似然函数,直接输出激活值
梯度下降法
- 批量学习算法:每次迭代训练全部训练样本。可以有效抑制带噪声的样本导致的输入模式剧烈变动,但是训练时间太长;
- 在线学习算法:逐个输入训练样本。训练时间短,但是迭代结果可能无法收敛;
- 小批量梯度下降法(随机梯度下降法):将训练集分为n个子集,每次迭代使用其中一个子集。可缩短单次训练的时间且减少迭代结果变动,但是求得的解可能是局部最优解。
学习率设置
- 根据经验,先设置较大的值,再慢慢减小
- AdaGrad方法进行自适应学习,存在
不断衰减的问题
- AdaDelta方法
- 动量方法,以指数衰减的形式累积之前的学习率,常用的方法。