Chapter5 Neural Network

第五章 神经网络


5.1 神经元模型

定义:神经网络是具有自适应性的简单单元所组成的广泛并行连接的网络,它的组织能够模拟生物神经系统对真实世界物体所做出的交互反应
与机器学习交叉的领域称为神经网络学习
神经网络最基本的成分为神经元模型,即上面说的简单单元。

5.2 感知机与多层网络

感知机(Perception)由两层神经元组成,输入层接收外界信号传递给输出层,然后输出层将输入层传递来的带有权重的信号与阈值进行比较,然后通过激活函数处理产生神经元的输出。(这样的输出层也可称为M-P神经元)。但由于感知机只拥有一层功能神经元,所以其学习能力非常有限,若问题本身就是线性可分那还好,感知机学习一定会收敛,若不是的话,感知机学习会发生震荡,甚至无法分类。
所以对于非线性可分问题,引入多层功能神经元,利用输入层和输出层之间的隐层增强神经网络的学习能力。

更一般的,若每层神经元与下一层神经元全互连,且神经元之间不存在同层连接,也不存在跨层连接,这样的神经网络结构通常被称为多层前馈神经网络(multi-layer feedforward neutral networks)。(前馈:不是说网络只向前单向传播,而是指网络拓扑结构不存在环或回路。
在神经网络里,通常输入层并不做函数处理,隐层和输出层才包括功能单位元,按照隐层和输出层的数量和n,称其为“n层网络”,仅就隐层数量k,称其为“k隐层网络”。

小结:实际上,神经网络的学习过程就是一个不断调整神经元之间的“连接权”每个神经元的阈值的过程。

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

一般来说,BP网络就是指BP算法训练的多层前馈神经网络,当然实际上,BP算法还可用于训练其他类型的神经网络,如递归神经网络等。
BP算法是基于梯度下降法和感知机规则之上的一种算法,在学习之前,我们先学习一下梯度下降法。

5.3.1梯度下降法(Gradient descent)

该方法是一种常用的一阶优化方法,具体是指在无约束优化问题 m i n x f ( x t ) min_xf(x^t) ,其中 f ( x ) f(x) 连续可微。若能构造一个序列 x 0 , x 1 , x 2 , . . . x^0,x^1,x^2,... 满足:
f ( x t + 1 ) < f ( x t ) ,   t = 0 , 1 , 2 , . . . f(x^{t+1})<f(x^t),\ t=0,1,2,...
则不断执行该过程可收敛到局部极小点,根据泰勒展开式:
f ( x + x ) f ( x ) + x T f ( x ) f(x+△x)\approx f(x)+△x^T\nabla f(x)
那么为了满足 f ( x + x ) < f ( x ) f(x+△x)<f(x) ,可选择:
x = γ f ( x ) △x=-\gamma\nabla f(x)
其中步长 γ \gamma 是一个小常数,这就是梯度下降法。
:步长的选择往往来自于 f ( x ) f(x) 自身的一些条件或特点。
f ( x ) f(x) 二阶连续可微。可对 f ( x ) f(x) 二阶泰勒展开,这就得到了牛顿法。其迭代轮数小于梯度下降法,但牛顿法涉及到 2 f ( x ) \nabla ^2f(x) ,所以其每轮迭代都涉及到海森矩阵求逆,在高维中几乎不可行。那么在引入拟牛顿法寻找海森矩阵的近似逆矩阵。
BP算法
BP算法
综上:
w h j = η g j b h θ j = η g j v i h = η e h x i γ h = η e h \triangle w_{hj}=\eta g_jb_h\\ 类似得到:\triangle\theta_j=\eta g_j\\ \triangle v_{ih}=\eta e_hx_i\\ \triangle \gamma_h=-\eta e_h
其中:
e h = E k b h b h α h = b h ( 1 b h ) j = 1 l w h j g j η ( 0 , 1 ) ( 0.1 ) e_h=-\frac{\partial E_k}{\partial b_h}\frac{\partial b_h}{\partial \alpha_h}\\ =b_h(1-b_h)\sum_{j=1}^lw_{hj}g_j\\ \eta\in(0,1)(通常设置为0.1)

:BP算法的目标是要最小化训练集D上的累积误差( E = 1 m k = 1 m E k E=\frac{1}{m}\sum_{k=1}^mE_k ),但上述介绍的标准BP算法每次仅针对一个训练样例更新连接权和阈值,类似推导出基于累计误差最小化的更新规则,就得到了累积误差逆传播(Accumulated error backpropagation)。但累积误差下降到一定程度后下降速度会变很慢,这时候再用回标准BP往往更快。
BP神经网络的强大,使其常常遭受过拟合的危险,有两种方法解决这个问题:1)早停:当训练集误差降低但验证集误差提高时停止学习。2)正则化:在误差目标函数中增加一个用于描述网络复杂度的部分,例如,将误差目标函数改为 E = λ 1 m k = 1 m E k + ( 1 λ ) i w i 2 E=\lambda\frac{1}{m}\sum_{k=1}^mE_k+(1-\lambda)\sum_iw_i^2 ,其中 λ ( 0 , 1 ) \lambda \in(0,1) 用于对经验误差与网络复杂度这两项进行折中。

5.4 全局最小与局部最小

我们往往用 E ( w , θ ) E(w^*,\theta^*) 表示误差函数的局部最小值或全局最小值。
当我们寻找的参数不只一个局部极小,那么参数寻优往往就会陷入局部最小,这显然不是我们希望的,为此,人们想出方法跳出局部最小:

  • 从多个不同的参数值初始点出发再取误差最小的神经网络
  • 模拟退火技术:每一步都以一定概率接受比当前解更差的结果
  • 使用随机梯度下降instead of标准梯度下降。(即使到局部最小,梯度依然不为0,还可以继续搜索)
    此外还有遗传算法,也可以更好地逼近全局最小。值得说明的是上述方法仍是启发式的,理论上缺乏保证。

5.5 其他常见神经网络

5.5.1RBF网络(径向基函数网络)

是一种单隐层前馈神经网络,以径向基函数作为隐层神经元的激活函数。径向基函数:
ρ ( x , c i ) = e β i x c i 2 \rho(\bf x,\bf c_i)=e^{-\beta_i||\bf x-\bf c_i||^2}
即输出层实值表示为 φ ( x ) = i = 1 q w i ρ ( x , c i ) \varphi(\bf x)=\sum_{i=1}^qw_i\rho(\bf x,\bf c_i) ,其中q为隐层神经元个数, c i c_i w i w_i 分别是第i个隐层神经元所对应的中心和权重。

5.5.2ART网络(自适应谐振理论网络)

Winner-take-all! Unsupervised learning!
该网络由比较层,识别层,识别阈值和重置模块构成。比较层接受输入样本并传递给识别层,识别层神经元之间相互竞争(比较向量与神经元代表模式类的代表向量之间的距离,小距离获胜),以产生获胜神经元。
ART网络较好的缓解了可塑性-稳定性窘境,可进行增量学习或在线学习。

5.5.3 SOM网络(自组织映射网络)

5.5.4 级联相关网络

5.5.5 Elman网络

5.5.6 Boltzmann机

5.6 深度学习

典型的深度学习就是很深层的神经网络,但注意,多隐层神经网络往往难以用标准BP算法进行训练,因为在多隐层逆传播时往往会“发散”,而不能收敛。
无监督逐层训练:每次训练一层隐结点,这称为预训练,在预训练全部完成后在对整个网络进行微调训练。
权共享,是CNN里面运动到的一个重要的方法。

猜你喜欢

转载自blog.csdn.net/qq_23129193/article/details/84943021