美文网首页
反向传播:back propogation

反向传播:back propogation

作者: 非正经研究生 | 来源:发表于2021-08-29 15:55 被阅读0次

自己的视频笔记,不构成任何学习建议。谨慎观看,默默从宽

ref1 backpropagation explain part1: 直观感受

https://www.youtube.com/watch?v=XE3krf3CQls&list=PLZbbT5o_s2xq7LwI2y8_QtvuXZedL6tQU&index=26

notes

Xnip2021-08-29_14-25-23.jpg 完整的 反向传播.png 总结

math

  • chain rule

ref part 2 下层的 数学标记

在继续 深入 back propagation 之前,我们应该理解 一些数学 的符号

https://www.youtube.com/watch?v=2mSysRx-1c0&list=PLZbbT5o_s2xq7LwI2y8_QtvuXZedL6tQU&index=26

notes

视频内容:

框架

开始部分

sgd

gradient

update weights

数学部分

标记 k用来标记上一层的nodes W_jk_superScript_L的意思 W_j_superScript_L的意思 Z_j_superScript_L的意思

back propogation 是 一个 iteration 的过程


ref 3 back propogation part 3 Mathmetical observation

https://www.youtube.com/watch?v=G5b4jRBKNxw&list=PLZbbT5o_s2xq7LwI2y8_QtvuXZedL6tQU&index=27

这里是数学观察

三个目标
  • 如何 表达 loss function
  • 如何表达 一个 节点 的 输入 输出
  • 如何 区分 loss function

给你 图片 的 解释 overview

整体流程.png

notes

lossC0的定义 zj作为 input L层的激励输出表达式 c_0作为函数了.png g也是函数?.png 好的,现在 z 也是 函数了

把上面 的玩意 都变成 函数 之后:

image.png checkpoint

备注: 实际上 ,你看到了 c0 aka loss ,就是 一个 依赖 了 很多 其他 东西 的东西

  • 它 依赖了 activatin 函数,
  • 依赖了输入
  • 依赖 的权重

loss 的 计算 就可以 subject to weights 进行 导数 的计算


ref part 4 计算 渐变 / 梯度

https://www.youtube.com/watch?v=Zr5viAZGndE&list=PLZbbT5o_s2xq7LwI2y8_QtvuXZedL6tQU&index=28

notes

你已经知道 ,上一届 的 主题,就是 用 数学 的方式 ,让你 理解 了 神经网路 的数学 表达

比如 激励函数, input ,权重,loss 函数的 表达

这里 这一届 我们 就 计算 gradient

大纲:

大纲

differentiate the loss

咱们 先从 一个 node 开始 举例

看看这两个 nodes 吧

那咱们 关注 的 W_12 这个 权重 的 loss C_0 就是:

C_0 的 loss 表达式

于是,我们得出 一个 终极 的 等式:

终极等式,loss关于weight12 的导数计算 公式

解释一下 来由:

来由

然后我们 详细 看看:这个复杂的等式

从第一个 部分开始:

第一个部分即将被计算出来了

如下计算即可:

关于 a1 的导数

备注: ( X - c) ^ 2 的导数 就是

2(X-c)

你把 上面 的 a1 换成 X ,就能理解 最后 那个


这你能理解吧?

了吧


接着 看 第二个 term

第二个 term;激励a对输入z的导数.png 就这样算.png

上面 吧 j 换成 1 了

还有就是 F(x) 对 x 求道 ,就是 F'(x) ,

所以 你看到 g^{ (L)} (z_1^{(L)} )z_1^{(L)} 求道 ,就是 g' ^ {(L)} (z_1^{(L)})

注意 这里 的 g 就是 activation function 的数学表示而已,是一个函数

流程里面的g函数是激励函数

好,现在搞 第三个 term:输入 对 目标权重

第三个 term.png

输入 是 多个 前一层网络 的 许多 权重 连线 ,连过来的,但是我 就关心:W_{12} 这一个 权重,这也就导致 其他 权重连线过来的 值,并不会 对 W_{12} 求导得到什么东西,只会得到 0; 所以下图 ,说: 就他有用,其他的都没用

搞 出来了.png

三个 都成了

现在 回头看看 overall result

overall object

一个 sample ,say 0 吧, 对 weight 12 的 更新 效果。

然后 是 n 个sample , 批发给 wieght 12 进行 loss 计算,是如下的:

n个 sample都上来之后,对于 weight 12 计算 loss

好,上面 就是 n 个 sample 计算 某个 weight ,这里 是 weight 12 ,

但是 同样的操作 , 会 对 所有的 weight 进行 重复,不只是 weight 12 这样被搞,整个 weights 都会被搞 。

于是 ,整个网络 就被 你 的 back propogation 给搞更新了哈。


好的,到这里 ref 4 结束

你知道 如何 计算 loss 的细节了。

ref 5 final

https://www.youtube.com/watch?v=xClK__CqZnQ&list=PLZbbT5o_s2xq7LwI2y8_QtvuXZedL6tQU&index=29

notes

image.png

现在我们的重心,在于计算 中间层 的 loss, 或者说,中间层 的 那些 weights 如何影响 最后 的 output 我们很关心。

计算方式 和 之前 很像 ,但是 有所不同:

image.png

在等式 的 右边 ,第 2,3 项 都和以前一样地计算;

但是 第一项 ,计算方式 就是 不同的了

我们很关心 第一项 的计算:

image.png

因为:

image.png

开始 搞把

不是输出层的那些 点,其 权重更新,会比 output layer 的权重更新更加复杂

我们关注 的点:倒数第二层,2 号点,其激励函数, 这样表示:

关注他.png

然后 他的 损失 的 导数 ,就是 这样表示

他对应的导数表达式子.png

把它 展开,我们就得到:

展开后

还记得上一届 的 loss 求道 的 狮子 吗?

上一届 的 loss 求道 的 狮子.png

上面 两者 很像吧

但是我指出 两个 不同:(还有个不同,天天认为是 求的 对象不同, 一个 是a 一个是w)

第一个就是 我们这一届 的有 sum 部分

为什么 有 sum 部分,就是因为 之前层 的 一个 激励函数 将会 影响 所有的输出nodes

之前层 的 一个 激励函数 将会 影响 所有的输出nodes

所以,咱们现在 就必须 有 sum 的操作了。


上一届 我们已经 计算了 这两个:

他们已经在上一个 视频 计算过了

所以就不说他们呢了

第二个 不同,就是 第三个
第三个项目

继续看看我们要求的东西,在网络中的位置

红色,2号点,是关注的中心.png

最后一层,第 j 个node 的输入:

最后一层,第 j 个node 的输入.png

让这个 输入 对 前一层 的激励函数 求道 :

输入 对 前一层 的激励函数 求道.png

记住,本层 的 输入,总是 由 前一层 所有 的nodes 经过 weights 打入的,前一层 有 k 个 nodes ,那么 weights 就会 有 k 个。 这个 公式 里面 的 k ,也就是 这个意思:前一层 有 k 个 nodes

算一下吧:

展开之

展开,使用power rule!!!!.png

好的,回到 我们 最初的梦想,这里就是 输出 c0 loss 对于 L - 1 层 的 a2 激励函数 的导数:

对于激励函数的导数,出来了

然后 是 权重,举个例子,L - 1 层 的 W_{22}:

对于 权重的导数,也就出来了.png

end

相关文章

网友评论

      本文标题:反向传播:back propogation

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