Loading [MathJax]/jax/output/CommonHTML/jax.js

目录


1 Logistic Regression介绍

现在我们从回归问题转到分类问题。别被Logistic Regression这个词迷惑了(之所以叫这个名字是由于历史问题,见这里),它是分类问题,而不是回归问题

2 Logistic Regression详解

不像输出y是一个连续的函数,Logistic Regression的输出是离散数据,即y{0,1,,n}

2.1 二分类

我们现在首先考虑最简单的情况,即即y{0,1}。我们称之为二分类问题。

有人会说这好办,我们只要给原来的线性回归的输出map到一个{0,1,,n}值即可,需要做的是找一个map的边界。但是这会过度简化模型导致输出不准确,请看下图例子。

线性回归map到二分类

新加一对Training Data就会使得原来的预测函数不准确。

那么该如何确定预测函数的形式呢,请往下接着看。

2.1.1 预测函数

g(z)=11+ez

其中g(z)的图形如下所示,其将任何实数转换成{0,1}之间的值。g(z)被称之为双弯曲函数(Sigmoid Function)或者逻辑函数(Logistic Function)。

logistic function

我们将线性回归的预测函数hθ(x)代入到z

hθ(x)=g(θTx)=11+eθTx

那么该如何解读hθ(x)的函数呢?如果hθ(x)=0.7=70%,就意味着有70%的概率我们的输出是1,即:

hθ(x)=p(y=1|x;θ)=1p(y=0|x;θ)

那么我们来看下决定边界(Decision Bouhdary):

z=0 hθ(x)0y=1 hθ(x)<0y=0

决定边界(Decision Bouhdary):是分开y=0y=1的边界。

例如:

θ=[510]

y=1,即:

hθ(x)=(θ0+θ1x1+θ2x2)05+(1)x1+0x20x15

在这个例子中,决定边界是x1=5的直线,直线左边是y=1,右边是y=0。 当然决定边界不一定是直线,也可以是二次曲线,比如圆,抛物线等。

2.1.2 成本函数

如果我们用同样的线性回归的成本函数来描述分类问题,会导致成本函数有很多局部最低点。换句话说,该成本函数将不是一个凸函数(Convext Function),,如下图

Convex vs Non-convex Function

Convex vs Non-convex Function

2.1.2.1 复杂成本函数

我们将成本函数重新表示成下面形式。

J(θ)=1mmi=1cost(hθ(x(i)),y(i))

对于线性回归,

cost(hθ(x(i)),y(i))=12(hθ(x(i))y(i))2

对于分类,

