目录

第一步:理解损失是什么

第二步:损失函数使用步骤

第三步:常用样本损失函数

第四步:二维图像理解损失函数

第五步:均方差损失函数


 

第一步:理解损失是什么


损失: 即所有样本的  误差  总和

如果我们把神经网络的参数调整到完全满足独立样本的输出误差为0,通常会令其它样本的误差变得更大,这样作为误差之和的损失函数值,就会变得更大。

所以,我们通常会在根据某个样本的误差 调整权重 后,计算一下整体样本的损失函数值,来判定网络是不是已经训练到了可接受的状态。

损失函数的作用:计算神经网络每次迭代前向计算结果与真实值的差距,从而指导下一步的训练向正确的方向进行。

第二步:损失函数使用步骤


1、用随机值初始化前向计算公式的参数。

2、代入样本,计算输出的预测值。

3、用损失函数计算预测值和标签值(真实值)的误差。

4、根据损失函数的导数,沿梯度最小方向将误差回传,修正前向计算公式中的各个权重值。

5、重复步骤2,直到损失函数值达到一个满意的值就停止迭代。

第三步:常用样本损失函数


符号规则:a 是预测值, y 是样本标签值, J 是损失函数值。


0-1 误差


                                        

huber损失函数 pytorch 损失函数怎么用_方差


绝对值损失( Absolute Loss)


𝑙𝑜𝑠𝑠=|y-a|


铰链/ 折页损失或最大边界损失


𝑙𝑜𝑠𝑠=max(0,1-y∙a),y=±1



 

huber损失函数 pytorch 损失函数怎么用_损失函数_02

第四步:二维图像理解损失函数



huber损失函数 pytorch 损失函数怎么用_损失函数_03

       

如图,纵坐标是损失函数值,横坐标是变量。不断地改变变量的值,会造成损失函数值的上升或下降。

而梯度下降算法会让计算沿着损失函数值下降的方向前进。

1、假设我们的初始位置在A点,𝑥=x0,损失函数值(纵坐标)较大,回传给网络做训练;

2、经过一次迭代后,我们移动到了𝐵B点,𝑥=𝑥1,损失函数值也相应减小,再次回传重新训练;

3、以此节奏不断向损失函数的最低点靠近,经历了𝑥2,𝑥3,𝑥4,𝑥5

4、直到损失值达到可接受的程度,比如𝑥5的位置,就停止训练。


第五步:均方差损失函数


        均方差函数是最直观的一个损失函数,计算预测值和真实值之间的欧氏距离,主要用于回归任务,公式如下:

huber损失函数 pytorch 损失函数怎么用_方差_04

 

huber损失函数 pytorch 损失函数怎么用_huber损失函数 pytorch_05