损失: 即所有样本的 误差 总和
如果我们把神经网络的参数调整到完全满足独立样本的输出误差为0,通常会令其它样本的误差变得更大,这样作为误差之和的损失函数值,就会变得更大。
所以,我们通常会在根据某个样本的误差 调整权重 后,计算一下整体样本的损失函数值,来判定网络是不是已经训练到了可接受的状态。
损失函数的作用:计算神经网络每次迭代前向计算结果与真实值的差距,从而指导下一步的训练向正确的方向进行。
1、用随机值初始化前向计算公式的参数。
2、代入样本,计算输出的预测值。
3、用损失函数计算预测值和标签值(真实值)的误差。
4、根据损失函数的导数,沿梯度最小方向将误差回传,修正前向计算公式中的各个权重值。
5、重复步骤2,直到损失函数值达到一个满意的值就停止迭代。
符号规则:a 是预测值, y 是样本标签值, J 是损失函数值。
=|y-a|
=max(0,1-y∙a),y=±1
如图,纵坐标是损失函数值,横坐标是变量。不断地改变变量的值,会造成损失函数值的上升或下降。
而梯度下降算法会让计算沿着损失函数值下降的方向前进。
1、假设我们的初始位置在A点,=x0,损失函数值(纵坐标)较大,回传给网络做训练;
2、经过一次迭代后,我们移动到了B点,=1,损失函数值也相应减小,再次回传重新训练;
3、以此节奏不断向损失函数的最低点靠近,经历了2,3,4,5;
4、直到损失值达到可接受的程度,比如5的位置,就停止训练。
均方差函数是最直观的一个损失函数,计算预测值和真实值之间的欧氏距离,主要用于回归任务,公式如下: