深度学习模型的前馈运算与反馈运算
前馈运算
假设现在网络的参数收敛到ω1,…,ωL−1\omega^{1}, \ldots, \omega^{L-1}ω1,…,ωL−1,进行feed- forward,将输入x1x_1x1送入网络,之后经过第一层操作ω1\omega^1ω1得到x2x_2x2,依次类推……直到得到输出xLx_LxL,
反馈运算
深度学习模型通常采用随机梯度下降法(SGD)和误差反向传播(error back propogation)进行模型参数更新。
每层操作主要对应两部分:
1.用于参数更新的 ∂z∂ωi\frac{\partial z}{\partial \boldsymbol{\omega}^{i}}∂ωi∂z,是误差关于参数ωi{\omega}^{i}ωi的导数
ωi←ωi−η∂z∂ωi(1)\omega ^ { i } \leftarrow \omega ^ { i } - \eta \frac { \partial z } { \partial \omega^ { i } } \tag{1} ωi←ωi−η∂ωi∂z(1)
η\etaη是每次SGD的步长(一般随epoch的增大而减小)
2.用于误差向前层的反向传播∂z∂xi\frac{\partial z}{\partial \boldsymbol{x}^{i}}∂xi∂z,是误差关于输入xix^ixi的导数。
下面,我们以第iii层参数更新为例,需要计算∂z∂ωi\frac{\partial z}{\partial \boldsymbol{\omega}^{i}}∂ωi∂z和∂z∂xi\frac{\partial z}{\partial \boldsymbol{x}^{i}}∂xi∂z,根据链式法则:
∂z∂(vec(ωi)⊤)=∂z∂(vec(xi+1)⊤)⋅∂vec(xi+1)∂(vec(ωi)⊤)(2)\frac{\partial z}{\partial\left(\operatorname{vec}\left(\boldsymbol{\omega}^{i}\right)^{\top}\right)}=\frac{\partial z}{\partial\left(\operatorname{vec}\left(\boldsymbol{x}^{i+1}\right)^{\top}\right)} \cdot \frac{\partial \operatorname{vec}\left(\boldsymbol{x}^{i+1}\right)}{\partial\left(\operatorname{vec}\left(\boldsymbol{\omega}^{i}\right)^{\top}\right)} \tag{2} ∂(vec(ωi)⊤)∂z=∂(vec(xi+1)⊤)∂z⋅∂(vec(ωi)⊤)∂vec(xi+1)(2)
∂z∂(vec(xi)⊤)=∂z∂(vec(xi+1)⊤)⋅∂vec(xi+1)∂(vec(xi)⊤)(3)\frac{\partial z}{\partial\left(\operatorname{vec}\left(\boldsymbol{x}^{i}\right)^{\top}\right)}=\frac{\partial z}{\partial\left(\operatorname{vec}\left(\boldsymbol{x}^{i+1}\right)^{\top}\right)} \cdot \frac{\partial \operatorname{vec}\left(\boldsymbol{x}^{i+1}\right)}{\partial\left(\operatorname{vec}\left(\boldsymbol{x}^{i}\right)^{\top}\right)} \tag{3} ∂(vec(xi)⊤)∂z=∂(vec(xi+1)⊤)∂z⋅∂(vec(xi)⊤)∂vec(xi+1)(3)
对于(2)和(3)式右侧所需要的数,由第i+1i+1i+1层的(3)式已经得到的有∂z∂xi+1\frac{\partial z}{\partial \boldsymbol{x}^{i+1}}∂xi+1∂z,即两式+号左边的式子。同时,在前馈运算时的第iii层,xix^ixi经wiw^iwi的作用得到xi+1x^{i+1}xi+1,反向求导可以直接得到∂vec(xi+1)∂(vec(ωi)⊤)\frac{\partial \operatorname{vec}\left(\boldsymbol{x}^{i+1}\right)}{\partial\left(\operatorname{vec}\left(\boldsymbol{\omega}^{i}\right)^{\top}\right)}∂(vec(ωi)⊤)∂vec(xi+1)和∂vec(xi+1)∂(vec(xi)⊤)\frac{\partial \operatorname{vec}\left(\boldsymbol{x}^{i+1}\right)}{\partial\left(\operatorname{vec}\left(\boldsymbol{x}^{i}\right)^{\top}\right)}∂(vec(xi)⊤)∂vec(xi+1),即两式+号右边的式子。
再根据(1)式更新iii层的参数,并将∂z∂xi+1\frac{\partial z}{\partial \boldsymbol{x}^{i+1}}∂xi+1∂z作为误差传到i−1i-1i−1层。不断循环直到第1层,完成一个mini-batch的参数更新。
魏秀参《解析卷积神经网络——深度学习实践手册》
深度学习模型的前馈运算与反馈运算相关推荐
- DSSM、CNN-DSSM、LSTM-DSSM等深度学习模型在计算语义相似度上的应用+距离运算
在NLP领域,语义相似度的计算一直是个难题:搜索场景下query和Doc的语义相似度.feeds场景下Doc和Doc的语义相似度.机器翻译场景下A句子和B句子的语义相似度等等.本文通过介绍DSSM.C ...
- 在 Netflix 评论中做情感分析的深度学习模型
文章发布于公号[数智物语] (ID:decision_engine),关注公号不错过每一篇干货. 原标题 | Sentiment Analysis with Deep Learning of Netf ...
- 关于情感分析的深度学习模型
企业最重要的目的之一就是与客户群保持联系.这些公司必须清楚地了解客户对新老产品.最近的举措以及客户服务的看法. 情感分析是完成上述任务的方法之一 情感分析是自然语言处理(NLP)中的一个领域,它建立模 ...
- 用 Java 训练深度学习模型,原来这么简单
作者 | DJL-Keerthan&Lanking 来源 | HelloGitHub 头图 | CSDN下载自东方IC 前言 很长时间以来,Java 都是一个很受企业欢迎的编程语言.得益于丰富 ...
- 人工神经网络理论、设计及应用_TensorFlow深度学习应用实践:教你如何掌握深度学习模型及应用...
前言 通过TensorFlow图像处理,全面掌握深度学习模型及应用. 全面深入讲解反馈神经网络和卷积神经网络理论体系. 结合深度学习实际案例的实现,掌握TensorFlow程序设计方法和技巧. 着重深 ...
- 使用TensorFlow进行股票价格预测的简单深度学习模型
使用TensorFlow进行股票价格预测的简单深度学习模型(翻译) 原文链接:https://medium.com/mlreview/a-simple-deep-learning-model-for- ...
- 深度学习模型压缩技术概览
背景介绍 目录 背景介绍 什么是模型压缩? 剪枝 非结构化剪枝 结构化剪枝 量化 低秩近似(Low-rank approximation) 知识蒸馏(Knowledge distillation) 神 ...
- 深度学习模型压缩与加速技术(二):参数量化
目录 总结 参数量化 参数量化定义 参数量化特点 1.二值化 二值化权重 二值化权重与激活函数 2.三值化 3.聚类量化 4.混合位宽 手工固定 自主确定 训练技巧 参考文献 深度学习模型的压缩和加速 ...
- 实战 | 深度学习轻松学:如何用可视化界面来部署深度学习模型
翻译 | AI科技大本营 参与 | 王赫 上个月,我有幸结识了 DeepCognition.ai 的创始人. Deep Cognition (深度认知) 建立的深度学习工作室,为很多准备部署深度学习框 ...
最新文章
- ILockBytes Windows Mobile 6.5
- 白话SpringCloud | 第五章:服务容错保护(Hystrix)
- 使用redis缓存加索引处理数据库百万级并发
- 大数据数据科学家常用面试题_进行数据科学工作面试
- springboot+flowable第四节(设置监听事件)
- 【Python】安装IPython和IPthon Notebook
- 阿里云搭建图片服务器,图片资源服务器搭建
- xxx系统的6大质量属性战术
- CentOS Linux解决Device eth0 does not seem to be pres
- SQL Server 2008空间数据应用系列九:使用空间工具(Spatial Tools)导入ESRI格式地图数据...
- 无线渗透(中)--WPS破解
- JAVA实现微信公众号推送消息
- Java零基础到进阶(真的零基础,也可以当笔记看~)
- udl 连mysql_几种常见的数据库连接方法
- coc机器人苹果_警察机器人绳索英雄
- 分享Silverlight/WPF/Windows Phone一周学习导读
- 吕海楠201552216
- 英语语言测试学什么软件,开言英语APP,让语言学习在真实情况下进行
- ant design Menu组件子菜单样式设置
- PAT甲级官网 刷题(1)
热门文章
- Updatepanel 注册javascript 方法
- javascript-函数声明和函数表达式-call-apply
- JavaZone年度大片《Java打劫》《Java风云》《Lady Java》《Java惊魂》
- 帆软报表判断传入条件是否为空,根据逗号分隔
- VirtualBox基础使用
- h5分线程Worker
- linux shell 脚本使用
- HDU 1027 G - Can you answer these queries?
- mplayer error opening/initializing the selected video_out (-vo) device
- 使用青云主机的GPU主机教程(不完整版)