反向传播算法(过程及公式推导)[通俗易懂]

反向传播算法(过程及公式推导)[通俗易懂]反向传播算法(Backpropagation)是目前用来训练人工神经网络(ArtificialNeuralNetwork,ANN)的最常用且最有效的算法。

大家好,又见面了,我是你们的朋友全栈君。

        反向传播算法(Backpropagation)是目前用来训练人工神经网络(Artificial Neural Network,ANN)的最常用且最有效的算法。其主要思想是:
(1)将训练集数据输入到ANN的输入层,经过隐藏层,最后达到输出层并输出结果,这是ANN的前向传播过程;
(2)由于ANN的输出结果与实际结果有误差,则计算估计值与实际值之间的误差,并将该误差从输出层向隐藏层反向传播,直至传播到输入层;
(3)在反向传播的过程中,根据误差调整各种参数的值;不断迭代上述过程,直至收敛。

        反向传播算法的思想比较容易理解,但具体的公式则要一步步推导,因此本文着重介绍公式的推导过程。


1. 变量定义

反向传播算法(过程及公式推导)[通俗易懂]

        上图是一个三层人工神经网络,layer1至layer3分别是输入层、隐藏层和输出层。如图,先定义一些变量:
        反向传播算法(过程及公式推导)[通俗易懂]表示第反向传播算法(过程及公式推导)[通俗易懂]反向传播算法(过程及公式推导)[通俗易懂]层的第反向传播算法(过程及公式推导)[通俗易懂]反向传播算法(过程及公式推导)[通俗易懂]个神经元连接到第反向传播算法(过程及公式推导)[通俗易懂]反向传播算法(过程及公式推导)[通俗易懂]层的第反向传播算法(过程及公式推导)[通俗易懂]反向传播算法(过程及公式推导)[通俗易懂]个神经元的权重;
反向传播算法(过程及公式推导)[通俗易懂]        反向传播算法(过程及公式推导)[通俗易懂]表示第反向传播算法(过程及公式推导)[通俗易懂]反向传播算法(过程及公式推导)[通俗易懂]层的第反向传播算法(过程及公式推导)[通俗易懂]反向传播算法(过程及公式推导)[通俗易懂]个神经元的偏置;
        反向传播算法(过程及公式推导)[通俗易懂]反向传播算法(过程及公式推导)[通俗易懂]表示第反向传播算法(过程及公式推导)[通俗易懂]反向传播算法(过程及公式推导)[通俗易懂]层的第反向传播算法(过程及公式推导)[通俗易懂]反向传播算法(过程及公式推导)[通俗易懂]个神经元的输入,即反向传播算法(过程及公式推导)[通俗易懂]
反向传播算法(过程及公式推导)[通俗易懂]
        反向传播算法(过程及公式推导)[通俗易懂]反向传播算法(过程及公式推导)[通俗易懂]表示第反向传播算法(过程及公式推导)[通俗易懂]反向传播算法(过程及公式推导)[通俗易懂]层的第反向传播算法(过程及公式推导)[通俗易懂]反向传播算法(过程及公式推导)[通俗易懂]个神经元的输出,即反向传播算法(过程及公式推导)[通俗易懂]
反向传播算法(过程及公式推导)[通俗易懂]
        其中反向传播算法(过程及公式推导)[通俗易懂]反向传播算法(过程及公式推导)[通俗易懂]表示激活函数。

2. 代价函数

        代价函数被用来计算ANN输出值与实际值之间的误差。常用的代价函数是二次代价函数(Quadratic cost function):
反向传播算法(过程及公式推导)[通俗易懂]
反向传播算法(过程及公式推导)[通俗易懂]
        其中,反向传播算法(过程及公式推导)[通俗易懂]反向传播算法(过程及公式推导)[通俗易懂]表示输入的样本,反向传播算法(过程及公式推导)[通俗易懂]反向传播算法(过程及公式推导)[通俗易懂]表示实际的分类,反向传播算法(过程及公式推导)[通俗易懂]反向传播算法(过程及公式推导)[通俗易懂]表示预测的输出,反向传播算法(过程及公式推导)[通俗易懂]反向传播算法(过程及公式推导)[通俗易懂]表示神经网络的最大层数。

3. 公式及其推导

        本节将介绍反向传播算法用到的4个公式,并进行推导。如果不想了解公式推导过程,请直接看第4节的算法步骤。
        首先,将第反向传播算法(过程及公式推导)[通俗易懂]反向传播算法(过程及公式推导)[通俗易懂]层第反向传播算法(过程及公式推导)[通俗易懂]反向传播算法(过程及公式推导)[通俗易懂]个神经元中产生的错误(即实际值与预测值之间的误差)定义为:
