Andrew Ng在他的机器学习课程中讲述bp神经网络时,并没有深究这算法背后的推导过程,只是给了我们一个大体的执行步骤,实现了这个算法但却不知道这个算法背后的原理是件很痛苦的事。在看了知乎、csdn、简书后发现有很多人采用矩阵求偏导之类的推导步骤。诚然,这么干可以使公式变得很紧凑,在编程时也能有效减少代码行数,提高运行效率,但是矩阵形式的推导有两个小小的不足:
1. 矩阵、向量的求导、求偏导对于初学者而言比较难以理解; 2. 有的博主自己就没弄懂正确的矩阵求导法则和公式,导致他们的推导过程本身并不严密,仅仅是最后推出了bp的权重更新结果公式。
于是我在参考某篇知乎文章后,针对一个具体的神经网络结构对这里面的bp算法进行了一个详细的推导,希望能给出一个不仅适合初学者学习而且过程较为严密的推导。由于我水平有限,其中肯定有不少疏漏之处,不喜轻喷qwq…