每个问题求解我们都可以分为三步,第一步确定函数集,第二步确定函数的好坏程度,第三步得到最好的函数,我们接下来就从这三个部分来介绍逻辑回归。
第一步 Function set
上图可以形象化如下图所示
所以逻辑回归与线性回归的第一个不同之处如下图所示:
第二步我们需要确定函数集中函数的好坏程度。
假设我们的数据集来自于某个分布,当给定w和b,我们就可以得到产生这组数据集的概率,最大概率对应的w和b就是我们寻找的最合适的分布。如下图所示。
为了方便为了求解,如果该样本的类别是class1,则其对应的标签设置为1.我们本来求解的是最大概率对应的w和b,我们对概率表达式做修改,给概率加ln,以及加负号,我们就是需要求解该表达式最小时对应的w和b。其实就是极大似然函数。如下图所示。
我们对上面的极大似然函数再做调整,得到如下图形式,表达式变成了两个伯努利分布的ji交叉熵之和。交叉熵评价的是两个分布有多接近,如果两个分布完全一样,则交叉熵为0.
yi
接下来我们就得到了逻辑回归和线性回归的第二个不同之处,在判定每个函数的好坏程度时,其评判表达式不同,如下图所示。
图中提到,为什么不用均方误差作为逻辑回归的评判标准,这个我们在后面给出解释。
第三步,我们找到最好的函数
我们利用梯度下降法求解w,如下图所示求解w的梯度。
将上面求得的结果带入,并更新w的值,如下图所示,我们看到当预测值与真值相差越大时,w更新的幅度越大。
我们接下来来看逻辑回顾和线性回归的第三步是否相同,如下图所示
我们看到使用梯度下降法求解w时,其求解表达式都是一样的。
接下来,我们来看如果将均方误差作为逻辑回归的损失函数,会发生什么事,即解答为什么不能将均方误差作为逻辑回归的损失函数。利用均方误差作为修改函数,w的更新表达式如下图所示。
我们看到当真值为1,如果预测值为1,则接近真值,此时w的梯度为0,如果预测值为0,则远离真值,此时w的梯度为0.发现不管是接近真值还是远离真值,w的梯度都为0,那我们就没法判断w的梯度为0时到底是接近真值还是远离真值。
再看当真值为0的情况,如下图所示。
我们可以看到,不管是远离真值还是接近真值,w的梯度都是0.我们没法判断什么时候的预测值是基本接近真值的。
我们看看交叉熵损失函数和均方误差损失函数的损失函数图,如下图所示。
对改图的总结如下:
1.离目标远时,交叉熵微分大,均方误差微分小
2.离目标近时,交叉熵微分小,均方误差微分小
3.不管离目标近还是远,均方误差的微分都小,所以当微分小时,无法判断离目标近还是远。
4.交叉熵会使训练顺畅很多。
接下来比较判别方法和生成方法。
对于生成方法w和b的计算如下,上一节中我们得到了生成方法的z,整体计算过程如下:
在判别方法中,我们利用梯度下降法直接求解w和b.
在生成方法中,我们估计u1,u2,来得到w和b。
虽然这两个方法使用的数据集一样,但是得到的参数确不同。
通产来说,生成方法对概率分布做了假设,所以判别模型比生成模型的效果通常好,如下图所示。
举个例子来说明通常生成模型的效果不好。
改例子中样本的属性有2个。如下图所示。
在测试集中,朴素贝叶斯(生成方法)将两个属性值都为1的样本分到类别2中(明显的该样本的类别应该是1),在生成方法中,它认为两个属性是互相独立的,所以它认为在类别2中两个属性同时为1的概率不是0.
生成模型在某些情况下更有优势:
第三点的解释如下:
对于多分类模型,需要将sogmoid换成softmax即可。
逻辑回归的局限性。
我们无法将下面的样本正确分开。逻辑回归只能产生一条划分线。
我们可以考虑特征转化,利用某个式子,将样本原来的属性值映射到新的值上,使其可以使用逻辑回归正确划分。如下图所示。
但是不是每次都可以找到一个好的转化方法。我们将逻辑回归扩充。如下所示
我们将样本中的x1和x2映射到新的属性值和
,如下图所示,然后使用逻辑回归将其划分。
这个其实就是深度学习了。