MLP综述

   看了CSDN上介绍MLP的文章,有介绍原理,有介绍公式的,这篇文章是基于当时看很多篇别人的博整理的笔记(未标注原文出处,原文作者有意见请联系晴嫣,保证添加到参考链接中),MLP整体思路。


    单层感知器是最简单的神经网络。它包含输入层和输出层,输入层和输出层直接相连。

    单个感知器无法解决非线性问题,由多个感知器组合可以来实现非线性分类面

    但是简单的组合,得到的依旧是线性分类器,为了解决这个问题,有了MLP,MLP是单层感知机的推广,与单层感知机的本质区别是增加了隐含层。

    隐藏层的神经元与输入层是全连接的,假设输入层用向量X表示,则隐藏层的输出就是f(W1X+b1),W1是权重(也叫连接系数),b1是偏置,函数f可以是常用的sigmoid函数或者tanh函数,特点是连续可微。

   最后就是输出层,其实隐藏层到输出层可以看成是一个多类别的逻辑回归,也即softmax回归,所以输出层的输出就是softmax(W2X1+b2),X1表示隐藏层的输出f(W1X+b1)。

   因此,MLP所有的参数就是各个层之间的连接权重以及偏置,包括W1、b1、W2、b2。对于一个具体的问题,如何确定这些参数。求解最佳的参数是一个最优化问题,解决最优化问题,最简单的就是梯度下降法了(SGD):首先随机初始化所有参数,然后迭代地训练,不断地计算梯度和更新参数,直到满足某个条件为止(比如误差足够小、迭代次数足够多时)。这个过程涉及到代价函数、规则化(Regularization)、学习速率(learning rate)、梯度计算等。

    

    因为这种联接图没有闭环或回路。我们可以用反向传播法(back propagation)来训练上述这个神经网络。

    反向传播算法分二步进行,即信号的正向传播和误差的反向传播。这两个过程的工作简述如下。

1.正向传播

    在逐层处理的过程中,每一层神经元的状态只对下一层神经元的状态产生影响。在输出层把现行输出和期望输出进行比较,如果现行输出不等于期望输出,则进入反向传播过程。

2.反向传播

    反向传播时,把误差信号按原来正向传播的通路反向传回,并对每个隐层的各个神经元的权系数进行修改,以望误差信号趋向最小。


BP算法具体流程如下:

①前向传播:给各连接权值分别赋一个区间(-1,1)内的随机数,选择一个数据输入,从第一层开始,计算每一层输出并保存各层输出。

②反向传播:计算最后一层输出和目标输出的差e=t-a,并根据公式计算最后一层的敏感性,其中为网络第M层输出函数对净输入n求导,最后一层为线性函数,求导为1。按照公式计算前一层的敏感性,直到第一层,其中为第m层到m-1层的权值。

③调权值:可以从第一层开始,也可以从最后一层开始进行调权。


④选择下一个输入,继续上面的过程,直到网络收敛为止。


BP算法存在的问题:

(1)梯度越来越稀疏:从顶层越往下,误差校正信号越来越小;

(2)收敛到局部最小值:尤其是从远离最优区域开始的时候(随机值初始化会导致这种情况的发生);

(3)一般,我们只能用有标签的数据来训练:但大部分的数据是没标签的,而大脑可以从没有标签的的数据中学习。

    

由此提出改进算法:

基于动量的BP学习算法

    由于BP算法的收敛速度比较慢,可能有多个局部极小点,有不稳定性,故提出基于动量的BP算法。它能平滑振荡提高收敛性能。故引入一个动量系数 ,当动量系数增加时,振荡减小,从而有利于减少振荡数目,保持平均值。

动量可以维持算法稳定的前提下使用更高的学习速度。动量法降低了网络对于误差曲面局部细节的敏感性,有效的抑制网络陷入局部最小。

可变学习速度的BP算法

    它试图在较平坦的曲面提高学习速度,而在斜率增大时减小学习速度。它的规则如下:

1)如果误差平方(在整个训练集上)在权值更新后增加了百分数z (典型值为1%至5%),则取消权值更新,学习速度乘上一个因子 (1 > r > 0),并且动量系数 g 置为 0。

2)如果误差平方在权值更新后减少,则接受权值更新,并且学习速度乘上一个因子 h>1,如果动量系数 g 先前被置为0,则恢复到先前的值。

3)如果误差平方的增加少于z,则接受权值更新,但是学习速度和动量系数不变。

    改进的BP算法也有些缺点:需要设置一些额外的参数,并且算法性能对参数变化很敏感,参数的选择还和问题有关。容易使一些能收敛的数据变得不可收敛。目前还有许多的改进算法,这些方法中应用最广的是增加了冲量(动量)项的改进BP算法。




  • 6
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值