Fork me on GitHub

【TensorFlow篇】--反向传播

一、前述

反向自动求导是 TensorFlow 实现的方案,首先,它执行图的前向阶段,从输入到输出,去计算节点
值,然后是反向阶段,从输出到输入去计算所有的偏导。

二、具体

1、举例

 

图是第二个阶段,在第一个阶段中,从 x =3和 y =4开始去计算所有的节点值
f ( x / y )=x 2 * y + y + 2
求解的想法是逐渐的从图上往下,计算 f ( x , y )的偏导,使用每一个连续的节点,直到我们到达变量节
点,严重依赖链式求导法则!

2.具体过程:

 因为n7是输出节点,所以f=n7,所以𝜕f/𝜕𝑛7= 1

 让我们继续往下走到n5节点,𝜕f/𝜕𝑛5=𝜕f/𝜕𝑛7∗𝜕𝑛7/𝜕𝑛5 . 我们已知𝜕f/𝜕𝑛7=1,所以我们需要知道𝜕𝑛7/𝜕𝑛5 ,因为n7=n5+n6,所以我们求得𝜕𝑛7/𝜕𝑛5=1,所以𝜕f/𝜕𝑛5=1*1=1

 现在我们继续走到节点n4,𝜕f/𝜕𝑛4=𝜕f/𝜕𝑛5∗𝜕𝑛5/𝜕𝑛4,因为n5=n4*n2,我们求得�𝑛5/𝜕𝑛4=n2,𝜕f/𝜕𝑛4=1*4

 沿着图一路向下,我们可以计算出所有节点,就能计算出 𝜕𝑓/𝜕x= 24,𝜕𝑓/𝜕y= 10

 那我们就可以利用和上面类似的方式方法去计算𝜕𝑓/𝜕𝑤

posted @ 2018-03-27 20:43  L先生AI课堂  阅读(439)  评论(0编辑  收藏  举报