分类|深度学习(李宏毅)(二)

李宏毅老师深度学习系列2020

一、生成模型

假设有两个类别其中为先验分布,都是高斯分布,服从以下分布:

二、计算某一类样本的高斯分布

根据已有的标签数据可以求得每一类均值和方差的估计,由于该类样本服从高斯分布,则其似然如下:


求解可得:


三、逻辑回归(判别模型)推导

这里的推导假设具有同样的方差,且是对角线矩阵(即假设特征之间相互独立),证明如下:

后验概率


即是sigmoid函数,其图像为:

另外,其中




其中

同理

因为前面假设,所以,



在使用生成模型时需要估计,现在可以直接估计

四、逻辑回归的损失函数

1. 交叉熵损失函数
,则逻辑回归的损失函数(即似然)为:


上式中

上式即为交叉熵损失函数:

接下来对参数进行求导:


所以
更新梯度

2. 均方误差损失函数

接下来对参数进行求导:

由于上式红色部分的存在会导致当,而当时也有

交叉熵与均方误差的图像如下:

3. 总结
关于为什么使用交叉熵而不使用均方误差,总结如下:

  • 神经网络中如果预测值与实际值的误差越大,那么在反向传播训练的过程中,各种参数调整的幅度就要更大,从而使训练更快收敛,如果预测值与实际值的误差小,各种参数调整的幅度就要小,从而减少震荡。

  • 使用平方误差损失函数,误差增大参数的梯度会增大,但是当误差很大时,参数的梯度就会又减小了。

  • 使用交叉熵损失是函数,误差越大参数的梯度也越大,能够快速收敛。

五、判别模型 vs 生成模型

判别模型会直接估计
生成模型会估计,其中

一般情况下两种不一定相同。

生成模型的优点:

  • 因为生成模型有一个先验的假设,所以需要更少的训练数据,而且对噪声有更高的鲁棒性。

  • 先验分布和类别依赖的概率分布可以从不同的来源估计。

参考资料

ref:分类问题为什么要使用交叉熵损失函数而不是均方误差

Exit mobile version