文章目录
神经网络模型
1943年一直沿用至今的M-P神经网络模型
M-P神经网络模型
模型解释:
将输入神经元的x乘上相应权重w并求和,将结果与阈值 θ \theta θ做差,再经过激活函数f得到输出值y
名词解释:
阈值(threshold / bias):
表示神经元电位超过阈值则被激活
激活函数(activation function):
也称挤压函数或响应函数,用于将输入值映射为0/1或(0,1)
训练目标:
通过训练模型,得出合适的w和 θ \theta θ,其中训练算法最常见的就是下面会说到的BP算法
激活函数
回顾第三章线性模型中的对数几率回归模型和单位阶跃函数
最理想状态是用单位阶跃函数输入值映射为0/1,但由于其不连续、不光滑的性质,
我们使用Sigmoid函数将输入值映射为(0,1),Sigmoid函数即型为S的函数,其中我们最常用的就是对数几率函数:
s
i
g
m
o
i
d
(
x
)
=
1
1
+
e
−
x
s i g m o i d ( x ) = \frac { 1 } { 1 + e ^ { - x } }
sigmoid(x)=1+e−x1
对率函数有很好的性质:
f
′
(
x
)
=
f
(
x
)
(
1
−
f
(
x
)
)
f ^ { \prime } ( x ) = f \left( x \right) ( 1 - f \left( x \right) )
f′(x)=f(x)(1−f(x))
万有逼近能力
名词概念:
仅需一个包含足够多神经元的隐层,多层前馈神经网络就能以任意精度逼近任意复杂度的连续函数
引入原因:
很多算法都具有万有逼近能力,不是神经网络所特有的,如决策树、支持向量机等等。
而之所以在神经网络中强调其万有逼近能力,是因为其数学公理方面的理论薄弱,为了证明其有效性而进行说明。
BP算法
误差逆传播(error BackPropagation,简称BP)算法,亦称反向传播算法
BP算法是一种迭代算法,基于梯度下降(gradient descent)策略,
数学推导过程不多做阐述,详见西瓜书or南瓜书
缓解过拟合
由于神经网络强大的表示能力,其经常容易过拟合,为此我们有以下两种策略
1.早停(early stopping)
将数据集分为训练集和验证集,若验证集得到的误差升高,则停止训练。
但是很显然神经网络的误差可能是细微的波动,但却造成了训练的停止,有点像决策树中的预剪枝,基于贪心的策略。
所以采用:
- 若训练误差连续α轮的变化小于b,则停止训练使用验证集
- 若训练误差降低、验证误差升高,则停止训练
2.正则化(regularization)
在误差目标函数中增加一项描述网络复杂度
E = λ 1 m ∑ k = 1 m E k + ( 1 − λ ) ∑ i w i 2 E = \lambda \frac { 1 } { m } \sum _ { k = 1 } ^ { m } E _ { k } + ( 1 - \lambda ) \sum _ { i } w _ { i } ^ { 2 } E=λm1k=1∑mEk+(1−λ)i∑wi2
偏好比较小的连接权和阀值,使网络输出更“光滑”