参考资料西瓜书、南瓜书。
神经网络这一章在机器学习中比较基础,但实际上它在深度学习中广泛应用,涵盖的点和范围非常的多,也是个难点,这里只是概述什么是神经网络以及一些基础概念。
目录
第五章神经网络
1.神经元模型
神经元接收到n个带权重(w1,w2,...)的其他神经元(x1,x2,...)传递的输入信号,与神经元的阈值进行比较,然后通过激活函数处理产生输出。如下图所示的MP神经元
单个M-P神经元:感知机(sgn作激活函数)、对数几率回归(sigmoid作激活函数);
多个M-P神经元形成神经网络。
2.感知机与多层神经网络
(1) 感知机由两层神经网络组成(输入层和输出层),只能处理线性可分数据。
损失函数为:
权重更新(这里用的是随机梯度下降法,随机选用一个样本进行参数更新),是学习率,:
(2) 多层前馈神经网络(可以处理线性不可分),前馈意味着网络信号不能向后传递,即网络拓扑结构上不存在环或回路。
(3) 神经网络的学习过程,就是根据训练数据来调整神经元之间的连接权以及每个功能神经元的阈值。
3.误差逆传播算法(简称BP算法)
多层网络的学习能力比单层感知机要强的多,因此要训练多层网络,需要强大的学习算法,其中BP算法是杰出的代表算法。
(1) 一般说"BP网络",指的是多层前馈神经网络。它的推导过程详见南瓜书。
(2) BP算法的目标是要最小化训练集D的累积误差E,但是实际中标准BP算法采用随机梯度下降,累积BP算法采用的标准梯度下降。
标准BP算法:每次根据一个训练样例更新连接权值和阈值,需要更多次的迭代。
累积BP算法:直接针对累积误差最小化,读取整个训练集D一遍后才对参数进行 更新,其参数更新的频率低得多,当累积误差下降到一定程度后,进一步下降会非常的缓慢。
(3) 正因为其强大的表示能力,BP神经网络经常遭遇过拟合,其训练误差持续降低,但测试误差却可能上升。
缓解BP网络过拟合的策略--
"早停":将数据分成训练集和验证集,当训练集误差降低但验证集误差升高时则停止训练,返回使验证集误差最小的权值和阈值。
"正则化":在误差目标函数中增加一个正则化函数进行权重的约束。
4.全局最小和局部最小
神经网络的训练过程可看作是一个参数寻优的过程,一般找到的最优解都是局部最优解,我们希望跳出局部极小,从而接近全局最小值。
一些策略:
(1) 以多组不同参数值初始化多个神经网络;
(2) 采用模拟退火算法;
(3) 采用随机梯度下降;
(4) 采用遗传算法。