cost(hθ,y)={log(hθ(x)),if y=1log(1hθ(x)),if y=0

Classification Cost Function.png

2.1.2.2 简单成本函数

我们可以将上面复杂成本函数简化成下面简单成本函数的形式, 即y=0y=1复杂成本函数一样。

cost(hθ,y)=ylog(hθ(x))+(1y)log(1hθ(x))

2.1.3 梯度下降

分类结合梯度下降算法如下:

repreat until convergence:θj:=θjαθJ(θ)where:J(θ)=1mmi=1cost(hθ(x(i))y(i))=1mmi=1[ylog(hθ(x))+(1y)log(1hθ(x))]αθJ(θ)=α1mmi=1{[hθ(x(i))y(i)]x(i)j}hθ(x)=11+eθTx

2.1.4 高级优化

除了梯度下降算法外,还有其他算法可以让我们逐步接近Jmin(θ),比如下面这三种方法:

  1. Conjudated gradient

  2. BFGS(Broyden–Fletcher–Goldfarb–Shanno)

  3. L-BFGS(Broyden–Fletcher–Goldfarb–Shanno using using a limited amount of computer memory)

这三种方法比梯度下降的优势是可以更快接近Jmin(θ)且不需要人工选择α的值;缺点是实现起来稍显复杂。我们如果要用,可以直接用octave或matlab里的库。

下面是matlab和Octavefminunc函数,用于计算局部最小值。

fminunc函数:第一个参数是需要计算局部最小值的函数J,第二个参数是初始的该函数值θ,第三个函数是options(梯度开启,最多循环次数)。其中函数J返回函数值和梯度。

fminunc

2.2 多分类

二分类的问题比较简单,但是对于结果是多种类的多分类问题,我们该如何处理呢?比如天气的分类是Sunny,Cloudy,Rainny,Snowy等。

多分类:可以简化成二分类。

多分类vs二分类

多分类的问题可以简化成多个二分类问题,如上图所示。用y=0(该类)和y=1(非该类)应用到每一个class上,分别求出他们的预测函数。

3 正则化

3.1 拟合问题

监督式学习回归分类中,都会碰到Under Fitting (High Bias,太少Feature)Over Fitting (High Variance,太多Feature)的问题,见下图。

拟合问题

过度拟合(Over Fitting):使用了过多的参数,虽然完美地拟合到已有数据,但是对于未来的预测不准确。

通常来说有两种解决过度拟合(Over Fitting)的方法:

  1. 减少Feature数量,通过人工筛选或者筛选算法(后面的笔记会介绍);

  2. 正则化(Regularization),保持所有Feature,但是减小Feature的权重,即θ(j)。这当我们有很多略有用的Feature时解决的效果很好。

3.2 成本函数

那么如何应用正则化,它对原来的cost fucntionJθ的影响又是什么呢,我们可以从下面这个例子来用直觉理解。

当预测函数是4个Feature时,如果给成本函数加上1000θ3+1000θ4,可以看到为了使Jθ为0,θ3θ4必须要比原来没有这两项要小得多,从而降低θ3θ4的权重。

hθ(x)=θ0+θ1x+θ2x2+θ3x3+θ4x4 J(θ)=12mmi=1(hθ(x(i))y(i))2+1000x3+1000x4

regularization

有时候我们为了让预测函数更平滑,给所有的Feature都加上这么一项,即:

J(θ)=12mmi=1(hθ(x(i))y(i))2+λmi=1θ2iwhere λ is called regularization parameter

但是若λ取值过大,有可能会将过度拟合削弱为刚好拟合并且进一步变成不足拟合,导致hθ(x)=θ0,而其他θi0

3.3 正则化应用

3.3.1 正则化线性回归

3.3.1.1 梯度下降
repreat until convergence:θ0:=θ0α1mmi=1[hθ(x(i))y(i)]x(i)0θj:=θj{α1mmi=1[hθ(x(i))y(i)]x(i)j+λmθj},θj{1,2,,n}=θj(1αλm)α1mmi=1[hθ(x(i))y(i)]x(i)j,θj{1,2,,n}

如何理解上面的方程呢。在任何情况下(1αλm)<1都成立,直觉上可以理解为正则化的λ使得每一步的θj在一次更新过程中都相应地减小为原来的(1αλm)

##需要注意的是theta0不能同时被正则化,否则所有theta都被正则化就相当于没有正则化。##

3.3.1.2 标准方程

我们在第二篇笔记中提到过可以由标准方程来求出预测函数,即:

θ=(XTX)1XTywhere:X=[x(1)x(2)x(m)],x(i)=[x(1)ix(2)ix(n)i],y=[y(1)y(2)y(n)]

但是有两种情况下(XTX)是退化矩阵(不可逆的),1是mn,2是n有重复(比如一个是面积 in m2,一个是 in feet2)。但是正则化可以让第一种mn退化矩阵变为可逆矩阵,如下:

θ=(XTX+λL)1XTywhere:X=[x(1)x(2)x(m)],x(i)=[x(1)ix(2)ix(n)i],y=[y(1)y(2)y(n)]L=[0000010000100001]

3.3.2 正则化逻辑回归

regluarization classification cost function

3.3.2.1 梯度下降

回归一样。

4 作业

Classification

附上一张跑分图。

assignment2

5 总结

supervised learning summary.jpg

6 参考资料


Share Post

Twitter Google+

Shunmian

The only programmers in a position to see all the differences in power between the various languages are those who understand the most powerful one.