热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

python链式计算框架_深度之眼《李飞飞斯坦福CS231n计算机视觉课训练营》第七期】第三周【任务4】学习反向传播...

任务时长:1213任务标题:学习反向传播学习任务:1.先观看老师录制的第四讲导学视频,简单了解斯坦福231n中第四讲所讲内容

任务时长:12/13任务标题:学习反向传播学习任务:
1.先观看老师录制的第四讲导学视频,简单了解斯坦福231n中第四讲所讲内容
2.观看斯坦福CS231n第四讲课程(反向传播部分)任务详解:
第四讲:介绍神经网络
9反向传播
计算复杂函数的梯度

  • 使用计算图表示复杂的函数,然后使用链式求导法则求变量的导数(对于简单的复合含数 足够熟悉求求导步骤之后没必要画计算图,但对于复杂的函数画计算图计算梯度的反向传播会更清晰

举例子求复合函数的导数

  • 计算图的优点就是对于很复杂的函数,可以使用反向传播和链式法则求任何我们需要计算的梯度值

Sigmoid函数求导
Add门,Max门(梯度路由器),Mul门(梯度交换器)

  • 梯度在分支汇合的地方会相加
  • 向量的梯度与标量有什么不同( 梯度变成了雅克比矩阵)
  • F(x)=Wx的求导
  • 乘法运算的前向传播反向传播的api

caffe深度学习框架

  • Caffe使用了前向传播和反向传播的框架来定义
  • Eg:Caffe中sigmoid convolutional 层的定义

总结:神经网络非常复杂和庞大,计算每一个变量的导数写下来是不现实的,所以使用反向传播算法计算,反向传播是神经网络的核心技术。
Ps:计算图 梯度方向传播,链式求导法则 Add门,Max门,Mul门对梯度进行的操作 向量的梯度与标量有什么不同
2017版CS231n课程学习视频B站参考学习地址:p4:Introduction to Neural Networkhttps://www.bilibili.com/video/av13260183?p=4(反向传播部分)
老师第四讲导读视频打卡内容:
1. 什么是计算图 ,画出函数(x+y)z的计算图
1.1计算图被定义为有向图,其中节点对应于数学运算。 计算图是表达和评估数学表达式的一种方式。
1.2函数g=(x+y)z的计算图:

062df2d9ae1587c33a6e7bbdddbb0139.png
计算图 - 深度学习™​www.yiibai.com
397d96d667c7d369d8e7d4b353b436d3.png

2. 写出g=(x+y)z的链式求导公式
目标:

令q=(x+y)

所以:


3. 写出课程中反向求梯度的例子 (w0*x0+w1*x1+w2)
5f00c6eb6dd32771cf456539e071032c.png


4. sigmoid求导 向量的梯度与标量的梯度有什么不同 F(x)=Wx的求导

sigmoid求导:

fa399ba3f086c99de2663647a52a3bec.png
sigmoid求导

向量梯度:jacobian matrix

标量梯度:表达式

e9bde46ad37dd193ca2a33e496c2a589.png
b7e6c8958b4eb22de2c55535f00cb922.png

5. 编写x*y forward backward函数并运行

class MultiplyGate(object):def forward(self,x,y):z=x*yself.x=xself.y=yreturn zdef backward(self,dz):dx = self.y*dzdy = self.x*dzreturn [dx,dy]

作业提交形式:
截图(不少于1张图片)和学习笔记(可以是图片、文字、或者博客链接形式等)打卡截止时间:12/13



推荐阅读
author-avatar
飞跃星空2502906253
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有