反向传播算法(过程及公式推导)[通俗易懂]反向传播算法(过程及公式推导)[通俗易懂]


        本文将以一个输入样本为例进行说明,此时代价函数表示为:
反向传播算法(过程及公式推导)[通俗易懂]
反向传播算法(过程及公式推导)[通俗易懂]

公式1(计算最后一层神经网络产生的错误):

反向传播算法(过程及公式推导)[通俗易懂]

        其中,反向传播算法(过程及公式推导)[通俗易懂]反向传播算法(过程及公式推导)[通俗易懂]表示Hadamard乘积,用于矩阵或向量之间点对点的乘法运算。
公式1的推导过程如下:
反向传播算法(过程及公式推导)[通俗易懂]


公式2(由后往前,计算每一层神经网络产生的错误):

反向传播算法(过程及公式推导)[通俗易懂]

        推导过程:
反向传播算法(过程及公式推导)[通俗易懂]反向传播算法(过程及公式推导)[通俗易懂]


公式3(计算权重的梯度):

反向传播算法(过程及公式推导)[通俗易懂]

        推导过程:
反向传播算法(过程及公式推导)[通俗易懂]


公式4(计算偏置的梯度):

反向传播算法(过程及公式推导)[通俗易懂]

        推导过程:
反向传播算法(过程及公式推导)[通俗易懂]


4. 反向传播算法伪代码


  • 输入训练集

  • 对于训练集中的每个样本x,设置输入层(Input layer)对应的激活值反向传播算法(过程及公式推导)[通俗易懂]反向传播算法(过程及公式推导)[通俗易懂]
    • 前向传播:
反向传播算法(过程及公式推导)[通俗易懂], 反向传播算法(过程及公式推导)[通俗易懂]
    • 计算输出层产生的错误:
反向传播算法(过程及公式推导)[通俗易懂]
    • 反向传播错误:反向传播算法(过程及公式推导)[通俗易懂]
反向传播算法(过程及公式推导)[通俗易懂]

  • 使用梯度下降(gradient descent),训练参数:

 反向传播算法(过程及公式推导)[通俗易懂]

反向传播算法(过程及公式推导)[通俗易懂]






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

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

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


相关推荐

  • oracle数据库菜鸟入门

    oracle数据库菜鸟入门所有应用软件之中,数据库可能是最复杂的。MySQL的手册有3000多页,PostgreSQL的手册有2000多页,Oracle的手册更是比它们相加还要厚。但是,自己写一个最简单的数据库,做起来并不难。Reddit上面有一个帖子,只用了几百个字,就把原理讲清楚了。下面是我根据这个帖子整理的内容。一、数据以文本形式保存第一步,就是将所要保存的数据,写入文本文件。这个文本文件就是你的数据库。为了方便读取,数据必须分成记录,每一条记录的长度规定为等长。比如,假定每条记录的长度是800字节,那

    2022年8月30日
    1
  • Linux查看java进程路径

    Linux查看java进程路径1.找到进程IDps-ef|grepjava2.进入进程目录cd/proc/进程ID3.查看cwd路径找到cwd对应的路径就是jar包的路径以下是我的操作截图

    2022年8月24日
    7
  • MFC的CImage图形处理

    MFC的CImage图形处理CImage支持的图片格式有很多,像通常用的jpg,png,bmp,gif等都支持的不错。按照我们常用的图片处理需求,一般是:图片加载、图片指定到控件、图片绘制、图片修改、图片转换、(图片创建)

    2022年6月15日
    57
  • 如何利用eclipse创建一个java web项目?「建议收藏」

    如何利用eclipse创建一个java web项目?「建议收藏」1.在左侧空白处,右键选择New->DynamicWebProject2.若New的选择列表中没有DynamicWebProject,则选择Others,然后输入dynamic(一般输入dy就可以),选择DynamicWebProject3.输入项目名称,选择运行时环境(中间件环境),选择web相应的版本。4.点击Finish

    2022年7月19日
    21
  • 图形数字推理1000题及答案_小学奥数图形推理题

    图形数字推理1000题及答案_小学奥数图形推理题事情是这样滴!一个小伙伴在这两天提出一个问题如下:考虑到数字推理是浙江省考每年的必考题,图形题在去年的浙江省考中考查了四题。而图形题相较于分数数列、递推数列、多级数列等常见纯数字数列来说,在没有掌握一些常见技巧的前提下确实无从下手。这两天经过对图形题的系统性梳理发现其中有一些可操作的技巧与方法,希望能够帮助到即将踏入战场的浙江的小伙伴。当然,除了浙江的小伙伴之外,一些自主命题省份,如江苏、广东、吉…

    2022年9月9日
    1
  • PHP运行模式

    PHP运行模式

    2021年9月23日
    34

发表回复

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

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