MLP综述

MLP综述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)内的随机数,选择一个数据输入,从第一层开始,计算每一层输出MLP综述并保存各层输出。

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

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

MLP综述

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


BP算法存在的问题:

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

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

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

    

由此提出改进算法:

基于动量的BP学习算法

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

MLP综述

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

可变学习速度的BP算法

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

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

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

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/150157.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 面部表情还是面目表情(怎样调整面部表情)

    目录概要:问题来源:论文对此比赛的说明:选择原因:实现与优化思路:前置:数据处理:原csv数据的读取与分割:csv数据转图片和tfrecord的存取:tfrecord接生产队列供模型训练:神经网络定义:损失函数:滑动平均(EMA):训练与优化过程:基本设置:学习率:batch_size:训练次数:Dropout:BN:…

    2022年4月11日
    79
  • java pdf 转 word_PDF怎么转换成Word,免费,完整的那种

    java pdf 转 word_PDF怎么转换成Word,免费,完整的那种简介PDF可以分为文字型PDF和图片型PDF,文字型PDF即可以选中文字内容的PDF,反之图片型PDF即无法选中文字的PDF,其内容实际上是图片。本文针对不同类型,介绍PDF转Word方法,可以说是目前的最优解,没有之一。文字型PDF转Word方法1-直接用Word打开优点简单方便缺点部分样式丢失,排版错位,转换并不完美部分文件会有乱码无法识别图片型PDF里的文字总结适合对样式不敏感,主要关心正文…

    2022年4月30日
    53
  • Navicat 连接 MySQL「建议收藏」

    Navicat 连接 MySQL「建议收藏」简述Navicat是一套快速、可靠和全面的数据库管理工具,专门用于简化数据库管理和降低管理成本。Navicat图形界面直观,提供简便的管理方法,设计和操作MySQL、MariaDB、SQLServer、Oracle、PostgreSQL和SQLite的数据。在使用Navicat远程连接MySQL数据库时,经常会出现一些错误,今天我们来分享一下经验。|版权声明:一…

    2025年6月11日
    0
  • 嵌入式学习网站

    嵌入式学习网站创客智造:https://www.ncnynl.com/中国电子网:http://www.21ic.com/中国单片机公共实验室:http://www.bol-system.com/驱动开发网:http://www.driverdevelop.com/first.phpQT中文论坛:http://www.qtcn.org/bbs/i.php水木清华研究中心:http://w…

    2022年5月9日
    51
  • 苹果开发者学习界面

    苹果开发者学习界面Apple苹果开发者登录页面http://developer.apple.com/ios/manage/overview/index.actionIOS开发者http://developer.apple.com/ios苹果iTunesConnecthttps://itunesconnect.apple.com/苹果论坛https://devforums.apple.com/commu

    2022年9月20日
    0
  • PID控制原理详解(一)[通俗易懂]

    PID控制原理详解(一)[通俗易懂]PID的理解       关于理解PID控制算法最典型的一个例子就是一个漏水的水缸的问题。网上有很多讲解PID的帖子会讲到这个例子。这里我也把我自己对于PID的理解用这个例子阐述一遍。       有个漏水的水缸,而且漏水的速度还不是恒定的。然后我们还有个水桶,我们可以控制往水缸里面加水或者从水缸里面舀水出来。另外我们可以检测水平面。现在我们的目的就是要控制水平面稳定在我们想要的任何一个平面上…

    2022年5月20日
    36

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号