24秋机器学习笔记-lec2

Last updated on September 27, 2024 8:28 PM

逻辑回归(Logistic Regression)

问题描述

虽然叫“回归”,但是实际是用于处理二分类(binary classification)问题的。记号约定与之前类似:xRdx \in \mathbb{R}^d,但是 y{0,1}y \in \{0,1\}f(x)=wTx+bf(x) = w^Tx + b 不变。

不过,如果我们需要 hard prediction(即 yi=0y_i = 011),怎么从这个 f(x)Rf(x) \in \mathbb{R} 得到?更进一步地,如果我们需要的是一个所谓的 yi=1y_i = 1概率(soft prediction)呢?

或者说,可以这样描述我们的问题:

  1. P(y=1x)[0,1]P(y = 1 \mid x) \in [0,1] 是有界的,但 f(x)Rf(x) \in \mathbb{R} 无界;
  2. 并没有一个针对 P(y=1x)P(y = 1\mid x) 的 ground truth,我们只有硬分类数据 {(xi,yi)}\{(x_i, y_i)\} 而非 {(xi,P(yi=1xi))}\{(x_i, P(y_i = 1|x_i))\}

为了解决第一个问题,我们引入 Sigmoid 函数:

σ(x)=11+exp(x)\sigma(x) = \frac{1}{1 + \exp(-x)}

这个函数的性质特别好,其在 R\mathbb{R} 上单调,并且值域是 (0,1)(0,1),所以我们可以用 σ(f(x))\sigma(f(x)) 来刻画这个概率 P(y=1x)P(y = 1\mid x)。如果想要一个硬分类,那就设一个阈值 kk,对于预测结果 k\ge k 的情况,预测为 11;否则预测为 00。注意到此时 wTx+bw^Tx + b 就是所谓的分隔超平面(seperating hyperplane)

最大似然估计

为了解决第二个问题,我们使用最大似然估计法(Maximum Likelihood Estimation, MLE),其哲学在于找寻使得你的概率模型在观测数据上的似然达到最大化的参数

对于逻辑回归,单个数据点的似然即为

