计算图(Computational Graph)笔记-BPTT

计算图(Computational Graph)笔记

最近在学习Tensorflow,而Tensorflow的写法和一般的Python好像不太一样,不是很容易上手。后来看到Tensorflow是基于Computational Graph,那么就先来学习一下,参考的资料A Primer on Neural Network Models for Natural Language Processing
目录如下

什么是计算图(Computational Graph)

简单来说就是,就是一个有向图,

计算图范例

上图来源是 这样子的图就代表 (ab+1)(ab+2)
图的来源是A Primer on Neural Network Models for Natural Language Processing

一些表示

为了清楚期间,用圆来表示运算符号(tensorflow中的各种op,加减乘除,sigmoid…),用无色的长方形表示输入(tensorflow中的placeholder),用有颜色的长方形表示变量(tensorflow中的Variable)
例如:
这里写图片描述
要说一下的是,这边图上是看不出来 node_1 node_2 具体的运算是什么(由于空间问题,我就定义在外边了),定义如下:

node_1=Wxnode_2=node_1+bnode_3=[node_2y]2

此外,元素 A 指向元素 B 就说明 A B 的参数(argument),用符号表示就是

Aπ1(B)

其中 π1(B) 表示 B 的所有arguments

Forward

非常简单,就是把手头有的资料 yx 就是把所有的leaves的值一层层往上根据各个node的定义去计算就好了.

Backward

BP的部分也很简单,第一步是将上面那种图中各个node对于他的参数的偏微分。论文上写起来大概就是这样

node_ieeπ1(node_i)

(当然关于x关于y的不必求了即关于placeholder的不用求),得到下图:
这里写图片描述

第二步是找到所有从你希望优化的node你希望调整的参数的路径,然后每一条路径上的偏微分乘在一起,所有路径加在一起。
举个例子假如我们的目标是让 node_3 最小,并且我们希望调整参数 W 来达到这个目的,怎么办呢?首先我们算出所有(这种情况显然b的就不用,简单起见就说所有的)node对于他们的参数的偏微分,如上图表示。然后对于 W ,找到所有从 node_3 W 的路径,(这边只有一条),如下

nod
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值