反向传播算法的作用
反向传播算法可以在计算图上面进行梯度的传播
线性模型可以看作一个简单的神经网络
对于单一的神经元,我们可以利用梯度下降去更新w
反向传播算法的由来
对于复杂的神经网络,可能有很多个权重,我们如果挨个去写解析式,这个工作量太大了
于是我们希望设计一个算法,它可以把我们的网络看作是一个图,我们在图上来传播我们的梯度,最终根据链式法则把梯度求出来,这样的算法就叫做反向传播
计算图
我们以一个两层的神经网络为例介绍一下计算图
右边图中绿色的模块就是计算模块,b1, b2叫做偏置量(bias)
矩阵计算公式
矩阵计算的公式可以在 matrix cook这本书中找到
根据左边的运算我们可以发现,无论中间有多少层,最终都可以写成一个一层的模型
为了解决这个问题,我们需要提高模型的复杂度,换句话说不能进行化简,因为如果可以化简,说明我们设计的多层就没有意