P(y=yix=xi)={yi=1,P(y=1x=xi)=σ(f(xi))yi=0,P(y=0x=xi)=1σ(f(xi))=σ(f(xi))P(y = y_i \mid x = x_i) = \begin{cases} y_i = 1, &P(y = 1\mid x=x_i) = \sigma(f(x_i)) \\ y_i = 0, &P(y = 0\mid x = x_i) = 1 - \sigma(f(x_i)) = \sigma(-f(x_i)) \end{cases}

对于所有的数据点,乘起来即可:

i[n]P(y=yix=xi)=i[n][σ(f(xi))yi(1σ(f(xi)))1yi]\prod_{i \in [n]} P(y = y_i \mid x = x_i) = \prod_{i \in [n]}\left[ \sigma(f(x_i))^{y_i}(1 - \sigma(f(x_i)))^{1 - y_i} \right]

最大化之等价于最大化其对数(对数似然,log-likelihood),即

maxw,bi[n][yilogσ(f(xi))+(1yi)log(1σ(f(xi)))]\max_{w,b} \sum_{i \in [n]} \left[ y_i \log \sigma(f(x_i)) + (1 - y_i)\log(1 - \sigma(f(x_i))) \right]

(考虑到 σ(z)(0,1)\sigma(z) \in (0,1),连乘起来可能出现数值上无穷小,所以不妨取对数)

最大化对数似然等价于

minw,b{i[n][yilogσ(f(xi))+(1yi)log(1σ(f(xi)))]}\min_{w,b} \left\{ -\sum_{i \in [n]} \left[ y_i \log \sigma(f(x_i)) + (1 - y_i)\log(1 - \sigma(f(x_i))) \right] \right\}

括号里的东西称为交叉熵损失(Cross Entropy Loss, CELoss)

有关熵的讨论

熵(entropy)可用于描述“混乱程度”,对于随机变量 YY,其熵被定义为

H(Y)=yP(y)logP(y)=yP(y)log1P(y)\begin{aligned} H(Y) &= -\sum_y P(y) \log P(y) \\ &= \sum_y P(y) \log \frac{1}{P(y)} \end{aligned}

“各个事件的等价程度越高,熵就越高”。

P(yxi)P(y\mid x_i) 的条件熵:

yi^{0,1}P(y=yi^xi)logP(y=yi^xi)\begin{aligned} &-\sum_{\hat{y_i} \in \{0,1\}} P(y = \hat{y_i}\mid x_i) \log P(y = \hat{y_i}\mid x_i) \\ \end{aligned}

交叉熵涉及两个分布 PPQQ。其中 PP 为实际分布,QQ 为模型预测的分布。其度量的是用分布 QQ 编码分布 PP 所需的平均信息量,表达式为

H(P,Q)=xp(x)logq(x)H(P,Q) = -\sum_{x} p(x) \log q(x)

在这个例子中,就是

(yilogσ(f(xi))+(1yi)log(1σ(f(xi))))-(y_i \log \sigma(f(x_i)) + (1 - y_i)\log(1 - \sigma(f(x_i))))

线性可分

跟之前类似地,设 w^=[wb]\hat{w} = \begin{bmatrix} w \\ b \\\end{bmatrix}x^=[x1]Rd+1\hat{x} = \begin{bmatrix} x \\ 1 \\\end{bmatrix} \in \mathbb{R}^{d+1}

L(W^)=i[n](yilog11+ew^Txi^+(1yi)log11+ew^Txi^)=i[n](yilog(1+ew^Txi^)+(yi1)log(1+ew^Txi^))=i[n][yiw^Txi^log(1+ew^Txi^)]\begin{aligned} L(\hat{W}) &= -\sum_{i \in [n]}\left( y_i \log \frac{1}{1+e^{-\hat{w}^T \hat{x_i}}} + (1 - y_i) \log\frac{1}{1 + e^{\hat{w}^T \hat{x_i}}} \right) \\ &= - \sum_{i \in [n]}\left( -y_i \log (1 + e^{-\hat{w}^T \hat{x_i}}) + (y_i - 1) \log(1 + e^{\hat{w}^T \hat{x_i}}) \right) \\ &= -\sum_{i \in [n]} \left[ y_i \hat{w}^T \hat{x_i} - \log(1 + e^{\hat{w}^T \hat{x_i}}) \right] \end{aligned}

这个形式方便我们进行求导:

L(w^)w^=i[n](yixi^xi^ew^Txi^1+ew^Txi^)=i[n]xi^(yiσ(w^Txi^))=i[n]xi^(yiP(y=1xi))\begin{aligned} \frac{\partial L(\hat{w})}{\partial \hat{w}} &= - \sum_{i \in [n]}\left( y_i \hat{x_i} - \frac{\hat{x_i} e^{\hat{w}^T \hat{x_i}}}{1 + e^{\hat{w}^T \hat{x_i}}} \right) \\ &= -\sum_{i \in [n]} \hat{x_i} (y_i - \sigma(\hat{w}^T \hat{x_i}))\\ &= -\sum_{i \in [n]} \hat{x_i} (y_i - P(y = 1\mid x_i)) \end{aligned}

如果我们希望 Lw^=0\displaystyle \frac{\partial L}{\partial \hat{w}} = 0,则说明 i[n]\forall i \in [n]yiσ(w^Txi^)=0y_i - \sigma(\hat{w}^T \hat{x_i}) = 0。但是这种情况通常是不可能出现的,除非训练数据线性可分(linearly separatable)

事实上这种情况通常并不是我们希望的。因为对于分隔超平面 wTx+b=0w^Tx + b = 0,如果同时给 wwbb 乘上系数 k>0k > 0,则超平面在几何上是不变的(而且数据点到超平面的距离也是不变的),但是这会影响模型的预测值——因为 wTx+bw^Tx + b 处在 ee 的指数位上,所以这会使得 σ(wTx+b)0\sigma(w^Tx+b)\to 011,即往使损失函数减小的方向上持续更新,进而导致 kk \to \infty,模型越来越 sharp,造成过拟合(overfitting)。

如何避免这种情况?加一个 L2-Norm 就好了。

番外:GD 的物理含义

w^w^+αi[n][yiP(yi=1xi)]xi^\hat{w} \gets \hat{w} + \alpha \sum_{i \in [n]} [y_i - P(y_i = 1\mid x_i)] \hat{x_i}

使得 w^\hat{w}xi^\hat{x_i} 的方向走

交叉熵损失的凸性

考察 Hessian 矩阵的半正定性。

2L(w^)w^w^TR(d+1)×(d+1)=i[n](11+exp(w^Txi^)xi^)w^T=i[n]1(1+exp(w^Txi^))2exp(w^Txi^)xi^xi^T=i[n]11+exp(w^Txi^)exp(w^Txi^)1+exp(w^Txi^)xi^xi^T=i[n]P(y=1xi)P(y=0xi)xi^xi^T\begin{aligned} \frac{\partial ^2 L(\hat{w})}{\partial \hat{w} \partial \hat{w}^T} &\in \mathbb{R}^{(d+1)\times (d+1)} \\ &= \sum_{i \in [n]} \frac{\partial \left( \frac{1}{1 + \exp(-\hat{w}^T \hat{x_i})} \hat{x_i} \right) }{\partial \hat{w}^T}\\ &= \sum_{i \in [n]} \frac{1}{(1 + \exp(-\hat{w}^T \hat{x_i}))^{2}} \cdot \exp(-\hat{w}^T \hat{x_i})\cdot \hat{x_i} \cdot \hat{x_i}^T\\ &= \sum_{i \in [n]} \frac{1}{1 + \exp(-\hat{w}^T \hat{x_i})} \cdot \frac{\exp(-\hat{w}^T \hat{x_i})}{1 + \exp(-\hat{w}^T \hat{x_i})}\cdot \hat{x_i} \cdot \hat{x_i}^T\\ &= \sum_{i \in [n]} P(y =1\mid x_i)\cdot P(y=0\mid x_i) \cdot \color{red}{\hat{x_i}\cdot \hat{x_i}^T} \end{aligned}

首先注意到 P(y=1xi)P(y=0xi)0P(y = 1\mid x_i)\cdot P(y=0\mid x_i)\ge 0,且 xi^xi^T\sum \hat{x_i} \hat{x_i}^T 为半正定矩阵,所以交叉熵损失函数为凸函数。

为什么 xi^xi^T\sum \hat{x_i} \hat{x_i}^T 为半正定矩阵?

从定义出发就行了:v0\forall v \ne 0,有 vTxi^xi^Tv=xi^Tv20v^T \hat{x_i} \hat{x_i}^T v = \left\| \hat{x_i}^T v \right\|^2 \ge 0

逻辑回归能否使用平方损失函数相关的讨论

minw^i[n](yiw^Txi^)2\min_{\hat{w}} \sum_{i \in [n]}(y_i - \hat{w}^T \hat{x_i})^{2}

答案:不行。分析如下:

  • 分类标签的 yiy_i 没有数值上的意义{0,1}\{0,1\} 换成 {1,1}\{1,-1\} 是一样的。比如说 yi=1y_i = 1f(xi)=0.8f(x_i) = 0.81.21.2,损失函数值都是一样的,失去了概率意义。
  • f(xi)Rf(x_i) \in \mathbb{R},值域与 {0,1}\{0,1\} 是不匹配的。
  • yi=0y_i = 0f(xi)=1f(x_i) = 1 的时候,损失函数值仅仅为 11,反观如果使用 CELoss,σ(f(xi))1\sigma(f(x_i)) \to 1 的时候,造成的损失为 (1yi)logσ(f(xi))+-(1 - y_i) \log \sigma(-f(x_i)) \to +\infty
  • 对离群值不健壮(not robust to outlier):对于一个和分隔超平面很远的 outlier,用平方损失的话会造成把分隔平面往 outlier 方向拉的情况。

其实说了半天,最终道理还是因为分类标签本身是不具有数值意义的,所以不能用平方损失。如果使用平方损失的话会造成很多问题。


24秋机器学习笔记-lec2
https://blog.imyangty.com/note-ml2024fall/lec2/
Author
YangTY
Posted on
September 18, 2024
Licensed under