【台大林轩田《机器学习基石》笔记】Lecture 10——Logistic Regression

文章目录

  • Lecture 10:Logistic Regression
    • Logistic Regression Problem
    • Logistic Regression Error
    • Gradient of Logistic Regression Error
    • Gradient Descent

Lecture 10:Logistic Regression

Logistic Regression Problem

如果我们想从患者的各种身体信息来推断其有多大概率会得心脏病,这时候我们更关心目标函数的值,这是一个分布在 [ 0 , 1 ] [0,1] [0,1]的数,表示的是得心脏病的概率。

这与我们之前所讨论的分类问题不太一样,把它叫做“软性“二分类问题(‘soft’ binary classification)

【台大林轩田《机器学习基石》笔记】Lecture 10——Logistic Regression_第1张图片

对于这个问题,理想的训练数据的标签应该是 [ 0 , 1 ] [0,1] [0,1]之间的具体值,但是实际数据可能样本标签就是0/1(比如医院里只有病人是否得心脏病,而没有概率),我们可以把这样的实际数据看作是在理想数据上面添加噪声的结果。

【台大林轩田《机器学习基石》笔记】Lecture 10——Logistic Regression_第2张图片

假设函数:

我们还是对特征进行加权求和,但不同于hard binary classification的是对结果不再使用sign函数,而是使用logistic function θ ( s ) \theta(s) θ(s)来将输出限定在 [ 0 , 1 ] [0,1] [0,1]

【台大林轩田《机器学习基石》笔记】Lecture 10——Logistic Regression_第3张图片

所以,我们的假设函数为:
h ( x ) = θ ( w T x ) h(x)=\theta(w^Tx) h(x)=θ(wTx)
θ ( s ) \theta(s) θ(s)的具体形式(sigmoid function):

【台大林轩田《机器学习基石》笔记】Lecture 10——Logistic Regression_第4张图片

Logistic Regression Error

三种线性模型的对比:

【台大林轩田《机器学习基石》笔记】Lecture 10——Logistic Regression_第5张图片

logistic regression误差定义:

先考虑数据集: D = ( x 1 , 1 ) , ( x 2 , − 1 ) , … , ( x N , − 1 ) \mathcal D={(x_1,1),(x_2,−1),…,(x_N,−1)} D=(x1,1),(x2,1),,(xN,1)

在这里插入图片描述

那么 f f f产生这个数据集的概率 p r o b a b i l i t y ( f ) probability(f) probability(f)显然是:
p r o b a b i l i t y ( f ) = P ( x 1 ) P ( y 1 ∣ x 1 ) × P ( x 2 ) P ( y 2 ∣ x 2 ) × . . . × P ( x N ) P ( y N ∣ x N ) = P ( x 1 ) f ( x 1 ) × P ( x 2 ) ( 1 − f ( x 2 ) ) × . . . × P ( x N ) ( 1 − f ( x N ) ) \begin{aligned} probability(f)&=P(x_1)P(y_1|x_1)\times P(x_2)P(y_2|x_2)\times...\times P(x_N)P(y_N|x_N)\\\\ &=P(x_1)f(x_1)\times P(x_2)(1-f(x_2))\times ... \times P(x_N)(1-f(x_N)) \end{aligned} probability(f)=P(x1)P(y1x1)×P(x2)P(y2x2)×...×P(xN)P(yNxN)=P(x1)f(x1)×P(x2)(1f(x2))×...×P(xN)(1f(xN))

如果我们在假设集合中找到 h h h,那么 h h h生成数据集的概率为:
l i e k l i h o o d ( h ) = P ( x 1 ) P ( y 1 ∣ x 1 ) × P ( x 2 ) P ( y 2 ∣ x 2 ) × . . . × P ( x N ) P ( y N ∣ x N ) = P ( x 1 ) h ( x 1 ) × P ( x 2 ) ( 1 − h ( x 2 ) ) × . . . × P ( x N ) ( 1 − h ( x N ) ) \begin{aligned} lieklihood(h)=&P(x_1)P(y_1|x_1)\times P(x_2)P(y_2|x_2)\times...\times P(x_N)P(y_N|x_N)\\\\ =&P(x_1)h(x_1)\times P(x_2)(1-h(x_2))\times ... \times P(x_N)(1-h(x_N)) \end{aligned} lieklihood(h)==P(x1)P(y1x1)×P(x2)P(y2x2)×...×P(xN)P(yNxN)P(x1)h(x1)×P(x2)(1h(x2))×...×P(xN)(1h(xN))
这个叫做似然

