一般的机器学习中,目的都是为了训练得出目标损失函数的最小值,而对直接求出最佳的损失函数的值是很困难的,而采用反向传播更新梯度的作用就是为了更新各个参数,从而得到最佳的损失函数的值。
而他的作用机理是什么呢,就是链式法则不断的求偏导数,例如:
而通过反向传播求出梯度之后,便能更新权值,例如SGD:
其中η是学习率(lr),更新后的权重重新计算,得到损失函数的值。
反向传播求梯度,就像我们站在山上的某个位置(想当于我们现在模型有的具体参数信息),想要以最佳的路线去到山下(取到最好的参数数据,使得损失值是最小)。首先,直观的方法就是环顾四周,向下山最快的方向走一步(数据里面体现为反向梯度走一个学习率),然后再次重复(环顾四周,找到最快的方向,再走一步),直到下山——这样的方法便是朴素的梯度下降——当前的海拔是我们的目标函数值,而我们在每一步找到的方向便是函数梯度的反方向(梯度是函数上升最快的方向,所以梯度的反方向就是函数下降最快的方向)。
疑惑一:得到梯度有什么用?
通过梯度和学习率的共同作用才能更新出不同的权重值,从而使得模型的训练提取到重要特征,使模型达到最好的效果。