自己的视频笔记,不构成任何学习建议。谨慎观看,默默从宽
ref1 backpropagation explain part1: 直观感受
https://www.youtube.com/watch?v=XE3krf3CQls&list=PLZbbT5o_s2xq7LwI2y8_QtvuXZedL6tQU&index=26
notes
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
数学部分
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
notes
把上面 的玩意 都变成 函数 之后:
备注: 实际上 ,你看到了 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 开始 举例
那咱们 关注 的 W_12 这个 权重 的 loss C_0 就是:
于是,我们得出 一个 终极 的 等式:
解释一下 来由:
然后我们 详细 看看:这个复杂的等式
从第一个 部分开始:
如下计算即可:
备注: 的导数 就是
你把 上面 的 a1 换成 X ,就能理解 最后 那个
了吧
接着 看 第二个 term
上面 吧 j 换成 1 了
还有就是 F(x) 对 x 求道 ,就是 ,
所以 你看到 对
求道 ,就是
注意 这里 的 g 就是 activation function 的数学表示而已,是一个函数
好,现在搞 第三个 term:输入 对 目标权重
输入 是 多个 前一层网络 的 许多 权重 连线 ,连过来的,但是我 就关心: 这一个 权重,这也就导致 其他 权重连线过来的 值,并不会 对
求导得到什么东西,只会得到 0; 所以下图 ,说: 就他有用,其他的都没用
三个 都成了
现在 回头看看 overall result
一个 sample ,say 0 吧, 对 weight 12 的 更新 效果。
然后 是 n 个sample , 批发给 wieght 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
现在我们的重心,在于计算 中间层 的 loss, 或者说,中间层 的 那些 weights 如何影响 最后 的 output 我们很关心。
计算方式 和 之前 很像 ,但是 有所不同:
在等式 的 右边 ,第 2,3 项 都和以前一样地计算;
但是 第一项 ,计算方式 就是 不同的了
我们很关心 第一项 的计算:
因为:
开始 搞把
不是输出层的那些 点,其 权重更新,会比 output layer 的权重更新更加复杂
我们关注 的点:倒数第二层,2 号点,其激励函数, 这样表示:
然后 他的 损失 的 导数 ,就是 这样表示
把它 展开,我们就得到:
还记得上一届 的 loss 求道 的 狮子 吗?
上面 两者 很像吧
但是我指出 两个 不同:(还有个不同,天天认为是 求的 对象不同, 一个 是a 一个是w)
第一个就是 我们这一届 的有 sum 部分
为什么 有 sum 部分,就是因为 之前层 的 一个 激励函数 将会 影响 所有的输出nodes
所以,咱们现在 就必须 有 sum 的操作了。
上一届 我们已经 计算了 这两个:
所以就不说他们呢了
第二个 不同,就是 第三个
继续看看我们要求的东西,在网络中的位置
最后一层,第 j 个node 的输入:
让这个 输入 对 前一层 的激励函数 求道 :
记住,本层 的 输入,总是 由 前一层 所有 的nodes 经过 weights 打入的,前一层 有 k 个 nodes ,那么 weights 就会 有 k 个。 这个 公式 里面 的 k ,也就是 这个意思:前一层 有 k 个 nodes
算一下吧:
展开之
好的,回到 我们 最初的梦想,这里就是 输出 c0 loss 对于 L - 1 层 的 a2 激励函数 的导数:
然后 是 权重,举个例子,L - 1 层 的 :