导读
在神经网络中,回归问题通常都是使用均方误差(mean square erro)MSE作为代价函数,而在分类问题中通常都是选择最大似然函数或softmax作为代价函数,最大似然函数用于二分类,softmax用于多分类,softmax是最大似然函数对于多分类的推广。
不知道大家有没有想过,为什么在分类问题中不使用MSE作为代价函数呢?那么这篇文章就让我们来分析一下为什么在分类问题中不使用MSE作为代价函数。本篇文章的结构形式以理论+代码实践的方式来证明。代码实践以MXNet来实现,所以需要一点基础。
明确讨论的问题
为了帮助大家更好的理解,先简单介绍一下分类问题是如何实现的,为了简化分析问题我们使用一个单层的二分类模型来分析问题,一个单层的二分类模型结构图如下
其实分类问题和回归问题最主要的区别在于,对回归问题来说通过全连接层之后就可以直接通过MSE损失函数来计算模型预测值与实际值之间的误差,然后通过计算梯度来更新参数。
而分类问题,在全连接层之后还需要通过sigmoid函数,目的是将输出归一化到(0,1)范围内,然后通过最大似然函数来计算预测值与实际值的误差,从而计算梯度更新参数。所以,模型最终输出是一个(0,1)范围内的概率值。sigmoid函数图像如下
通过分析sigmoid函数图像,我们