Backpropagation
Backpropagation:即反向传播算法,简称BP算法。
它是使Gradient Descent更有效率的算法,因为在NN中有太多的参数需要我们进行处理,我们不得不寻找一种算法在有效的时间内求解。
首先回忆一下链式求导法
Backpropagation
在深度学习中,我们用所有原数据经过NN处理过后得到的结果和它的真实结果的差距的和来定义这个损失函数。
然后再用它对各个参数进行微分求解最佳参数。
我们可以用链式规则对这个微分式进行分解,前半部分是z对参数的微分,后半部分是这个损失函数对z的微分。
前半部分
我们可以清楚地看到,前半部分这个微分是很好算的,对哪个参数求偏导,结果就是它的系数,即它前面输入的一个值。
即使不是在NN的第一层,结果也是等于它前面的输入数据。
后半部分
后半部分还是比较难算的,首先z经过了一个函数σ,变成a,然后继续往下走...最终才能得到损失函数,所以这里面用链式拆解,后面的再不断复合。
第二层的情况如下,可以得到下面这个式子。但是我们想要得到结果还要继续算下去一直算到整个NN的输出层
现在假设第二层neural输出的就是最后的y,所以我们直接得到损失函数对z的一个微分。
我们观察到,这里的整个式子好像是从后往前算出来的
如果第二层neural连接着一个输出层,它是这样的。
如果连接的不是输出层,还是这样,只不过会继续算下去。
所以在面临一个大型的NN时,要使用反向计算,即反向传播算法。
最后把前半部分和后半部分一乘,就得到了完整的损失函数对某个参数的微分
在对所有参数均进行这样一个计算,就能完成Gradient Descent。
Comments NOTHING