神经网络基础知识

手上没有什么教材,都是听网课自学,好多东西都是学了忘忘了翻笔记,心里想着不如记一些电子笔记。纸质笔记不会全部搬运,这篇文章随缘记一些有意思的神经网络知识。

1 反向传播

反向传播(Backpropagation)是什么先不谈,它的作用就是一点:使Gradient Descent的计算更快速。
首先,梯度下降的计算过程如下:
神经网络基础知识_第1张图片
在计算过程中,类似下面的计算组成了计算的核心部分。
∂ L ( θ ) / ∂ w 1 \partial L(\theta) / \partial w_1 L(θ)/w1
如果不往深的想,可能这就是一个公式。但是这个公式的计算过程,正是反向传播优化的地方。
首先补充一下高数的链式法则:
神经网络基础知识_第2张图片
我们把 L ( θ ) L(\theta) L(θ) C n C^n Cn 代替:
神经网络基础知识_第3张图片
这样,公式的计算核心就转移到了下面这个公式上: ∂ C / ∂ w \partial C / \partial w C/w
根据链式法则:
神经网络基础知识_第4张图片
计算zw的偏导很简单,因为z = x1w1+ x2w2 + b。
神经网络基础知识_第5张图片
但是计算Cz的偏导就很麻烦了。因为C是最后的output layer与标准答案的Loss,这一项很难计算。所以还得对这一项进行拆解(使用链式法则):
神经网络基础知识_第6张图片
拆解完Cz的偏导,我们发现永远都是拆完后的第二项偏导很难算。这样我们就得反复拆下去,直到output layer
神经网络基础知识_第7张图片
对于输出层,这个第二项就很好算了,y就是output layer的输出值,C就是选一个Loss函数将y和标准答案做运算。这些对于前面的神经元来说计算起来很麻烦,得算到最后一步。
如果我们从前往后求偏导,那每次都得从后往前推一次。既然这样我们不如建一个反向的神经网络,负责去计算每一次的第二项偏导值,且只计算一次。这就是反向传播的精髓所在。
下面两张图是一个神经元的反向,和整个网络的反向:
神经网络基础知识_第8张图片
神经网络基础知识_第9张图片
反向传播能够使梯度的计算更快,就是这样一个原理了。
本小节课件参考:李宏毅2020机器学习

2 随缘补充

你可能感兴趣的:(神经网络,自然语言处理,人工智能,nlp)