逻辑回归算法之交叉熵函数理解

来源:互联网 发布:大数据下的人力资源 编辑:程序博客网 时间:2024/06/16 05:24

之前看到Tensorflow中文社区网站(http://www.tensorfly.cn/tfdoc/tutorials/mnist_beginners.htm)中训练MNIST数据集有一个交叉熵函数,这里写图片描述当时不是特别理解,想了很久为什么这个函数就可以表示代价函数,后来经过学习吴恩达课程之后明白了,如果有初学者一开始想不明白这个函数,可以参考我以下的解释:
首先训练MNIST数据集的算法采用的是分类算法,和我们上次模拟房价的线性回归不一样,对于分类算法输出值都是离散值,线性回归算法输出是连续值,接下来我们讲一下广泛使用且典型的二元逻辑回归算法,逻辑回归算法的总体思路是将样本进行聚类分类,同一类样本放一起,将不同类的样本分离,如下图
这里写图片描述

对于二元逻辑回归算法中,其输出值只能是0或者1。上节说到了线性回归模型的数学模型,现给出逻辑回归算法的数学模型,
这里写图片描述

这里写图片描述

这里写图片描述

现已经给出了逻辑回归算法的数学模型,如果我们采用传统的平方误差函数,其画出的代价函数图就不会是一个凸函数,而是有很多局部最优点的歪歪扭扭的函数图像如下:
这里写图片描述

这类函数图像不是我们所想要的,因为有太多局部最优点了,我们需要一个全局最优点并且曲线光滑,如下图是我们所想要得到的代价函数曲线图
这里写图片描述

为了达到尽可能使得曲线光滑以及尽可能使得类似于像这种一元二次函数,因此我们给出代价函数表达式如下表示:
这里写图片描述

这里写图片描述

这里写图片描述

这个代价函数是一个分段函数,分别给出了y=0和y=1的代价函数图,从图中可以看出这个代价满足了凸函数的要求且没有局部最优点,只有全局最优点。
这里写图片描述

这是将分段函数组合成一个函数的表达式,看到这里应该明白了为什么训练MNIST用了交叉熵函数,因为这是一个分类问题,手写数字0-9,对应十个0和1标签,标签在某一个位置上为1代表对应的这个手写数字。标签值只有0和1,属于离散值,交叉熵函数对应了y=1的分段函数。以上是本人的理解,希望对您有所帮助!

原创粉丝点击