0

Logistic Regression 小结

 2 years ago
source link: https://piggerzzm.github.io/2020/04/25/logistic%20Regression/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

Logistic Regression 小结

总结一下 Logistic Regression。

参考文献:西瓜书,Coursera 《Machine learning》 吴恩达

二分类任务

给定数据集 D={(xi,yi)}i=1m,其中 xi∈Rn 为样本,yi∈{0,1} 分别代表正类和反类的标记。训练一个分类器 f:Rn→{0,1}。

Logistic Regression 是用来解决二分类任务的一种分类器,经过一些修改也可以用作多分类问题。

Logistic Regression 的假设函数 —— 对数几率函数

Logistic Regression 的想法是用广义线性回归模型来解决二分类问题,首先要找一个假设函数 f:Rn→{0,1} 来做拟合。值域是一个离散的集合 {0,1},最理想的假设函数应当是单位阶跃函数,即

f(x)={1,x>00.5,x=00,x<0

很明显,这个函数不光滑甚至不连续,如果用它会出现很多问题。Logistic Regression 采用了对数几率函数 (logistic function) 来替代它:

f(x)=11+e−x

容易看出对数几率函数的值域是 (0,1),而且它在 x=0 处的斜率非常大。(注意:值域中的 0 和 1 是取不到的)

logistic

给这个对数几率函数加上待训练的参数 w 和 b,就得到了我们需要的假设函数:

f(x)=11+e−(wTx+b)

Logistic Regression 的训练方法 —— 极大似然估计

回归问题估计参数一般的方法是最小二乘法,但是注意到这个分类器的值域是取不到 0 和 1 的,训练集里所有样本的 “对数几率” 都是无穷,也就是说,最小二乘法失效了。

  • 由此也可以看出,Logistic Regression 并不是严格意义上的回归模型,它叫做 Regression 只是因为历史原因而已。

Logistic Regression 里一个关键的处理是把输出 f(x) 视为样本 x 属于正类的概率。用数学来表达就是 f(x)=P(y=1|x)。

这样我们就得到了随机变量 y∈{0,1} 关于 x 的以 w 和 b 为参数的条件分布:

p(y=1|x)=ewTx+b1+ewTx+b

p(y=0|x)=11+ewTx+b

接下来用极大似然估计来估计参数 w 和 b(这里假设了样本独立同分布),其对数似然函数为 l(w,b)=ln(p(y|x))=ln(∏i=1mp(yi|xi;w,b))=∑i=1mln(p(yi|xi;w,b))

然后调整一下记号,并简化一下对数似然函数。

令 β=(w;b),x^=(x;1),则有 wTx+b=βTx。再记 p1(x^;β)=p(y=1|x^,β) ,p0(x^;β)=p(y=0|x^,β)

注意到 y∈{0,1},则对数似然函数可简化为: l(w,b)=∑i=1mln((yip1(x^;β))+(1−yi)p0(x^;β))

最大化对数似然函数可等价于最小化其相反数,将 y 的条件带入后可得到如下优化问题: (w∗,β∗)=arg⁡minw,β∑i=1m(−yiβTxi^+ln(1+eβTx^i))

  • 可以证明 l(w,β) 是凸函数,可以使用数值优化算法如牛顿法、梯度下降法等求得最优解。

Logistic Regression 的损失函数 —— 交叉熵

对数似然函数 l(w,b) 还有另外一种化简的方法: l(w,b)=∑i=1mln(p1(x^;β)yip0(x^;β)(1−yi))=∑i=1myiln(p1(x^;β))+(1−yi)ln(p0(x^;β)) 用这种化简方法同样可以推导出上面的最小化问题。可以看到,Logistic Regression 采用的损失函数是交叉熵(cross entropy) Cost(f(x),y)=−yln(f(x))−(1−y)ln(1−f(x)) 代价函数 J 为对数似然函数的相反数 −l(w,b): J=∑i=1mCost(f(xi),yi)=∑i=1m(−yiln(f(xi))−(1−yi)ln(1−f(xi)))=−l(w,b) 研究交叉熵损失 Cost(f(x),y) 关于 f(x) 在一维情形 x∈R 的图像容易发现,它的性质是:

  1. 当 y=1 时,如果 f(x)=1,则 Cost=0;如果 f(x)=0,则 Cost=+\infin
  2. 当 y=0 时,如果 f(x)=0,则 Cost=0;如果 f(x)=1,则 Cost=+\infin

所以交叉熵损失有这样的特点:分类错误的代价为无穷大,分类正确的代价为 0.

因为我们把 Logistic Regression 分类器的输出视作属于正类的概率,在类别均衡情况下,分类器的输出大于 0.5 时将其预测为正类,反之将其预测为反类。

观察 f(x)=11+e−(wTx+b) 的特点:当 wTx+b≥0 时,有 f(x)≥0.5;当 wTx+b<0 时,有 f(x)<0.5。

而 wTx+b=0 定义了样本空间 Rn 中的一个超平面,这个超平面被称为决策边界(decision boundary)。在样本空间上得到了 Logistic Regression 的一种解释:

  • Logistic Regression 实际上是在用一个超平面来划分样本空间,从而分出正反类。

  • 如果希望使用非线性的决策边界,可以把 wTx+b 换为高阶的多项式再进行 Logistic Regression。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK