《Machine Learning》第三讲 逻辑回归(LR)

1.Classification(分类)

《Machine Learning》第三讲 逻辑回归(LR)
       首先,我们需要了解的是,Logistic Regression这个术语中虽然有一个Regression在里面,但是它研究的不是回归问题而是分类问题。先从简单的二元分类谈起,我们假定输出的y只有0或1两种结果,当然,多元分类中,y的取值也就越多了。二元分类的应用场景有垃圾邮件分类、肿瘤良性/恶性等。


《Machine Learning》第三讲 逻辑回归(LR)
       如上图所示:我们继续以肿瘤的数据为例进行分析,假设肿瘤为良性时 y = 0,恶性时 y = 1;特征变量只考虑一个即肿瘤大小,然后我们继续用前面所学的线性回归来拟合这个数据,得到一条直线,发现在 y= 0.5,所对应的tumor size的值垂直于x轴的直线,刚好成了肿瘤的良性与恶性的分界线。但是,这只是一种理想的情况,假如在x轴右边继续增加一些点,会导致分界线所在点直线也向右移动,从而这个分界线也就越来越不准了。
       上面的描述虽然说明了线性回归不适合用来解决分类问题,但是提供了一个很好的思路,一是对于二分类问题,y = 0.5时所对应的参数θ与x所组成的方程就是分界线,二是分类划分标准h(x) >= 0.5时,y=1;h(x)< 0.5时,y=1;注意,h(x) = 《Machine Learning》第三讲 逻辑回归(LR), 也就是,在图标的正上方有描述。
       上面说到线性回归不能直接用于解决分类问题,因为其为了拟合所有数据,可能会导致分界线不准确,另一方面h(x)的值也不一定落在(0,1)的区间,导致h(x)=0.5的判断也就失去了意义,因此,我们必须将h(x)做一个变形,使其的值能够分布在(0,1)期间。


《Machine Learning》第三讲 逻辑回归(LR)
       上面的图所示的就是如何使h(x)的值落在(0,1),于是我们使用了Sigmoid function, 函数定义在图片中有描述,其大致图像类似于一个S型,因此我们也把这个模型称为逻辑回归模型。在之前有谈过,h(x) >= 0.5 时,有y = 1; h(x) < 0.5 时,有y = 0;很明显根据Sigmoid function图像可以得到下图的结论:
《Machine Learning》第三讲 逻辑回归(LR)


2.Decision Boundary

2.1 Linear Decision Boundary

《Machine Learning》第三讲 逻辑回归(LR)
       上图给出了一个含有两个特征值/属性(feature)时的情况,我们根据之前所学的知识,得到一个以 g 为规则的θ与x的函数,g代指sigmoid function。此处先不讨论θ是如何求解出来的,直接给出θ的结果。那么当y=1时,即h(x) >= 0.5,即(列向量θ的转置 * 列向量 x) > = 5, 即 -3 + x1+ x2 >= 0; 于是我们称 -3 + x1+ x2 = 0 这条直线为线性决策边界,如图中的蓝色加粗的直线。


2.2 non-Linear Decision Boundary
《Machine Learning》第三讲 逻辑回归(LR)
       上图所示的就是一个非线性决策边界的例子,这个地方就涉及到了多项式线性回归的问题了,过程与上面线性是一致的,此处不再赘述。

3.Cost Function 定义

《Machine Learning》第三讲 逻辑回归(LR)
       如图所示,假设我们通过线性回归的代价函数J(θ)来分析逻辑回归中的代价函。首先是一个变形,将1/2提到求和符号的后面来,然后图中的第二行就是代价函数的式子,注意,此处逻辑回归代价函数中的 h(x)是一个sigmoid函数,与之前的不同!!!
       图中左边所示的函数图像J(θ),就是经过sigmoid函数处理过的h(x)得到的,发现这不是一个凸函数,也就是说会得到多个局部最优解,显然不利于我们找到全局最优解。
       因此,这个说明我们如果用线性回归的代价函数模型,使用梯度下降法来计算逻辑回归的代价函数的话,这条路行不通,因为有太多的局部最优解产生,影响我们得出最后的结果,故,我们需要换一个函数模型,让它的函数图像呈一个凸函数(convex),这样的函数我们就可以使用梯度下降法来计算逻辑回归代价函数的最优解了!!!


《Machine Learning》第三讲 逻辑回归(LR)
       如图所示,我们将代价函数Cost再进行了一定的处理,也就是用对数函数的形式来处理h(x),注意横轴是sigmoid处理过的h(x),纵轴则是cost代价值。
       从图像来分析,y = 1时,函数图像呈下降趋势。而且我们发现,h(x)=1时,所得到的代价值Cost = 0,且 y = 1 预测正确,不用付出任何代价。于是,我们可以从直觉上,把h(x)的值看作是预测 y = 1的百分比,即 h(x)=1认为 y 有100%的可能性为1 (y一定是1),结果正确,不用代价; h(x) = 0,即 y有0%的可能性为1 (y一定不可能是1),结果完全错误,付出无穷大的代价,我们狠狠地惩罚了这个学习算法(learning algorithm)!
