0%

Machine-Learning-Note5

Logistic Regression

对数几率回归(Logistic Regression/Logit regression)也称逻辑回归,用于解决分类问题。在对率回归(对数几率回归的简称)中, 0≤hθ(x)≤1.

#####假设函数

假设函数为$h_\theta(x)=g(\theta^Tx)$,其中$g(z)=\frac{1}{1+e^{-z}}$,$g(z)$叫做Sigmoid Function或者Logistic Function.对数几率函数是Sigmoid函数的一种, 它将z值转化为一个接近0或1的y值, 并且其输出值在z=0z=0附近变化很陡. Sigmoid函数即形似S的函数, 对率函数是Sigmoid函数最重要的代表.
$$
{h_\theta(x)=\frac{1}{1+e^{-\theta^Tx}}}
$$

#####决策边界

“0“与”1“的分界线

代价函数

线性回归中用到的代价函数(凸函数):
$$
{J(\theta)=\frac{1}{m}\sum_{i=1}^m\frac{1}{2}\left(h_\theta(x^{(i)})-y^{(i)}\right)^2}
$$

$$
Cost\left(h_\theta(x^{(i)}),y^{(i)}\right)=\frac{1}{2}\left(h_\theta(x^{(i)})-y^{(i)}\right)^2
$$

Sigmiod函数会使代价函数变成非凸函数。若想使用梯度下降法收敛到全局最小值,需要另外定义对率回归的代价函数,得到凸函数。

对率回归中代价函数:
$$
{J(\theta)=-\frac{1}{m}\left[\sum_{i=1}^my^{(i)}log(h_\theta(x^{(i)}))+(1-y^{(i)})log(1-h_\theta(x^{(i)}))\right]}
$$

$$
{Cost\left(h_\theta(x),y\right)=-ylog(h_\theta(x))-(1-y)log(1-h_\theta(x))}
$$

y的值只有0,1两种情况

梯度下降法求对率回归的代价函数参数

虽然与线性回归的更新规则看起来相同,但假设函数h(x)发生了变化,所以是两个完全不同的东西。可使用特征缩放使梯度下降得更快。

高级优化算法

计算$J(\theta)$和导数项,使用更高级的算法来最小化代价函数。

#####Conjugate gradient

共轭梯度法BFGS
L-BFGS

######优点:

不需要手动选择学习率$\alpha$,含有智能内循环(线搜索算法)自动尝试并选择好的$\alpha$;

收敛得远远快于梯度下降;

代价函数:

1
2
3
4
5
function [jVal,gradient]=costFunction(theta)
jVal = (theta(1)-5)^2+(theta(2)-5)^2;
gradient = zeros(2,1);
gradient(1)=2*(theta(1)-5);
gradient(2)=2*(theta(2)-5);

在Octave中执行:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
>> options=optimset('GradObj','on','MaxIter','100');
>> initialTheta=zeros(2,1)
initialTheta =

0
0

>> [optTheta,functionVal,exitFlag]=fminunc(@costFunction2,initialTheta,options) %无约束最小化函数

optTheta =

5.0000
5.0000

functionVal = 1.5777e-30
exitFlag = 1 %exitFlag判断是否已经收敛

“一对多”分类算法(1-n)

变成n个独立的二元分类问题,计算$h_\theta^{(1)}(x)$、$h_\theta^{(2)}(x)$…$h_\theta^{(n)}(x)$,得出最大值,选择n个分类器中可信度最高的

课件链接