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) minxf(xt),其中 f ( x ) f(x) f(x)连续可微。若能构造一个序列 x 0 , x 1 , x 2 , . . . x^0,x^1,x^2,... x0,x1,x2,...满足:
f ( x t + 1 ) &lt; f ( x t ) ,   t = 0 , 1 , 2 , . . . f(x^{t+1})&lt;f(x^t),\ t=0,1,2,... f(xt+1)<f(xt), 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)+xTf(x)
那么为了满足 f ( x + △ x ) &lt; f ( x ) f(x+△x)&lt;f(x) f(x+x)<f(x),可选择:
△ x = − γ ∇ f ( x ) △x=-\gamma\nabla f(x) x=γf(x)
其中步长 γ \gamma γ是一个小常数,这就是梯度下降法。
:步长的选择往往来自于 f ( x ) f(x) f(x)自身的一些条件或特点。
f ( x ) f(x) f(x)二阶连续可微。可对 f ( x ) f(x) f(x)二阶泰勒展开,这就得到了牛顿法。其迭代轮数小于梯度下降法,但牛顿法涉及到 ∇ 2 f ( x ) \nabla ^2f(x) 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 whj=ηgjbhθj=ηgjvih=ηehxiγh=ηeh
其中:
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) eh=bhEkαhbh=bh(1bh)j=1lwhjgjη(0,1)(0.1)

:BP算法的目标是要最小化训练集D上的累积误差( E = 1 m ∑ k = 1 m E k E=\frac{1}{m}\sum_{k=1}^mE_k E=m1k=1mEk),但上述介绍的标准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 E=λm1k=1mEk+(1λ)iwi2,其中 λ ∈ ( 0 , 1 ) \lambda \in(0,1) λ(0,1)用于对经验误差与网络复杂度这两项进行折中。

5.4 全局最小与局部最小

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

  • 从多个不同的参数值初始点出发再取误差最小的神经网络
  • 模拟退火技术:每一步都以一定概率接受比当前解更差的结果
  • 使用随机梯度下降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,ci)=eβixci2
即输出层实值表示为 φ ( x ) = ∑ i = 1 q w i ρ ( x , c i ) \varphi(\bf x)=\sum_{i=1}^qw_i\rho(\bf x,\bf c_i) φ(x)=i=1qwiρ(x,ci),其中q为隐层神经元个数, c i c_i ci w i w_i wi分别是第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里面运动到的一个重要的方法。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值