《Machine Learning》第三讲 逻辑回归(LR)

       y = 0 时的图像如上图所示,理解思路和上面 y = 1时是一模一样的。


       小结一下之前没想通的一个点,之前不理解逻辑回归为什么要用到代价函数,线性回归的代价函数是所有训练样本预测值与真实值的差的平方和,那么越小也就意味着模型越准确了。那么逻辑回归的代价函数呢,我们通过上面所总结出来的对数函数模型发现,横轴的值h(x)可以理解为机器预测y值给出的可能性,y轴就是机器预测结果的代价,如果预测越准,代价就越低,预测越偏,代价就越大,这样我们也就可以理解为什么使用这个函数模型,以及为什么需要逻辑回归也需要代价值了,当然,这个只是初学者直观上地理解,具体原理要等着深入学习之后才会理解。
       补充:上面说到不理解为什么逻辑回归的代价函数是这种形式,后面的课程中提到这个代价函数模型是从统计学中的极大似然估计法(Maximum Likelihood Estimate,MLE)得来的,再加上这又是一个凸函数(convex),所以大多数人在机器学习中采用这个模型作为逻辑回归的代价函数。


2017年11月5日补充:(解释逻辑回归代价函数为什么是log函数)

《Machine Learning》第三讲 逻辑回归(LR)

       sigmoid函数是一个值域处于(0,1)之间的函数,所以我们可以把这个函数的取值,当作一个概率值来看待,通过判断 h(x)与 0.5的大小关系,将一个数据进行二分类划分。于是可以将这个二分类认为整合成一个,注意,这里的整合是把 y 和 1-y 放在了指数的位置上!

《Machine Learning》第三讲 逻辑回归(LR)

       这里用到了似然函数,也是通过连乘的方式,来求联合概率密度的最大值,然后转成对数似然的方式进行求解。
这里可以参考我的另一篇文章(误差与最大似然估计的个人理解

4.Simplified cost function and gradient descent

《Machine Learning》第三讲 逻辑回归(LR)
       在之前有提到代价函数,其实是可以将y = 0和y = 1两个部分合并成一个函数的,如上图所示,蓝色字体手写的就是整合后的函数,也可以把负号提到前面来。


《Machine Learning》第三讲 逻辑回归(LR)
       最终得到的逻辑回归的代价函数就是这个样子的,再次提醒此处的h(x)与线性回归中的h(x)是不同的,这里的用到了sigmoid function。同样是为了计算出最小的J(θ),记得这个函数图像是一个凸函数,所以,我们不妨采取之前使用过的梯度下降法。
《Machine Learning》第三讲 逻辑回归(LR)
       梯度下降法的原理没变,还是对列向量θ的每一个维度求偏导,令 j = 0,1,2,3,…,n ,然后同时simultaneously求偏导,然后再一起下降(将新得到的参数θi覆盖旧参数θi)。求完偏导后的θj表达式如图中所示,发现这个形式和之前线性回归是一模一样的,不过二者的h(x)是不同的,所以二者还是有区别的。掌握了向量运算之后,是可以直接同步地更新这个θ向量,也就是说把θ看作一个整体代入计算。

5.Advanced optimization(高级优化,了解)

《Machine Learning》第三讲 逻辑回归(LR)
       除了使用梯度下降算法求解逻辑回归代价函数最小值以外,还有其他的一些算法,如图中给出的三个例子,右边是高级优化算法的优缺点,作一个了解。另外补充一点,之前梯度下降有一个特征缩放的操作,在逻辑回归中是同样适用的,也可以提高代价函数收敛的速率。

6.Multi-class classification: One-vs-all

《Machine Learning》第三讲 逻辑回归(LR)
       上图是一个很形象的示意图,对于一个三分类问题,我们可以等价于三个二分类模型,以三角形为例, 把我们想要分出的点认作正样本(positive class)y = 1,下方的点认作负样本(negative class)y = 0;然后就可以通过这个正负样本训练出一个能够区分出三角形的模型,其他的两个同理。于是我们最终可以得到三个不同的分界线即 h(x) = 0 ( 此处的h(x)不是sigmoid函数)

       个人理解:在之前的学习中,我们得出这样的一个结论 h(x) >= 0.5时,y = 1; h(x) < 0.5时,y = 0 ;因此我们在预测一个新数据x属于哪一类时,只需要把x代入sigmoid函数h(x)即可,这个结论从h(x)与J(θ)的对数函数图像也可以看出,h(x)值越大,预测y=1的代价就越小,h(x)值越小,y=1的代价就越大。

       综上,我们可以得到图片底部的式子,我们在判断一个新数据类别时,直接将其代入三个h(x)中,结果(预测概率)最大的值,表示它最拟合所对应的i类为正样本时的数据 ! ! ! i 就是该数据的类别,下图是泛化的语言描述。
《Machine Learning》第三讲 逻辑回归(LR)