在神经网络中,信息流动有两个方向,一个是向前传播,一个是向后传播。

向前传播是指,输入层数据从前向后,逐步传递到输出层;

向后传播是指,损失函数从后向前,将梯度逐步传递到第一层。

向前传播用于计算预测值,向后传播为了修正预测值,将误差从最后一层传回第一层,利用链式求导的梯度修正参数,使网络输出的预测值更接近真实值,也就是使误差更小。此处有两个重要概念,衡量输出与真实值差异的损失函数,梯度反向传播的链式求导法则。

(1)假设此处损失函数,其中表示预测值,y表示真实值。

(2)微积分中,y=f(u),u=g(x),则y对x的偏导为

1. 反向传播的计算过程

图1 计算图的链式求导过程

图中,x是输入数据,是线性变化乘法,是非线性激活函数,是损失函数是输出O,y是真实值标签。

求导过程涉及矩阵的求导,计算较为复杂,为了简便了解过程,利用计算符号prod(x,y)表示x与y根据形状做必要变换,然后相乘。

2. 梯度下降

梯度是一个向量,方向为方向导数取得最大值的方向,也就是变化率最大的方向。

梯度是使函数值最快变大的方向,而反向传播是使损失函数最快变小的方向,因此,下降法是沿着梯度的负方向,使损失函数减小。

假设,损失函数

w0=2,loss=16,loss'=16

x1=w0-loss'=2-16=-14, loss= 784, loss'=-112

x2=w1-loss'=-144+112=98, loss=98

误差反向传播两次后,w值调整了两次,但loss并没有变小。这是因为沿地图负方向下降的步长过大,跨过了最小值区域。因此需要设置一个恰好的步长,使loss更快接近最小值。

图2 无学习率的参数更新

3. 学习率

学习率(learning rate,简称lr)用来控制更新步长的长度。

加入学习率后参数更新:w(i+1) = w(i) - lr * loss'

图3 不同学习率下的参数更新

神经网络基础-反向传播相关推荐

  1. 全连接神经网络基础——正向传播及损失函数

    全连接神经网络结构 顾名思义,全连接神经网络指的是上一层网络中的所有神经元都与下一层网络中的所有神经元相连,即上一层网络所有神经元的输出都作为下一层网络所有神经元的输入.一个简单的全连接神经网络结果如 ...

  2. 零基础入门深度学习(3) - 神经网络和反向传播算法

    无论即将到来的是大数据时代还是人工智能时代,亦或是传统行业使用人工智能在云上处理大数据的时代,作为一个有理想有追求的程序员,不懂深度学习(Deep Learning)这个超热的技术,会不会感觉马上就o ...

  3. 独家思维导图!让你秒懂李宏毅2020深度学习(三)——深度学习基础(神经网络和反向传播部分)

    独家思维导图!让你秒懂李宏毅2020深度学习(三)--深度学习基础(神经网络和反向传播部分) 长文预警!!!前面两篇文章主要介绍了李宏毅视频中的机器学习部分,从这篇文章开始,我将介绍李宏毅视频中的深度 ...

  4. 机器学习笔记丨神经网络的反向传播原理及过程(图文并茂+浅显易懂)

    文章目录 一.前言 二.神经网络的前向传播原理 1. 单个神经元的计算 2. 神经元在神经网络中的计算 三.反向传播算法内容(请静下心,一步一步的看) Step1 计算误差 Step2 更新权重 四. ...

  5. 神经网络之反向传播算法(均方根反向传播算法RMSProp)

    文章目录 均方根反向传播算法(RMSProp) 1.算法原理 2.算法实现 2.1 训练过程 2.2 测试过程及结果 3.参考源码及数据集 均方根反向传播算法(RMSProp) 自适应梯度算法(Ada ...

  6. 深度学习与自然语言处理教程(3) - 神经网络与反向传播(NLP通关指南·完结)

    作者:韩信子@ShowMeAI 教程地址:https://www.showmeai.tech/tutorials/36 本文地址:https://www.showmeai.tech/article-d ...

  7. 深度学习与计算机视觉教程(4) | 神经网络与反向传播(CV通关指南·完结)

    作者:韩信子@ShowMeAI 教程地址:https://www.showmeai.tech/tutorials/37 本文地址:https://www.showmeai.tech/article-d ...

  8. 神经网络三:浅析神经网络backpropagation算法中的代价函数和神经网络的反向传播原理、和ResNet网络的捷径链接误差传播计算

    在博客神经网络一:介绍,示例,代码中,Backpropagation Algorithm中用到了代价函数:该代价函数是否是最好的?其有没有自身的局限性?还有其他的代价函数吗,有何特点?本文将针对这些问 ...

  9. 神经网络的反向传播(BP)是什么?sigmoid函数的导数是什么,有什么形式优势、优缺点?

    神经网络的反向传播(BP)是什么?sigmoid函数的导数是什么,有什么形式优势? 目录

最新文章

  1. 解决ScrollView嵌套ListView高度的问题
  2. EffectiveC++ Item11
  3. 用 div 仿写 input 和 textarea 功能
  4. AtomicIntegerArray和AtomicIntegerFieldUpdater
  5. 【干货】”首个“ .NET Core 验证码组件
  6. phoenix的元数据一般存在哪里_Phoenix的一些问题
  7. POJ - 1384 Piggy-Bank(完全背包)
  8. MATLAB实现Otsu算法
  9. jeecgboot框架简介
  10. discuz内置代码
  11. W ndows10开机密码设置,Win10系统开机密码输入正确却提示微软帐户无法登录的三种解决方法...
  12. 网络新手ip隐藏器 v1.10 官方
  13. 使用python修改微信支付宝运动步数
  14. win10兼容模式怎么设置_win10开始菜单没反应怎么办?是因为没有设置这个
  15. java 让坦克移动_坦克大战_坦克移动
  16. 新手做网页设计?这9款经典网页布局设计了解下
  17. 3种思路,打造用户画像的标签体系
  18. word详细使用方法(①)
  19. qt tab弹出特效_Nuke Studio 12(影视特效合成软件)中文版分享
  20. 精准医学: 应用脑脊液游离DNA全基因组甲基化测序筛选小儿髓母细 胞瘤早期诊断与预后监测的可靠生物标志物|液体活检专题

热门文章

  1. 自考本科毕业后还有必要专升本读全日制本科吗?
  2. C++实验七——类的继承(1)
  3. 树莓派简单教程(二)(上)
  4. MATLAB语言的串口助手
  5. GitHub 重磅更新,可以创建免费私有仓库了
  6. 如何让纯英文字幕的视屏 实时翻译
  7. 5-GSM空中接口物理层的设计
  8. arclinux和其他linux发行版本的比较
  9. php删除帖子代码,删帖 - iptv信源、网络视频直播ip资源、直播代码 - 恩山无线论坛 - Powered by Discuz!...
  10. Eclipse平台技术概述