对于logistic function h ( x ) = θ ( w T x ) h(x)=\theta(w^Tx) h(x)=θ(wTx)来说, h ( − x ) = 1 − h ( x ) h(-x)=1-h(x) h(x)=1h(x),所以:
l i e k l i h o o d ( h ) = P ( x 1 ) P ( y 1 ∣ x 1 ) × P ( x 2 ) P ( y 2 ∣ x 2 ) × . . . × P ( x N ) P ( y N ∣ x N ) = P ( x 1 ) h ( x 1 ) × P ( x 2 ) ( 1 − h ( x 2 ) ) × . . . × P ( x N ) ( 1 − h ( x N ) ) = P ( x 1 ) h ( x 1 ) × P ( x 2 ) h ( − x 2 ) × . . . × P ( x N ) h ( − x N ) = P ( x 1 ) h ( y 1 x 1 ) × P ( x 2 ) h ( y 2 x 2 ) × . . . × P ( x N ) h ( y N x N ) = ∏ n = 1 N h ( y n x n ) \begin{aligned} lieklihood(h)=&P(x_1)P(y_1|x_1)\times P(x_2)P(y_2|x_2)\times...\times P(x_N)P(y_N|x_N)\\\\ =&P(x_1)h(x_1)\times P(x_2)(1-h(x_2))\times ... \times P(x_N)(1-h(x_N))\\\\ =&P(x_1)h(x_1)\times P(x_2)h(-x_2)\times ... \times P(x_N)h(-x_N)\\\\ =&P(x_1)h(y_1x_1)\times P(x_2)h(y_2x_2)\times ... \times P(x_N)h(y_Nx_N)\\\\ =&\prod_{n=1}^{N}h(y_nx_n) \end{aligned} lieklihood(h)=====P(x1)P(y1x1)×P(x2)P(y2x2)×...×P(xN)P(yNxN)P(x1)h(x1)×P(x2)(1h(x2))×...×P(xN)(1h(xN))P(x1)h(x1)×P(x2)h(x2)×...×P(xN)h(xN)P(x1)h(y1x1)×P(x2)h(y2x2)×...×P(xN)h(yNxN)n=1Nh(ynxn)
如果 h ≈ f h\approx f hf,那么 l i k e l i h o o d ( h ) ≈ p r o b a b i l i t y ( f ) likelihood(h)\approx probability(f) likelihood(h)probability(f)

