0 背景
之前学习过d2l课程,在反向传播那块过的比较快,后面训练了很多的神经网络,但总是感觉有些困顿迷茫,所以重新过了一遍基础知识
1 Back propagation
为什么训练需要比推理占用更多的显存呢?这是因为反向传播需要用到前向传播过程中很多的值,所以在前向传播的时候,需要将一些中间激活函数的值给存储起来,主要用到的有下面三种:
- 输入值(input)
- 权重值(weights)
- 激活函数的输出,这里以sigmoid函数为例,sigmoid函数求导之后的值为f(x)(1-f(x))所以需要用到f(x)之前的值
2 Lec 7 结合李宏毅的课程阐述
公式∂L(θ)∂w=∑∂Cn(θ)∂w\frac{\partial{L(\theta)}}{\partial{w}} = \sum{\frac{\partial{C^n(\theta)}}{\partial{w}}}∂w∂L(θ)=