机器学习基础:逻辑回归

目录

1. 逻辑回归的应用场景

2. 为什么需要逻辑回归

3. logistic function是怎么来的?

4. 逻辑回归的核心问题

5. 如何求解最优分割线

5.1 迭代过程图解


1. 逻辑回归的应用场景

逻辑回归的任务是分类,它应用于二分类(1/0)任务,并给出相应的概率。举一些具体的应用场景

区分邮件是否是垃圾邮件(1:spam,0:no)

银行判断是否给用户办理信用卡(1:yes,0:no)

但是二分类问题并不是逻辑回归可以解决的极限,二分类问题可以扩展到多分类问题。

既然逻辑回归解决的是分类问题,那么我们为什么不叫它逻辑分类呢?这是因为逻辑回归的思想是使用回归解决分类问题。在下面的学习中我们会具体体现这一点。

2. 为什么需要逻辑回归

当我们去解决二分类问题时,我们可以使用单位阶跃函数:

机器学习基础:逻辑回归_第1张图片

在下图中用红线表示:

机器学习基础:逻辑回归_第2张图片

但是阶跃函数不可求导,然而我们在机器学习中希望函数都是连续可导的,因为我们需要导数的链式法则进行梯度更新,得到局部或者全局最优解。

于是我们放弃对阶跃函数的使用,转而使用 logistic function。即上图用黑线画出的S形曲线(因此也称为 sigmoid function)。logistic function就是连续可导的。logistic function是:

 横坐标是z,纵坐标是y。定义域是负无穷到正无穷,值域为0到1,因为我们把值域限制在了0到1,所以可以对应到概率的0到1。

现在我们再来思考一下:为什么它叫逻辑回归?

1. 逻辑指的是 logistic function

2. 回归来源于“线性回归”的z=XW, 使用线性回归去拟合逼近 一个“界”,使得按照这个界进行数据分类后得到的cost最小。以概率0.5为分界线,将数据分为正例和反例。使得z>0对应于“正例”(趋近于概率为1),z<0对应于“反例”(趋近于概率为0)。因此是使用回归的思想去解决分类问题。

3. logistic function是怎么来的?

我们要学习几率的计算,叫Odds,逻辑回归又叫对数几率回归,其中的几率就是Odds,具体如何理解呢?几率和概率有什么去别呢?对于下图,我们有:

P('red')=\frac{2}{5}        P('blue')=\frac{3}{5}

Odds('red')=\frac{2}{3}< 1       Odds are against ‘red’

Odds(blue')=\frac{3}{2}> 1        Odds are in favor of ‘blue’

一个通用的公式是:Odds=\frac{P(x)}{1-P(x)}

Odds against something:它发生的概率小于它不发生的概率。0< Odds< 1

Odds in favour of something:发生的概率比不发生的概率大。Odds> 1

这时值域是0到正无穷,我们如何能够让它均匀的被0切分,那就是使用log。Odds的log叫做Logit function:

Log(Odds)=Log(\frac{P(x)}{1-P(x)})

机器学习基础:逻辑回归_第3张图片

然后我们使用Odds求出probability,z=Log(\frac{P(x)}{1-P(x)}),逆向和求解得到P(x)=\frac{e^{z}}{1+e^{z}}=\frac{1}{1+e^{-z}}

机器学习基础:逻辑回归_第4张图片

4. 逻辑回归的核心问题

逻辑回归的核心问题就是求解z=W^{T}X

z=W^{T}X=w_{0}+w_{1}x_{1}+w_{2}x_{2}            h_{model}=\frac{1}{1+e^{-z}}

1. 当label=1(即y^{*}=1)时, cost=-log(h)

机器学习基础:逻辑回归_第5张图片

2. 当label=0(即y^{*}=0)时, cost=-log(1-h)

机器学习基础:逻辑回归_第6张图片

1和2,两个cost合在一起考虑,cost =-y^{*}log(h)-(1-y^{*})log(1-h)

这个合起来的公式可以再看一下,当y^{*}为1时,整个式子就等于cost=-log(h),当y^{*}为0时,整个式子就等于cost=-log(1-h)

机器学习基础:逻辑回归_第7张图片

5. 如何求解最优分割线

z=w_{0}+w_{1}x_{1}+w_{2}x_{2}=\begin{bmatrix} 1 & x_{1} & x_{2}\end{bmatrix}\begin{bmatrix} w_{0}\\ w_{1}\\ w_{2} \end{bmatrix}=W^{T}X

机器学习基础:逻辑回归_第8张图片

对于这张图来说,因为有10组数据,所以X的维度为(10,3),Z的维度为(10,1)。而对于公式:

h_{model}=\frac{1}{1+e^{-z}}        h_{model}=\frac{1}{1+e^{-W^{T}X}}

H的维度是(10,1),现在我们对h_{model}进行求导运算:

h_{z}^{'}=\frac{-e^{-z}(-1)}{(1+e^{-z})^{2}}=\frac{1+e^{-z}-1}{(1+e^{-z})^{2}}=\frac{1}{1+e^{-z}}\left ( 1- \frac{1}{1+e^{-z}}\right )=h(1-h)

H^{'}就是将z代换成W^{T}XH^{'}的维度是(10,1) 

现在我们再来看损失函数:

cost=-Y^{*}log(H)-(1-Y^{*})log(1-H),毫无疑问cost的维度也是(10,1)

\frac{d_{cost}}{d_{W}}=\frac{d_{cost}}{d_{H}}*\frac{d_{H}}{d_{Z}}*\frac{d_{Z}}{d_{W}}=X^{T}*\left \{ \left ( -\frac{Y^{*}}{H}-\frac{1-Y^{*}}{1-H}*-1 \right )*H(1-H) \right \}=X^{T}*\left \{ \left (\frac{(-Y^{*}(1-H)+H(1-Y^{*}))}{H(1-H)} \right )*H(1-H) \right \}

=X^{T}\left \{ \left (-Y^{*}+Y^{*}H+H-HY^{*} \right ) \right \}=X^{T} \left (H-Y^{*} \right )维度是(3,1)。

使用梯度下降法求出最优的W

1. 初始化W

2. 迭代更新W:W-=alpha*\frac{d_{cost}}{d_{W}}

3. 迭代到一定次数或到一定阈值

机器学习基础:逻辑回归_第9张图片

5.1 迭代过程图解

我们首先来看初始W的问题:分界线上方h>0.5,从模型得到是正例,但橙色的三角形label=0,故橙色的cost值很大。分界线下方的橙色圆圈亦然。

机器学习基础:逻辑回归_第10张图片

机器学习基础:逻辑回归_第11张图片

在不断减小cost的过程中,我们可以求得最优的分界线。

你可能感兴趣的:(机器学习基础,机器学习)