Logistic Regression

逻辑回归(Logistic regression)

分类问题

线性回归只能预测连续的值,分类问题只需要输出0或者1;当假设函数的值大于等于0.5,预测为1,小于0.5则预测为0。

回归模型假设(待证明)

  • x表示特征向量
  • g代表逻辑函数

该函数的图像为

$h_\theta(x)$的作用是,对于给定的输入变量,根据参数计算输出变量为1 的可能性。

判定边界(Decision Boundary)

即$z=\theta^TX=0$

代价函数

若沿用线性回归的定义,得到的代价函数是一个非凸函数,这将会影响梯度下降算法寻找全局最小值

重新定义(待证明)

$h_\theta(x)$与$Cost(h_\theta(x),y)$之间的关系如图:

特点:$y=1,h_\theta(x) \neq1 $时误差随$h_\theta(x)变小而增大$,$y=0,h_\theta(x) \neq0 $时误差随$h_\theta(x)变大而增大$

简化(待证明)

基于最大似然估计

梯度下降

$\frac{\delta J(\theta)}{\delta\theta_j}=-\frac{1}{m}\sum_{i=1}^{m}(y^{(i)}\frac{1}{h_\theta(x^{((i))})}\frac{\delta h_\theta(x^{(i)})}{\delta\theta_j}-(1-y^{(i)})\frac{1}{1-h_\theta(x^{(i)})}\frac{\delta h_\theta(x^{(i)})}{\delta\theta_j})$

$=-\frac{1}{m}\sum_{i=1}^{m}(y^{(i)}\frac{1}{g(\theta^Tx^{(i)})}-(1-y^{(i)})\frac{1}{1-g(\theta^Tx^{(i)})})\frac{\delta g(\theta^Tx^{(i)}))}{\delta\theta_j}$

$=-\frac{1}{m}\sum_{i=1}^{m}(y^{(i)}\frac{1}{g(\theta^Tx^{(i)})}-(1-y^{(i)})\frac{1}{1-g(\theta^Tx^{(i)})}) g(\theta^Tx^{(i)})(1-g(\theta^Tx^{(i)})x_j^{(i)})$

$=-\frac{1}{m}\sum_{i=1}^{m}(y^{(i)}(1-g(\theta^Tx^{(i)})-(1-y^{(i)})g(\theta^Tx^{(i)}))x_j^{(i)} $

$=-\frac{1}{m}\sum_{i=1}^{m}(y^{(i)}-g(\theta^Tx^{(i)}))x_j^{(i)}$

$=\frac{1}{m}\sum_{i=1}^{m}(h_\theta(x^{(i)}-y^{(i)}))x_j^{(i)}$

第二步到第三步的推导:

可以证明(凸优化的知识),所选代价函数是一个凸优化问题,没有局部最优值。
注意,由于假设函数与线性回归不同,所以梯度下降是不一样的,同时特征缩放也是必要的。

一些梯度下降算法之外的选择

  • 共轭梯度(Conjugate Gradient)
  • 局部优化(BFGS)
  • 有限内存局部优化(LBFGS)
  • fminunc是octave和matlab提供的最小值优化函数,需要提供代价函数和每个参数的求导。
    调用它的方式如下:
    options=optimset(‘GradObj’,’on’,’MaxIter’,100);
    initialTheta=zeros(2,1);
    [optTheta, functionVal, exitFlag]=fminunc(@costFunction, initialTheta, options);

简化代价函数和梯度下降

高级优化

共轭梯度,局部优化,有限内存局部优化的优点:
自动选择学习率$\alpha$,但是这些算法实际上在做更复杂的事情,不仅仅是在选择一个好的学习速率。

多类别分类(one-vs-all)

若要将数据集分为n个类,则转化为n个二分类问题,做预测时将所有的分类机都运行一遍。

正则化(Regularization)

过拟合(Overfitting)

如果我们有非常多的特征,通过学习得到的假设可能能够非常好地适应训练集(代价函数可能几乎为0),但是可能会不能推广到新的数据。

如何处理过拟合

  • 丢弃一些不能帮助我们正确预测的特征。可以是手工选择保留哪些特征,或者使用一些模型选择的算法来帮忙
  • 正则化。保留所有的特征,但是减少参数的大小

正则化代价函数

高次项导致了过拟合的产生,如果能让这些高此项系数接近于0,就能很好的拟合。

惩罚

在尝试最小化代价时将惩罚纳入考虑

$\lambda$称为正规化参数,根据惯例,不对$\theta_0$进行惩罚

$\lambda$过大,主要受$\theta_0$影响,欠拟合

正则化线性回归

根据正则化代价函数求偏导

正规方程也可以

$\theta = (X^TX+\lambda \begin{bmatrix}0 & & & & \\ & 1 & & & \\& & & \ddots & \\& & & & 1 \\ \end{bmatrix})^-1X^Ty$