我的人工智能之旅——逻辑回归
本文,将涉及以下知识点,
(1)决策边界,decision boundary
(2)凸函数,convex function
(3)非凸函数,non convex function
此前所讨论的问题,都为线性回归问题。本文将介绍逻辑回归算法,该算法为分类问题提出解决方案。正文如下
逻辑回归
逻辑回归,logistic regression,由于历史问题,算法名称中包含“回归”字样,但其解决的是分类问题。分类问题可以简单地描述为是非问题(即结论为是否,结论),或枚举问题(即结论为已知种类中的某一类型,结论
)。先以简单的是非问题为例进行讲解,之后再引入枚举问题。
解决分类问题,需要引用概率理论。其核心思想是,当达到或高于某一概率p时,认为其为某种类型,否则不是该类型。概率p即为阀值,用于区分类型。通常将阀值定为0.5。
在详细讲述逻辑回归算法前,先来看一个问题。为什么不能用线性回归来解决分类问题?
线性回归vs分类问题
线性回归不能解决所有的分类问题。因为分类问题所对应的数学关系是离散的,结论y在一个有限的范围内。例如,是非类问题的结论y仅能为1或0,而线性回归所对应的数学关系是连续的。结论y不限于0到1间,可以小于0,或者大于1。
那么,如果缩小取值范围,仅将样本集合所对应的预估值限制于【0,1】区间呢?
在该前提下,还需要界定一个阀值(介于0与1之间),当假设函数预估值大于等于该阀值时,表示结论y为1。假设函数预估值小于该阀值时,表示结论y为0。而阀值可以看作是概率,概率高时,结论y为1(或0)。概率低时,结论y为0(或1)。
如下例。
样本(x,y)集合为{(0.2,0),(0.3,0),(0.4,0),(0.8,0),(0.9,0),(1,0),(1.25,1),(1.3,1),(2.1,1),(3.4,1)}。
通过线性回归算法学习,可以划定蓝色的假设函数。当x>=1.25时,预估值大于等于0.5,即结论y为1。所有样本都符合。
但当新增样本点(4.9,1)时,通过线性回归算法学习后,假设函数将变为棕色线条。
当x>=1.75时,预估值大于等于0.5。此时,原有样本(1.25,1),(1.3,1)不符合条件。
所以,不能将线性回归算法应用于分类问题,至少不能应用于所有分类问题。因此,对于逻辑回归,需要全新的假设函数。
假设函数
逻辑回归的假设函数必须满足一个条件,函数预估值必须映射到【0,1】区间内。因此,我们引入sigmoid函数(或logistic函数)
相应图像为
其特点为:
(1)是连续的
(2)当时,
;
(3)当时,
;
可以看作,(((样本z)的预估结论y)的值为1)的概率。
令,这样,样本X范围可以扩展至
。
同时,我们也得到了逻辑回归算法的假设函数
决策边界
判断结论总需要一个临界,此前我们引入的概率p便是决定因素。但除此之外,还需要引入另一概念,决策边界。
当假设函数,则认定y=1的概率较高;否则,认定y=0的概率较高。
那么,使得y=1获得高概率的条件即为,。
即临界条件为
假设
即
假设最终确认,
,
,那么如图,
直线及直线斜上方的区域,为y=1的区域。而直线斜下方的区域为y=0的区域。
直线被称为决策边界。
需要指出的是,决策边界不一定为直线。决策边界的形状取决于的定义。
若,对于同样取值的
,
,
,决策边界图形为
其中,椭圆内部为y=0的区域,椭圆线及椭圆外部为y=1的区域。
可见,特征值的拟合是会对决策边界产生影响的。
平方误差vs逻辑回归
有了假设函数后,接下来需要解决代价函数的问题。我们很容易会联想到线性回归到代价函数,毕竟平方误差是最常用的误差量化方法。先说明一下,线性回归为何使用平方误差。这里要引用凸函数(convex function)的知识(可参照微积分基础)。
需要特别强调一点,国内对于凹凸性定义和国外的定义是相反的。Convex Function在国内的某些数学书中指凹函数。在此,我们统一一下定义。本文中所涉及的凸函数,引用国外定义,即其图像是下凹的
因此,若一个函数为凸函数,那么该函数一定存在最小值。相反,若该函数为非凸函数,则该函数存在多个局部最小值。若局部最小值的数量较多,那么求出全局最小值就更加麻烦了。
如何去定一个函数是否是凸函数呢?若连续,
存在且
,那么该函数为凸函数。
依据此判断条件,可以得出线性回归代价函数为凸函数的结论。
其中,线性回归假设函数为。我们使用逻辑回归的假设函数
进行替换,可以得到
我们对该函数进行二次求导,最终结果无法确认是否大于0,因此使用平方误差来作为逻辑回归的代价函数,并非最佳选择。
代价函数
代价函数存在的意义在于,它可以使得,当预估值与实际值的偏差较大时,相应假设函数所付出的代价也越大。因此,我们可以通过求取代价函数最小值的方式,确定假设函数的设定参数最佳取值。
常用的代价函数有4类,包括绝对值,平方误差,对数和交叉熵。我们为逻辑回归选择对数代价函数。之所以这样选择,也是为了运算方便,因为代价函数中存在指数。
对数代价函数的公式为,
由于Y的取值为0或1,那么,
当Y=1时,
当Y=0时,
我们来看两种情况下,对应的对数图像。
当Y=1时,图像如下,
已知逻辑回归假设函数,使得
,进而使得
。
因此,当,
。而当
,
。
可以理解为,当预估值越接近实际值1时,代价越小,趋近于0。而预估值越接近0时,即越偏离实际值1时,代价越大,趋近于无穷大。
再来看一下Y=0时的情况,对应的对数图像如下,
同理,,进而使得
。
因此,当,
。而当
,
。
可以理解为,当预估值越接近实际值0时,代价越小,趋近于0。而预估值越接近1时,即越偏离实际值0时,代价越大,趋近于无穷大。
由此可见,选择对数代价函数,能够很好的量化偏差。
接下来的工作,就是运用梯度下降(或更高级的方法),推算出了。推算步骤与线性回归相同,不再重复描述。
枚举问题
此前针对的问题都为是非问题,那么如何解决枚举问题呢。例如Y的取值为0,1,2,3。
那么,针对该例,我们需要提供4个分类器,即4个假设函数,
,
和
。
对于假设函数来说,当预估值接近0,则其偏差最小。即视0为“是”,其它值为“非”。其它假设函数同理。
将预分类的数据X分别带入4个假设函数,则将得到预估值,
,
和
。
由于逻辑回归假设函数的寓意为概率,所以预估值高者所对应的枚举值,即为对应的最终分类。
小结
通过对比可见,线性回归与逻辑回归的区别,在于假设函数和代价函数的选取。因此,解题的关键在于,如何选择合适的假设函数,且如何使得代价函数为凸函数。