一、概念区别简单来说,均方误差(MSE)的含义是求一个batch中n个样本的n个输出与期望输出的差的平方的平均值 交叉熵是用来评估当前训练得到的概率分布与真实分布的差异情况。它刻画的是实际输出(概率)与期望输出(概率)的距离,也就是交叉熵的值越小,两个概率分布就越接近。 二、为什么不用MSE(两者区别详解)原因 1:交叉熵loss权重更新更快1. MSE(其中 而后更新 因为sigmoid函数的性质,如图的两端,几近于平坦,导致 这就带来实际操作的问题。当梯度很小的时候,应该减小步长(否则容易在最优解附近产生来回震荡),但是如果采用 MSE ,当梯度很小的时候,无法知道是离目标很远还是已经在目标附近了。(离目标很近和离目标很远,其梯度都很小) 2. Cross-entropy为了克服上述 MSE 不足,引入了categorical_crossentropy(交叉熵损失函数) 1)二分类 Binary Cross-entropy 激活函数为 sigmoid 或者简写成: 同样求导可得: 证明如下: 因此, 2)多分类 Categorican Cross-entropy 激活函数为 softmax 3. 补充 Cross-entropy 的缺点sigmoid(softmax)+cross-entropy loss 擅长于学习类间的信息,因为它采用了类间竞争机制,它只关心对于正确标签预测概率的准确性,忽略了其他非正确标签的差异,导致学习到的特征比较散。基于这个问题的优化有很多,比如对softmax进行改进,如L-Softmax、SM-Softmax、AM-Softmax等。这些在本篇不展开讨论。 原因 2:MSE是非凸优化问题而 Cross-entropy 是凸优化问题1.MSE我们从最简单的线性回归开始讨论:
2.Cross-entropy而,Cross-entropy 计算 loss,则依旧是一个凸优化问题。 以下进行详细说明和推导: 逻辑回归模型进行学习时,给定训练集 以下是直观理解: 当类别标签为 三、总结1.分类问题,都用 one-hot + cross-entropy 2.training 过程中,分类问题用cross-entropy,回归问题用mean squared error。 3.training 之后,validation / testing 时,使用classification error,更直观,而且是我们最关注的指标。(分类错误数量 / 总数) 即: 参考
AINLP 一个有趣有AI的自然语言处理公众号:关注AI、NLP、机器学习、推荐系统、计算广告等相关技术。公众号可直接对话双语聊天机器人,尝试自动对联、作诗机、藏头诗生成器,调戏夸夸机器人、彩虹屁生成器,使用中英翻译,查询相似词,测试NLP相关工具包。 340篇原创内容 公众号 |
|