神经网络基础6 - 反向传播

作者: 心水 | 来源:发表于2019-05-03 20:12 被阅读6次

反向传播是一种计算导数的方法,导数表达的是输入的变化将在多大程度上影响输出,举个例子,y = x2 其中y 关于 x 的导可以数表示为:

\frac{dy}{dx} = 2x

当x = 1 时,导数是2,说明:

\Delta y / \Delta x = 2

学习反向传播,要先了解一下正向传播,举个例子,假设你在在超市买了 2 个 100 元一个的苹果,消费税是 10%,请计算支付金额,我们可以通过下面这个计算图求出最终的结果。

神经网络基础6 - 反向传播

图中有两个乘法节点,边上的数字从左到右流动,当数据流过乘法节点时,就会执行乘法操作,然后把计算的结果放到节点右边的边上,这就是正向传播的过程。

反向传播就是倒过来,数据从最终的结果开始从右往左传播,当经过一个节点时,数据会被转换成这个节点代表的函数的导数,然后放到节点左边的边上继续流动,还是以买苹果为例,反向传播的数据如下图所示:


神经网络基础6 - 反向传播

其中加粗的边代表了反向传播,那边上的数字是怎么算出来的呢?
首先看最右边的数字1是如何算出来的,最右边那条边其实代表的函数是:
y = x,导数 \frac{dy}{dx} = 1,反向传播时传递的是导数,所以最右边的数字就是1。

再看最右边的乘法节点,当反向传播时,乘法节点的操作如下图所示: 神经网络基础6 - 反向传播

最后一个乘法节点代表的函数是:z = x * y ,其中 x = 200, y = 1.1, 按照反向传播时乘法节点的规律,我们可以得出上面的边是1.1,下面的边是200,同理,我们也可以算出最左边的两条边的数字。

从反向传播的结果来看,苹果的价格的导数是 2.2,苹果的个数的导数是 110,消费税的导数是 200。这可以解释为,如果消费税和苹果的价格增加相同的值,则消费税将对最终价格产生 200 倍大小的影响,苹果的价格将产生 2.2 倍大小的影响。为什么两个因素的影响会相差那么大呢?因为这个例子中消费税和苹果的价格的单位不同,所以才形成了这样的结果(消费税的 1 是 100%,苹果的价格的 1 是 1 元)。

相关文章

网友评论

    本文标题:神经网络基础6 - 反向传播

    本文链接:https://www.haomeiwen.com/subject/ameznqtx.html