逻辑回归虽然名字里带有回归二字,但是它实际上是一种解决二分类问题的方法,它的数学表达式也是神经网络中常用的一种激活函数,我们可以从上一节分类问题的公式中推导出逻辑回归的数学表达式,如下图所示
其中的z可以是线性回归中的线性函数,因此逻辑回归名字中带有回归二字,它可以说是一种特殊的线性回归,不过它终究是用来处理分类问题的,这也许就是神经网络的灵感来源,如图所示
对于分类问题,由于它的结果是不连续的,所以无法直接用梯度下降法算出最好的解,由于逻辑回归的结果位于0到1之间,我们可以将它看作是一种概率,这样的话,各个预测出来的概率的乘积越大,则这个模型也就越准确,从图像上来说,就是让预测出的结果尽可能集中在图像的两端,如下式
但这终究还是一个离散的问题,我们总是喜欢解连续的问题,并利用现成的梯度下降法求其最小值,于是我们对上式进行简单的变换
这样,求最大值乘法问题就变为一个求最小值的加法问题,这是一个线性问题,可以用梯度下降法来进行求解,但是这还没没完,上式还少了与真实值之间的互动,最终将上式改为
他所要表达的理念是,在二分类任务中,结果要么是0,要么是1,在上式中,如果预测完全正确,则括号里全为1,是最大值,取负号则是最小值,这就回到了熟悉的线性问题上,上述式子即是Cross entropy(交叉熵),它的更常见的表达式为
当然我们可以用真实值与预测值之间的差来计算损失函数,但实验证明这样的结果往往是不明显的,如图所示
将逻辑回归与上一节讲到的概率模型的方法做比较,往往是逻辑回归的表现更好,因为概率分布能预测没有出现过的事情,也就是说他的意淫能力往往会带来比较坏的结果,这不一定是好事,但是在数据量较少时,意淫的优势反倒显示出来了
Multi-Class Classification
对于多分类问题,我们常使用softmax函数进行计算,它也常常被用来作为神经网络最后一层的输出函数,它的表达式也可以看作是一个求概率的问题,也同样可以用交叉熵进行求解
逻辑回归的局限性
逻辑回归无法解决线性不可分的问题,如图
不过我们可以通过坐标变换进行求解,如图
我们可以把其中的坐标变化看成是神经网络中隐藏层的作用,我将在下一节对神经网络进行初步介绍