您的位置:首页 > 其它

机器学习笔记(一)逻辑回归与多项逻辑回归

2016-10-21 23:34 274 查看

1.逻辑回归与多项逻辑回归

1.1什么是逻辑回归?

逻辑回归,可以说是在线性回归的基础上加上一个sigmoid函数,将线性回归产生的值归一化到[0-1]区间内。sigmoid函数如下:

​ sigmoid(x)=11+e−x

[问题] :为什么要提出逻辑回归呢?

在线性回归中,我们知道 θTX 就代表了分类的置信度。我们定义一个阈值θ0 , 来进行分类,但实际上,我们都知道θTX 的值与θ0 的差值越大,则分类正确的概率越大,差值越小则正确概率越小。我们希望输出这样的一个概率,就需要将θTX 的范围从(−∞,+∞) 限制到(0,1)中。

那么,为什么要使用sigmoid函数呢?

原因有下:

sigmoid函数输出范围为(0,1) ;

sigmoid函数是一个单调递增函数,满足θTX越大时,输出值越大;

对于二分类问题,它的概率分布满足伯努利分布,也就是

​ {Pn=pPn=1−pn=1n=0

这里,我们引入一个发生比odds=p1−p , 做如下操作:

​ 1. 两边同时取ln, ln(odds)=ln(p1−p)

​ 2. logit(p)=ln(odds)=ln(p1−p) 由于对于这个函数,定义域为(0,1) , 值域为(-∞,+∞)

​ 3. 取反函数, x=ln(p1−p)e−x=1−ppp=11+e−x 这样,就得到了sigmoid函数。

(以上省略其他关于最大熵的原因,及相关推导)

[总结]

逻辑回归对于每一个样本n被分为某一类的概率,输出:p(xn)=11+e−∑dj=1θjxnj

​ 用于分类时,通过采用极大似然估计进行分类,即选择类别更大的p(x)。



1.2什么是多项逻辑回归?

从上述可知,逻辑回归只适用于二分类问题。为了使它能扩展到多分类问题,我们将sigmoid函数,换成softmax函数。

​ softmax(x)=ei∑ck=1ek (其中,ei代表第i类,c代表一共的类别数)

应用到多项逻辑回归中是:

​ p(y=i|x)=exp{ai}∑cn=1exp{an} ai=∑dj=1θijxj

(其中,θj代表第j类的参数值,p(y=j|x)代表对于样本X,将其分为j类的概率)

[证明] :推导出softmax函数

每一类的概率pn 取值范围在(0,1) , 而θTX 的取值范围在(−∞,+∞) ,我们需要选择一个递增函数,将θTX 映射到pn 。

首先,不考虑pn的取值范围为(0,1),

假设ln(pn)=θTXpn=exp{θTX}

再对pn进行归一化处理就可以了。

[总结]

多项逻辑回归,每一个样本对应分到每一类的概率:

​ p(y=i|x)=exp{ai}∑cn=1exp{an} ai=∑dj=1θijxj

1.3如何求多项逻辑回归的模型?

1.3.1点估计

求多项逻辑回归的模型,等价于估计模型参数。

参数的估计,在统计学中,分为两类,一类是点估计;一类是区间估计。

点估计:用样本统计量来估计总体参数,因为样本统计量为数轴上某一点值,估计的结果也以一个点的数值表示,所以称为点估计。

区间估计:通过从总体中抽取的样本,根据一定的正确度与精确度的要求,构造出适当的区间,以作为总体的分布参数(或参数的函数)的真值所在范围的估计。

点估计常用方法:

矩估计法

以样本矩的某一函数,代替总体的同一函数,来构造估计量的方法。

比如,先构建一个总体的期望与参数之间的关系,然后可以用样本的均值代替总体的期望,从而求出总体的参数。

最大似然估计法

当从模型总体随机抽取n组样本观测值后,最合理的参数估计量应该使得从模型中抽取该n组样本观测值的概率最大,而不是像最小二乘估计法旨在得到使得模型能最好地拟合样本数据的参数估计量。

θ=argmax(p(D|θ))=argmax(∏nm=1p(xm|θ))

最小二乘法

最小二乘法(又称最小平方法)是一种数学优化技术。它通过最小化误差的平方和寻找数据的最佳函数匹配。利用最小二乘法可以简便地求得未知的数据,并使得这些求得的数据与实际数据之间误差的平方和为最小。



贝叶斯估计法

贝叶斯估计,是在给定训练数据D时,确定假设空间H中的最佳假设。 最佳假设:一种方法是把它定义为在给定数据D以及H中不同假设的先验概率的有关知识下的最可能假设。

θ=argmax(p(θ|D))=argmax(p(D|θ)p(θ)p(D))



对于逻辑回归,我们可以采用极大似然估计,也可以采用贝叶斯估计法。只不过,如果采用贝叶斯估计法,需要对θ给一个先验分布。除此之外,我们也可以采用最小二乘法。

如果我们采用极大似然估计或者贝叶斯估计法,都是需要通过梯度下降或者牛顿法等优化算法进行寻优的。而如果我们采用最小二乘法,不可以用普通最小二乘法(OLS),而应该采用迭代加权最小二乘法(IRLS)。



[问题]: 为什么不能用普通最小二乘法?

广义的最小二乘法有两种,一种是线性最小二乘法,另一种是非线性最小二乘法。

我们常说的普通最小二乘法(OLS),就是使计算残差的误差函数最小,但是计算过程不是通过迭代,而是通过直接计算。

证明:

定义损失函数为: L(θ)=∑mn=1(y−h(θ))2

使L(θ)最小,等同于让其偏导数为0。故有:

对于线性回归而言

∇θiL(θ)=∑mn=12(y−θ)h′(θ)

可以很方便的求出它的解。但是对于多项逻辑回归而言,这个偏导数的解很难求。所以不能用最小二乘法。

一个比较通俗的解释就是,本身OLS的提出,就是在高斯-马尔可夫定理的基础下,残差最小即全局最小。但是对于逻辑回归,我们的损失函数不能为平方损失函数,故而不适用OLS。

1.3.2 costfunction函数



(截自李航《统计学习方法》)

这里,我们的损失函数选择对数损失函数,原因有下:

逻辑回归引入softmax函数,使输出值与模型参数之间的关系不再是线性关系。此时如果选择与线性回归一样的平方损失函数,就会导致costfunction可能是非凸函数。对于非凸函数进行梯度下降法,会导致陷入局部最优情况。选择对数损失函数,会使这个函数变成凸函数。

逻辑回归中概率P(Y|X)使用了指数函数。损失函数最小化通常需要对其求偏导数,直接对指数函数求导会较复杂,使用对数后,求导会简单些。逻辑回归中,损失函数若不采用对数形式,对于样本集合则有:

​ L=∏mn=1(∑cj=11{yn=j}P(yn|xn))

如果加上对数,则变成了 L=∏mn=1(∑cj=11{yn=j}ln(P(yn|xn)))=∑mn=1∑cj=11{yn=j}ln(P(yn|xn))

累加比累乘要简单。

对数函数也是单调递增函数,P(Y|X)越大,log(P(Y|X))就越大。逻辑回归模型学习的目标,就是需要使每一个样本X正确分类到类别Y的概率最大。(取负log是为了符合最小化损失函数这一理念)

(实际上,对于分类问题,输出值为概率时,基本全采用对数损失函数。对于对数损失函数的选择,还有一些观点在此省略)

由上述可得,我们的学习目标就是:

θ=argmax(∑mn=1∑cj=11{yn=j}ln(P(y=j|xn)))

为了符合最小化损失函数这一理念:

θ=argmin(−∑mn=1∑cj=11{yn=j}ln(P(y=j|xn)))

(其中1{yn=j}代表示性函数,当第n个样本的分类为j时,则返回1,否则为0)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