【机器学习】神经网络各层反向传播中的损失计算

神经网络反向传播中各层损失计算

(一个随意的笔记)

在看吴恩达的神经网络时看不懂表达式啥意思,于是自己推算了一遍。背景是这样的,一个l层神经网络,正向传播如下图示例所示:
【机器学习】神经网络各层反向传播中的损失计算_第1张图片
那么当计算出a(4)后,会与真实值y有一个偏差,神经网络就是根据这个偏差来反向传播,更新各层参数,进而完成模型训练的。在更新参数时需要知道各层的损失分别是多少,这怎么计算呢?结论如下:
【机器学习】神经网络各层反向传播中的损失计算_第2张图片
然而但从表达式看来意义并不那么明确,于是推演一遍计算过程(认为损失 δ \delta δ(i)可以直接用偏导数表示):
【机器学习】神经网络各层反向传播中的损失计算_第3张图片
【机器学习】神经网络各层反向传播中的损失计算_第4张图片

不难发现,第l层的损失并不是简简单单直观认为的a(l)-y,实际上与我们计算出来第l层的 δ \delta δ(l)的表达式不谋而合,这实际上是由于损失函数J( θ \theta θ)的巧妙设定造成的效果。

而计算出每一层的损失 δ \delta δ(i)以后,就能利用反向传播算法更新参数了。我们前面计算了关于z(i)的偏导作为 δ \delta δ(i),而事实上参数是 θ \theta θ,因此需要进一步处理。
【机器学习】神经网络各层反向传播中的损失计算_第5张图片

你可能感兴趣的:(机器学习,神经网络,机器学习)