一种思考数学表达式的轻松方法——计算图.doc
《一种思考数学表达式的轻松方法——计算图.doc》由会员分享,可在线阅读,更多相关《一种思考数学表达式的轻松方法——计算图.doc(5页珍藏版)》请在三一文库上搜索。
1、一种思考数学表达式的轻松方法计算图编者按:反向传播是一种训练人工神经网络的常见方法,它能简化深度模型在计算上的处理方式,是初学者必须熟练掌握的一种关键算法。对于现代神经网络,通过反向传播,我们能配合梯度下降大幅提高模型的训练速度,在一周时间内就完成以往研究人员可能要耗费两万年才能完成的模型。除了深度学习,反向传播算法在许多其他领域也是一个强大的计算工具,从天气预报到分析数值稳定性区别只在于名称差异。事实上,这种算法在几十个不同的领域都有成熟应用,无数研究人员都为这种“反向模式求导”的形式着迷。从根本上说,无论是深度学习还是其他数值计算环境,这是一种方便快速计算的方法,也是一个必不可少的计算窍门
2、。计算图谈及计算,有人可能又要为烦人的计算公式头疼了,所以本文用了一种思考数学表达式的轻松方法计算图。以非常简单的e=(a+b)(b+1)为例,从计算角度看它一共有3步操作:两次求和和一次乘积。为了让大家对计算图有更清晰的理解,这里我们把它分开计算,并绘制图像。我们可以把这个等式分成3个函数:在计算图中,我们把每个函数连同输入变量一起放进节点中。如果当前节点是另一个节点的输入,用带剪头的线表示数据流向:这其实是计算机科学中的一种常见描述方法,尤其是在讨论涉及函数的程序时,它非常有用。此外,现在流行的大多数深度学习开源框架,比如TensorFlow、Caffe、CNTK、Theano等,都采用了
3、计算图。仍以之前的例子为例,在计算图中,我们可以通过设置输入变量为特定值来计算表达式。如,我们设a=2,b=1:可以得到e=(a+b)(b+1)=6。计算图上的导数如果要理解计算图上的导数,一个关键在于我们如何理解每一条带箭头的线(下称“边”)上的导数。以之前的连接a节点和c=a+b节点的边为例,如果a对c有影响,那这是个怎么样的影响?如果a变化了,c会怎么变化?我们称这为c关于a的偏导数。为了计算图中的偏导数,我们先来复习这两个求和规则和乘积规则:已知a=2,b=1,那么相应的计算图就是:现在我们计算出了相邻两个节点的偏导数,如果我想知道不直接相连的节点是如何相互影响的,你会怎么办?如果我们
4、以速率为1的速度变化输入a,那么根据偏导数可知,函数c的变化速率也是1,已知e相对于c的偏导数是2,那么同样的,e相对a的变化速率也是2。计算不直接相连节点之间偏导数的一般规则是计算各路径偏导数的和,而同一路径偏导数则是各边偏导数的乘积,例如,e关于b的偏导数就等于:上式表示了b是如何通过影响函数c和d来影响函数e的。像这种一般的“路径求和”规则只是对多元链式规则的不同思考方式。路径分解“路径求和”的问题在于,如果我们只是简单粗暴地计算每条可能路径的偏导数,我们很可能会最后得到一个“爆炸”的和。如上图所示,X到Y有3条路径,Y到Z也有3条路径,如果要计算Z/X,我们要计算的是33=9条路径的偏
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 一种 思考 数学 表达式 轻松 方法 计算
链接地址:https://www.31doc.com/p-3364026.html