神经网络
神经网络(neural networks):是由具有适应性的简单单元组成的广泛并行互连的网络,它的组织能够模拟生物神经系统对真实世界物体所做出的交互反应”
神经网络中的最基本单元是神经元(neuron)模型。
1. 神经元模型
- “M-P神经元模型”:神经元接收到来自n个其他神经元传递过来的输入信号,这些输入信号通过带权重的连接(connection)进行传递,神经元接收到的总输入值将与神经元的阈值进行比较,然后通过“激活函数”(activation function)处理以产生神经元的输出。
理想中的激活函数是图5.2(a)所示的阶跃函数,它将输入值映射为输出值“0”或“1”,显然“1”对应于神经元兴奋,“0”对应于神经元抑制。然而,阶跃函数具有不连续、不光滑等不太好的性质,因此实际常用Sigmoid函数作为激活函数。
典型的Sigmoid函数如图5.2(b)所示,它把可能在较大范围内变化的输入值挤压到(0,1)输出值范围内,因此有时也称为“挤压函数”(squashing function)。
- 神经网络(neural networks):许多个这样的神经元按一定的层次结构连接起来
2. 感知机与多层网络
2.1
-
感知机(perceptron):由输入层和输出层组成,输入层接收外界输入信号后传递给输出层,输出层是M-P神经元。亦称为“阈值逻辑单元”(threshold logic unit).
-
感知机能容易地实现逻辑与、或、非运算。
-
-
感知机特点:只有输出层神经元进行激活函数处理,即只拥有一层功能神经元(functional neural),学习能力有限,只能解决线性可分问题
2.2
对于对于非线性可分问题,可以考虑使用多层功能神经元
- 隐含层(hidden layer):位于输出层和输入层之间的层。
- 多层前馈神经网络(multi-layer feedforward neural networks):相邻层全连接,同层无连接,不存在跨层连接。
3.误差逆传播算法
-
误差逆传播算法(error BackPropagation,BP算法):又称反向传播算法,基于梯度下降gradient descent策略,以目标的负梯度方向对单数进行调整。(注意:通常所说的BP“网络”:指的是用BP算法训练的多层前馈神经网络)
-
标准BP算法:每次仅根据一个训练样例进行更新连续权和阈(yu)值
-
累积BP算法:累计误差最小化,读取一遍训练集后更新一次参数
-
只需一个包含足够多神经元的隐层,多层前馈网络就能以任意精度逼近任意复杂度的连接函数,如何设置隐层神经元的个数仍是个未决问题,实际应用中通常靠 “试错法”(trial-by-error) 调整
-
由于具有强大的表达能力,BP神经网络经常产生过拟合现象,其训练误差持续性降低,但是测试误差却可能上升
-
缓解过拟合的策略:
- 1.早停(early stopping),若训练集误差降低但是验证集误差升高,则停止训练,返回具有最小验证集误差的参数;
- 2.正则化(regularization),在误差目标函数中增加一个描述网络复杂度的部分,比如权重的L2范数平方。增加权重的L2范数平方这一项后,训练过程将偏好于较小的参数,使得网络输出更加”光滑“,从而缓解过拟合
总结
通过观看B站视频和阅读西瓜书第五章,以上内容进行总结