神经元模型
定义:神经网络是由具有适应性的简单单元组成的广泛并行互连的网络。
M-P神经元模型
在该模型中,神经元接收到来自n个其他神经元传递过来的输入信号,这些输入信号通过带权重的连接进行传递,神经元接收到的总输入值将与神经元的阈值进行比较,通过“激活函数”处理以产生神经元输出。
此处
y
=
f
(
∑
i
=
1
n
w
i
x
i
−
θ
)
y=f(\sum_{i=1}^{n}w_ix_i-\theta )
y=f(∑i=1nwixi−θ) 为激活函数
。
理想中激活函数是阶跃函数,它将输入值映射为输出值0或1,1对应神经元兴奋、0对应神经元抑制。但由于阶跃函数不连续、不光滑,所以实际常用Sigmoid函数作为激活函数。
总的来说,我们可以将神经网络视为包含了许多参数的数学模型,该模型由若干个函数如
y
=
f
(
∑
i
=
1
n
w
i
x
i
−
θ
)
y=f(\sum_{i=1}^{n}w_ix_i-\theta )
y=f(∑i=1nwixi−θ) 相互嵌套代入所得。
感知机
感知机由两层神经元组成,输入层接收外界输入信号后传递给输出层,输出层是M-P神经元。
一般地,权重
w
i
w_i
wi 和阈值
θ
\theta
θ 都可通过学习得到。而阈值
θ
\theta
θ 可看作一个固定输入为-1的“哑结点”所对应的连接权重
w
n
+
1
w_{n+1}
wn+1 ,于是权重的阈值的学习统一为权重的学习。
学习规则:
若当前感知机的输出为
y
^
\hat{y}
y^,在神经网络的学习过程中感知机的权重调整规则如下:
w
i
⟵
w
i
+
△
w
i
w_i\longleftarrow w_i+\bigtriangleup w_i
wi⟵wi+△wi
△
w
i
=
η
(
y
−
y
^
)
x
i
\bigtriangleup w_i=\eta (y-\hat{y})x_i
△wi=η(y−y^)xi
η
∈
(
0
,
1
)
\eta\in (0,1)
η∈(0,1) 为学习率
。
从上面的公式我们可以看出,若感知机对训练样例 ( X , y ) (X,y) (X,y) 预测正确,即 y ^ = y \hat{y}=y y^=y ,则感知机不发生变化,否则将根据错误程度进行权重调整。
我认为这里原理就是迭代算法,在每一次循环中更新权重,直至达到某种条件后输出结果。
特点
感知机只有输出层神经元进行激活函数处理,即只有一层功能神经元,只能解决线性可分
问题。
要解决非线性可分问题,则考虑使用多层功能神经元
。输出层与输入层之间还有一层神经元,被称为隐层或隐含层。
多层前馈神经网络
- 每层神经元与下一层神经元全互连
- 神经元之间不存在同层互连
- 不存在跨层互连
神经网络的学习过程,就是根据巡练数据来调整神经元之间的“连接权”以及每个功能神经元的阈值。
误差逆传播算法(BP算法)
-
一个迭代学习算法,每一轮中对参数进行更新估计
-
基于梯度下降策略,以目标的负梯度方向对参数进行调整
-
目标:最小化训练集D上的累计误差
E = 1 m ∑ k = 1 m E k E=\frac{1}{m} \sum_{k=1}^{m}E_k E=m1∑k=1mEk
E k = 1 2 ∑ j = 1 l ( y ^ j k − y j k ) 2 E_k=\frac{1}{2}\sum_{j=1}^{l}(\hat{y}_j^{k}-y_j^{k})^2 Ek=21∑j=1l(y^jk−yjk)2
处理BP网络的过拟合问题
1.early stopping
将数据分为训练集和验证集,训练集计算梯度、更新连接权和阈值,验证集估计误差。若训练集误差降低二验证集误差升高,则停止训练,同时返回具有最小验证集误差的连接权和阈值。
2.正则化
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=λm1∑k=1mEk+(1−λ)∑iwi2