台大机器学习基石 Lecture 10 - Logistic Regression

本文深入讲解了逻辑回归这一软分类方法,包括其基本原理、错误衡量方法及求解最优解的过程。逻辑回归是一种用于预测事件发生概率的方法,适用于二元分类问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这次Lecture讲的是另一种回归方法——逻辑回归(Logistic Regression),虽然说的是回归问题,但它其实是一个‘软’分类,本次课介绍了逻辑回归的方法、错误衡量方法、求解最优的方法。

Logistic Regression Problem

之前提过的二元分类器如PLA,其目标函数为,f(x)=sign(w^Tx)\in \{-1,+1\},是一个“硬”的分类器。而Logistic Regression的输出是y = +1的概率,因此Logistic Regression的目标函数是{\color{Purple}{f}}(x)={\color{Orange}{P(+1|x)}}\in [0,1],是一个“软”的分类器。

然而,我们在实际的情景中只能得到确定的结果,而并不会得到概率,那么我们就可以将实际的数据视作理想数据加上了噪声的影响。

 接下来的问题是,我们该怎么设计hypothesis与目标函数接近呢?

先抛出结论h(x) = \theta (w^T x) =\frac{1}{1+exp(-w^Tx)},那么为什么是这样呢?

将d个特征加权求和,结合thershold后就是d + 1项,即{\color{Purple}{s}} =\sum_{i={\color{Red}{0}}}^d{\color{Orange}{w_i}}{x_i}=w^Tx,但是{\color{Purple}s}\in [-\infty ,+\infty],要将其转换到[0,1]范围,就使用Logistic Function {\color{blue}\theta }{\color{Blue}{\theta}} ( {\color{Purple}{s}}) = \frac{e^{\color{Purple}{s}}}{1+e^{\color{Purple}{s}}} = \frac{1}{1+e^{-\color{Purple}{s}}},满足平滑、单调、有界。

经过Sigmoid处理后就有h(x) = \theta (w^T x) =\frac{1}{1+exp(-w^Tx)}来近似Target Function{​{f}}(x)={​{P(y|x)}}

Logistic Regression Error

现在我们找到了hypothesis的表达形式,我们该怎么衡量错误得到E_{in}呢?

为什么不能像Linear Regression一样使用平方误差,这篇博文说得很详细,摘引如下:

如果使用平方误差,每个点产生的误差是:

此时cost function,E_{in}(w)=\sum err就是一个关于w的非凸函数(non-convex):

  非凸函数由于存在很多个局部最小点,因此很难去做最优化(解全局最小)。所以Logistic Regression没有使用平方误差来定义error,而是使用极大似然法来估计模型的参数。

先介绍一下“似然性”的概念。如果我们找到了hypothesis很接近target function。也就是说,在所有的Hypothesis Set中找到一个hypothesis与target function最接近,能产生同样的数据集D,包含y输出label,则称这个hypothesis是最大似然likelihood。那么这里采用的办法就是MLE(Maximum Likelihood Estimate)极大似然估计。

那么target function就有如下的转换

那么h产生一个D的likelihood是多少呢?

 如果{\color{Orange}{h}}\approx{\color{Purple}{f}},就有likelihood({\color{Orange}{h}})\approx \text{probability using }{\color{Purple}{f}},并且我们认为在\color{Purple}{f}的作用下,能产生D的可能性是比较大的。

于是有:

\text{if } {\color{Orange}{h}}\approx{\color{Purple}{f}}\text{, then }\; likelihood({\color{Orange}{h}})\approx(\text{probability using }{\color{Purple}{f}})\approx{\color{Purple}{\text{large}}}

 

理想的hypothesis就是能使得似然函数最大的那个{\color{Orange}{h}}

g=\underset{​{\color{Orange}{h}}}{argmax}\;likelihood({\color{Orange}{h}})

由于logistic function的中心对称性:1-h(x)=h(-x),就有

 而P(x_i)都为常值,就有likelihood(logistic\;{\color{Orange}{h}})\propto \prod_{n=1}^{N}{\color{Orange}{h}}(y_nx_n)

而我们要找到一个似然性最大的,并且转化为关于w的式子,而求连乘不易于求解,取自然对数就可以转化为连加——

求解以上最大值等价于求解最小值

\underset{​{\color{Orange}w}}{min}\;{\frac{1}{N}}\sum_{n=1}^{N} - ln\,\theta(y_n{\color{Orange}{w}}^Tx_n)\Rightarrow \underset{​{\color{Orange}{w}}}{min}\;\frac{1}{N}\sum_{n=1}^{N}ln(1+exp(-y_n{\color{Orange}{w}}^Tx_n))

其中,err({\color{Orange}{w}},x_n,y_n)=ln(1+exp(-y_n{\color{Orange}{w^T}}x_n))称为cross-entropy error。

Gradient of Logistic Regression Error

根据上面的推导,我们可以确定cost function E_{in}({\color{Orange}{w}}) = \frac{1}{N} \sum_{n=1}^{N} ln(1+exp(-y_n{\color{Orange}{w}}^Tx_n))

这是连续、可微、二次可微的凸曲线(开口向上),图像如下

由于它是凸函数,如果我们能解出一阶微分(梯度)为0的点,就可以通过找到这个点来找出最小的E_{in}({\color{Orange}{w}}),只要求解\triangledown E_{in}({\color{Orange}{w}})=0

于是就有\triangledown E_{in}(w)=\frac{1}{N}\sum_{n=1}^{N}{\color{Purple}\theta}(-y_nw^Tx_n){\color{Orange}{(-y_nx_n)}},为什么这样不能求解最小呢?这篇redstone的博文作出了解释——

那么该使用何种方法实现E_{in}({\color{Orange}{w}})最小化呢?

Gradient Descent

采用类似PLA中的迭代方法来求解最小值,称为梯度下降法(Gradient Descent)

其中,\color{Red}\eta表示步长(step size),\color{Blue}v是单位向量,表示方向(direction)。

于是在给定{\color{Red}\eta} > 0下,贪心逼近最小值,\underset{\left \| {\color{Blue}v} \right \| = 1}{min} \; E_{in}(w_t + {\color{Red}\eta }{\color{Blue}v})。但是依照这样的式子仍然是非线性的,所以采用泰勒一阶展开(Taylor expansion)得到——

E_{in}(w_t+{\color{Orange}\eta}{\color{Purple}v}) \approx E_{in}(w_t)+{\color{Orange}\eta} {\color{Purple}v}^T \triangledown E_{in}(w_t)

那么我们如何来选择\color{Red}\eta\color{Blue}v呢?

  • \color{Blue}v比较方便,让其成为\triangledown E_{in}(w_t)的反方向单位向量,就能保证E_{in}(w_t+{\color{Orange}\eta}{\color{Purple}v})<E_{in}(w_t)成立,E_{in}({\color{Orange}{w}})是不断减小的。

{\color{blue}{v}}=-\frac{\triangledown E_{in}(w_t)}{||\triangledown E_{in}(w_t)||}

  • \color{Red}\eta要慎重选择,太小的话速度太慢,太大的话又很不稳定。

 一个比较好的方法就是让{\color{Red}\eta} \propto {||\triangledown E_{in}(w_t)||},随着迭代会更改\color{Red}\eta

新的紫色的\color{Purple}\eta就称为混合学习率(fixed learning rate)。

综合起来,Logistic Regression算法就是以下流程——

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值