回顾:
在上一节,学了损失函数与优化。回顾一下,当我们输出一张图片进行分类任务的时候,我们回使用到一个SVM分类器,这个分类器就是一个矩阵,这个矩阵的形状为N*M,N表示我们需要需要区分的类别数,M表示图片拉长后的长度。
可怎么知道这个分类器是否将各个类别区分得很好呢?便引入了损失函数,图片经过分类器后会得出各个类别的得分,我们将其他类别的得分分别与正确类别的得分进行减运算,求和,便得到此次分类的损失,正确区分的损失为零。
当得到损失的之后,我们肯定要想这个如何去优化,让这个损失减小,那么就需要改变权重的值。便引入了梯度下降,梯度下降就是找到一个权重更新的方向并且这个方向会使在当前情况下损失减少最大。
反向传播
可如何计算这个梯度的值呢?便引入了反向传播,通过反向传播可以从末尾节点,将权重的梯度依次向回传播,通过图1,2便知道反向传播的流程。
1/x求导得到-1/x^2,然后将本地梯度与上一级传回的梯度带入公式即( -1/1.37^2 ) * 1.0 = -0.53,依次类推,当遇到 + 号的时候,根据公式(f(x) = c+x ->df/dx = 1)即将上一级传回的梯度分发即可。当遇到 * 号的时候,则使用相反一边的本地权重与上一级传回的梯度相乘,如图3
当W与X为向量的时候,便需要使用到雅可比矩阵的知识(待查),如图4
总之,我们可以通过反向传播得到梯度下降的具体的值,之后便可以对权重进行进行更新,不断循环,直到损失收敛。