目录
前言
本文根据吴恩达深度学习课程,给出了神经网络前向传播和反向传播的推导过程,本文给出了老师视频中没有推导的细节,纯数学推导。
前向传播
在深度神经网络中,隐含层的数目可以有很多,这里拿出其中的第层作为例子。还是引用老师视频里的符号输入为,输出为,缓存为。本文只讨论推导不讨论维度。
前向传播的式子可写为:
这里的表示隐含层层前一层的输出,在前向传播过程中,作为下一层的输入使用。
前向传播向量化实现
损失函数
定义成交叉熵函数,在编程过程中给出公式就可以了,具体运算计算机就已经做好了,我们只需要清楚推导过程。明白网络如何工作就可以了。视频中使用的损失函数是交叉熵函数。是预测值,是真实值。X是输入样本。
反向传播
本质就是求梯度的过程,获取梯度之后对权值进行不断更新。从而获取最优的模型。在网络得到输出后,损失函数对其求导作为反向传播的输入,最后我们期望的到的值是,,用来更新权值。,都是损失函数关于,求导。
反向传播推导过程
视频中对于层来说,
故
至于为什么w转置我的理解是这样的:设有个样本,隐含层数为,在网络进行正向传播时维度为,在进行反向传播时刚好正向输入的层变成输出层,输出的层变成输入的,所以这个应该转置,A转置的原因也应如此。个人理解,如有问题请各位大佬指正,小弟不甚感激。
将 代入 中得 :
反向传播的过程如下
反向传播向量化
老师在视频中说这个值没有什么意义,我个人觉得这只是个中间值。
根据样本的维度会有m个w和b产生,所以求一下均值。
总结
推导过程就是链式求导法则的应用,搞清楚每个参数的作用和神经网络的原理是推导的前提,过程还是挺复杂的,我在学习的过程中一直很迷糊,所以整理成这篇文章,文中如果有错误,请大家指出,共同学习。