1、CE损失函数
(1)交叉熵损失函数
交叉熵损失主要是用于判断实际输出与期望输出的接近程度
交叉熵损失刻画的是实际输出的概率与期望输出的概率的距离。交叉熵损失越小,两个概率分布就越接近,即实际输出与期望输出越相似。
概率分布p是期望输出,概率分布q是实际输出,得到的是两个概率分布之间的距离远近
(2)Pytorch中的交叉熵损失函数
Pytorch中的交叉熵损失函数是以另一种形式呈现的
N是样本个数,M是类别数量,Yic是样本i的标签,Pic是样本i预测为c的概率,log的底数为e
Pytorch中的CrossEntropy Loss() 函数是softmax-log-NLLLoss函数合并在一起的
1)softmax函数的数值在0~1之间,加上log之后值域是负无穷到0
2)NLLLoss函数将log后的数值与label对应的值拿出来,去掉负号求均值
2、BCE损失函数
(1)BCE损失函数与CE损失函数的区分
BCE损失函数(Binary Cross Entropy)用于二分类任务。针对每一个类别,都当作一个二分类来处理。
CE损失函数是基于softmax函数,每个类别相斥,所有类别的概率总和为1。CE有n个类别,网络就输出n个节点。
BCE损失函数是二分类损失函数,所有概率总和不一定是1,类别之间不互斥。BCE有n个类别,网络只输出1个节点。
(2)BCE损失函数
N是样本个数,Pi是样本i预测为正类的概率,Yi是样本i的标签(正类为1负类为0)
BCE要求标签是以one-hot形式,即只含有0和1。
3、MSE损失函数
(1)MSE损失函数与CE损失函数与BCE损失函数
MSE损失函数不常用于分类。MSE(Mean Squared Error)是一种常用的衡量模型预测值与实际观测值之间的差异的指标,用于评估模型在给定数据上的拟合程度。
使用sigmoid/softmax函数得到概率,配合MSE损失函数,采用梯度下降学习时会出现模型一开始训练,学习速率非常慢的情况
而CE损失函数和BCE损失函数更适用于分类任务,训练时学习速率较快
(2)MSE损失函数
MSE损失函数的计算步骤:
1)计算模型的预测值
2)计算模型的预测值与实际的观测值之间的差异,并将其平方
3)对所有的差异值进行求和,并除以观测值的总数,得到平均差异值
MSE损失函数表示模型预测值与实际观测值之间的差异的平均大小,损失函数的大小代表模型预测值与实际观测值之间的差异,即反应模型的拟合程度。
4、softmax激活函数
softmax函数是一种用于多类别分类问题的激活函数,常用于神经网络的输出层。
softmax激活函数是将原始数值转换为表示概率分布的数值,使得每个类别的概率值都在0~1之间,且所有类别的概率总和为1。
e是log的底数,n是样本类别数量
softmax函数的特点:
(1)将原始数值映射到0~1之间,可以用来表示每个类别的相对权重。
(2)对原始数值进行归一化,使所有类别的概率总和为1,适用于多分类任务互斥任务
(3)会放大原始数值的类别概率,可以更好地区分不同类别