逻辑回归(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$