《周志华 机器学习》学习笔记——第5章 神经网络

仅个人读书笔记.

精辟:两句话讲完一个知识点,最后出个题让你编程(来自网友博客 /笑死我)

5.1 神经元模型

在这里插入图片描述

5.2 感知机与多层网络

感知机由两层神经元组成(如下图), 输入层接收外界输入信号后传递给输出层,输出层是 M-P 神经元(如上图)。
在这里插入图片描述

感知机实现逻辑与、或、非运算——数学原理

计算多个输入,如果其值大于阀值,即输出1, 反之输出0
假如x、y为输入,各可以为0或1。那么:
与: x + y > =2
或:x+y >=1
非:x+y <=0
异或:即分解为“与”和“非”后,再进行“或”
1)u = (x+y >=2), v =(x+y <=0)
2)(u+v) >=1

多层网络 :神经网络的学习过程,就是根据训练数据来调整神经元之间的 “连接权” 以及每个功能神经元的阑值;换言之,神经网 络"学"到的东西,蕴涵在连接权与阙值中。

5.3 误差逆传播算法(反向传播算法,BP算法)

在这里插入图片描述
图 5.7 的网络中有 (d+l+1)q+l 个参数需确定:输入层到隐层的 d×q个权值、 隐层到输出层的q×l个权值、q个隐层神经元的阈值、1个输出层神经元的阔值. BP是一个迭代学习算法,在迭代的每一轮中采用广义的感知机学 习规则对参数进行更新估计。
在这里插入图片描述
BP 算法的目标是要最小化训练集 D 上的累积误差

BP 算法基于梯度下降策略, 以目标的负梯度方向对参数进行调整. 学习率(0,1)控制着算法每一轮迭代中的更新步长,太大则容易振荡,太小则收敛速度又会过慢。

存在的问题:正是由于其强大的表示能力, BP 神经网络经常遭遇过拟合。其训练误差持续降低,但测试误差却可能上升有两种策略常用来缓解BP网络的过拟合.
(1)策略一:早停。 将数据分成训练集和验证集,训练集用来计算梯度、更新连接权和阈值,验证集用来估计误差,若训练集误差降低,但验证集误差升高,则停止训练,同时返回具有最小验证集误差的连接权和阈值;
(2)策略二:正则化。基本思想是在误差目标函数中增加一个用于描述网络复杂度的部分,例如连接权与阈值的平方和.
在这里插入图片描述
其中 λ∈(0, 1) 用于对经验误差与网络复杂度这两项进行折中,常通过交叉验证法来估计。

5.4 全局最小与局部极小

如果误差函数具有多个局部极小,则不能保证找到的解 是全局最小。对后一种情形,我们称参数寻优陷入了局部极小, 这显然不是我们所希望的。
在这里插入图片描述