因为 f f f是我们的理想函数,所以 f f f真的能够产生这个数据集的概率一般是非常大的,所以我们为了找到与 f f f最相似的假设,那么我们的目标就是找到似然函数最大的假设 g g g
KaTeX parse error: No such environment: equation at position 8: \begin{̲e̲q̲u̲a̲t̲i̲o̲n̲}̲ g = \mathop{\a…
l i k e l i h o o d ( h ) likelihood(h) likelihood(h)转换为 w w w为参数的形式,同时使用ln操作将连乘转化为累加,然后将最大化问题转化为最小化问题,具体过程如下:
max ⁡ h l i k e l i h o o d ( h ) ∝ ∏ n = 1 N h ( y n x n ) ⇒ l i k e l i h o o d ( w ) ∝ ∏ n = 1 N θ ( y n w T x n ) \begin{aligned} \mathop{\max}\limits_{h} likelihood(h)\propto \prod_{n=1}^{N}h(y_nx_n) \Rightarrow likelihood(w)\propto \prod_{n=1}^{N}\theta(y_nw^Tx_n)\\\\ \end{aligned} hmaxlikelihood(h)n=1Nh(ynxn)likelihood(w)n=1Nθ(ynwTxn)

max ⁡ w l i k e l i h o o d ( w ) ⇒ m a x w ln ⁡ l i k e l i h o o d ( w ) ⇒ m a x w ∑ n = 1 N ln ⁡ θ ( y n w T x n ) ⇒ m i n w 1 N ∑ n = 1 N − ln ⁡ θ ( y n w T x n ) ⇒ m i n w 1 N ∑ n = 1 N − ln ⁡ ( 1 1 + e x p ( − y n w T x n ) ) ⇒ m i n w 1 N ∑ n = 1 N ln ⁡ ( 1 + e x p ( − y n w T x n ) ) ⇒ m i n w 1 N ∑ n = 1 N e r r ( w , x n , y n ) ⇒ m i n w E i n ( w ) \begin{aligned} \mathop{\max}\limits_{w} likelihood(w) &\Rightarrow \mathop{max}\limits_{w} \ln likelihood(w)\\\\ &\Rightarrow \mathop{max}\limits_{w} \sum_{n=1}^{N}\ln\theta(y_nw^Tx_n)\\\\ &\Rightarrow \mathop{min}\limits_{w}\frac{1}{N}\sum_{n=1}^{N}-\ln\theta(y_nw^Tx_n)\\\\ &\Rightarrow \mathop{min}\limits_{w}\frac{1}{N}\sum_{n=1}^{N}-\ln(\frac{1}{1+exp(-y_nw^Tx_n)})\\\\ &\Rightarrow \mathop{min}\limits_{w}\frac{1}{N}\sum_{n=1}^{N}\ln(1+exp(-y_nw^Tx_n))\\\\ &\Rightarrow \mathop{min}\limits_{w}\frac{1}{N}\sum_{n=1}^{N}err(w,x_n,y_n)\\\\ &\Rightarrow \mathop{min}\limits_{w}E_{in}(w)\\\\ \end{aligned} wmaxlikelihood(w)wmaxlnlikelihood(w)wmaxn=1Nlnθ(ynwTxn)wminN1n=1Nlnθ(ynwTxn)wminN1n=1Nln(1+exp(ynwTxn)1)wminN1n=1Nln(1+exp(ynwTxn))wminN1n=1Nerr(w,xn,yn)wminEin(w)

所以我们就得到了Logistic Regression的Error Function:
e r r ( w , x , y ) = ln ⁡ ( 1 + e x p ( − y w x ) ) err(w,x,y)=\ln(1+exp(-ywx)) err(w,x,y)=ln(1+exp(ywx))
称为cross-entropy error(交叉熵误差)

Gradient of Logistic Regression Error

接下来的问题就是如何找到合适的 w w w使得 E i n E_{in} Ein最小。

E i n E_{in} Ein仍然是连续的(continuous), 可微的(differentiable),二次可微的(twice-differentiable),凸的(convex)函数。那么只要梯计算度为零时的 w w w,就可以获得最优的hypothesis。

计算梯度( w w w的每个元素):
E i n ( w ) = 1 N ∑ n = 1 N ln ⁡ ( 1 + e x p ( − y n w T x n ) ) A = − y n w T x n B = 1 + e x p ( A ) E_{in}(w)=\frac{1}{N}\sum_{n=1}^{N}\ln(1+exp(-y_nw^Tx_n))\\\\ A=-y_nw^Tx_n\\\\ B=1+exp(A) Ein(w)=N1n=1Nln(1+exp(ynwTxn))A=ynwTxnB=1+exp(A)

∂ E i n ( w ) ∂ w i = 1 N ∑ n = 1 N ( ∂ ln ⁡ B ∂ B ) ( ∂ B ∂ A ) ( ∂ A ∂ w i ) = 1 N ∑ n = 1 N ( 1 B ) ( e x p ( A ) ) ( − y n x n , i ) = 1 N ∑ n = 1 N ( e x p ( A ) 1 + e x p ( A ) ) ( − y n x n , i ) = 1 N ∑ n = 1 N θ ( A ) ( − y n x n , i ) \begin{aligned} \frac{\partial E_{in}(w)}{\partial w_i}&=\frac{1}{N}\sum_{n=1}^{N}(\frac{\partial \ln B}{\partial B})(\frac{\partial B}{\partial A})(\frac{\partial A}{\partial w_i})\\\\ &=\frac{1}{N}\sum_{n=1}^{N}(\frac{1}{B})(exp(A))(-y_nx_{n,i})\\\\ &=\frac{1}{N}\sum_{n=1}^{N}(\frac{exp(A)}{1+exp(A)})(-y_nx_{n,i})\\\\ &=\frac{1}{N}\sum_{n=1}^{N}\theta(A)(-y_nx_{n,i})\\\\ \end{aligned} wiEin(w)=N1n=1N(BlnB)(AB)(wiA)=N1n=1N(B1)(exp(A))(ynxn,i)=N1n=1N(1+exp(A)exp(A))(ynxn,i)=N1n=1Nθ(A)(ynxn,i)

进一步求得(用向量表达):
∇ E i n ( w ) = 1 N ∑ n = 1 N θ ( − y n w T x n ) ( − y n x n ) \nabla E_{in}(w)=\frac{1}{N}\sum_{n=1}^{N}\theta(-y_nw^Tx_n)(-y_nx_{n}) Ein(w)=N1n=1Nθ(ynwTxn)(ynxn)
这个式子可以看成是 θ \theta θ ( − y n x n ) (-y_nx_n) (ynxn)的线性加权,要使线性加权和为0:

  • 所有权重都为0,根据 θ ( s ) \theta(s) θ(s)的定义,这时的 y n w T x n ≫ 0 y_nw^Tx_n \gg 0 ynwTxn0,也就是说对于所有样本点, y n y_n yn w T x n w^Tx_n wTxn是同号的,这意味着数据集全部是线性可分的
  • 非线性可分,只能通过加权和为0求解

每个数据集都是线性可分的不太现实,所以只能是在第二种情况下求解,这种情况没有closed-form解,与Linear Regression不同,只能用迭代方法求解。

【台大林轩田《机器学习基石》笔记】Lecture 10——Logistic Regression_第6张图片

之前介绍的PLA算法是一步一步修正迭代进行的,每次对错误点进行修正,不断更新w值。PLA的迭代优化过程表示如下:

【台大林轩田《机器学习基石》笔记】Lecture 10——Logistic Regression_第7张图片

【台大林轩田《机器学习基石》笔记】Lecture 10——Logistic Regression_第8张图片

w w w的更新包括两部分内容, η \eta η代表了步长, v v v代表了方向向量

Gradient Descent

假设 v v v是一个正规化后的单位向量, η \eta η是一个正数

E i n ( w ) E_{in}(w) Ein(w)看作是一个山谷,最小化 E i n E_{in} Ein的过程就是下山的过程,这个过程受两个因素影响:

η \eta η v v v

【台大林轩田《机器学习基石》笔记】Lecture 10——Logistic Regression_第9张图片

假设每次下山我们只前进一小步( η \eta η很小,线性近似),那么根据泰勒展开,得到:
E i n ( w t + η v ) ≈ E i n ( w t ) + η v T E i n ( w t ) E_{in}(w_t+\eta v)\approx E_{in}(w_t)+\eta v^T E_{in}(w_t) Ein(wt+ηv)Ein(wt)+ηvTEin(wt)
所以我们的问题变成了:

【台大林轩田《机器学习基石》笔记】Lecture 10——Logistic Regression_第10张图片

我们只需要确定 v v v,也就是”向山谷下降“的方向,第一部分的 E i n E_{in} Ein看成是个常数, η \eta η先不考虑,所以:

【台大林轩田《机器学习基石》笔记】Lecture 10——Logistic Regression_第11张图片

如果 v v v与$\nabla 方 向 相 反 的 话 , 其 乘 积 最 小 , 所 以 方向相反的话,其乘积最小,所以 v 是 个 与 是个与 \nabla$方向相反的单位向量:
v = − ∇ E i n ( w t ) ∣ ∣ ∇ E i n ( w t ) ∣ ∣ v=-\frac{\nabla E_{in}(w_t)}{||\nabla E_{in}(w_t)||} v=Ein(wt)Ein(wt)
那么迭代更新的公式可以写成:
w t + 1 ← w t − η ∇ E i n ( w t ) ∣ ∣ ∇ E i n ( w t ) ∣ ∣ w_{t+1}\leftarrow w_t - \eta \frac{\nabla E_{in}(w_t)}{||\nabla E_{in}(w_t)||} wt+1wtηEin(wt)Ein(wt)
这个方法叫做梯度下降,是一个非常简单且常用的方法

接下来看一下 η \eta η的选择,如果太小下降的速度很慢,如果太大造成下降不稳定,甚至可能出现上升的情况。

一种方法是当梯度较大时选择较大的 η \eta η,梯度较小时选择较小的 η \eta η,也就是二者是正相关的关系

【台大林轩田《机器学习基石》笔记】Lecture 10——Logistic Regression_第12张图片

那不妨假设原来的 η \eta η(红色)和梯度大小是有 η \eta η(紫色)的比例关系,那么梯度下降可以用更简单的式子表示:

【台大林轩田《机器学习基石》笔记】Lecture 10——Logistic Regression_第13张图片

把之前讲过的整合起来,Logistic Regression算法的过程:

  1. 初始化 w 0 w_0 w0
  2. 计算梯度
  3. 梯度下降更新 w w w
  4. 直到梯度为0或者达到限制的迭代次数停止,否则继续迭代
  5. 最后的 w t + 1 w_{t+1} wt+1作为结果

你可能感兴趣的:(机器学习,机器学习,算法,logistic,regression,逻辑回归)