第五章 逻辑回归
一 逻辑回归定义
logistic 二分类 softmax 多分类 策略 对数似然函数 算法 梯度下降或拟牛顿法 假设 伯奴利分布 逻辑回归(Logistic Regression)是一种用于解决二分类(0 or 1)问题的机器学习方法,用于估计某种事物的可能性
**Logistic 回归的本质是:**假设数据服从这个分布,然后使用极大似然估计做参数的估计
逻辑回归与线性回归关系:
逻辑回归(Logistic Regression)与线性回归(Linear Regression)都是一种广义线性模型(generalized linear model)。逻辑回归假设因变量 y 服从伯努利分布,而线性回归假设因变量 y 服从高斯分布。 因此与线性回归有很多相同之处,去除Sigmoid映射函数的话,逻辑回归算法就是一个线性回归。可以说,逻辑回归是以线性回归为理论支持的,但是逻辑回归通过Sigmoid函数引入了非线性因素,因此可以轻松处理0/1分类问题
二 假设函数(Hypothesis function)
2.1 Sigmoid函数
- 首先我们要先介绍一下Sigmoid函数,也称为逻辑函数(Logistic function)
分布函数和密度函数:
F ( x ) = P ( X ⩽ x ) = 1 1 + exp ( − ( x − μ ) / γ ) F(x)=P(X\leqslant x)=\frac{1}{1+\exp(-(x-\mu)/\gamma)} F(x)=P(X⩽x)=1+exp(−(x−μ)/γ)1f ( x ) = F ′ ( x ) = e − ( x − μ ) / γ γ ( 1 + e − ( x − μ ) / γ ) 2 f(x)=F'(x)=\frac{\mathrm{e}^{-(x-\mu)/\gamma}}{\gamma(1+\mathrm{e}^{-(x-\mu)/\gamma)^2}} f(x)=F′(x)=γ(1+e−(x−μ)/γ)2e−(x−μ)/γ
式中, μ \mu μ为位置参数, γ \gamma γ>0为形状参数
关于逻辑斯谛, 更常见的一种表达是Logistic function
σ ( z ) = 1 1 + exp ( − z ) \sigma(z)=\frac{1}{1+\exp(-z)} σ(z)=1+exp(−z)1这个函数把实数域映射到(0, 1)区间,这个范围正好是概率的范围, 而且可导,对于0输入, 得到的是0.5,可以用来表示等可能性
其函数曲线如下:
从上图可以看到sigmoid函数是一个s形的曲线,它的取值在[0, 1]之间,在远离0的地方函数的值会很快接近0或者1。它的这个特性对于解决二分类问题十分重要
2.2 假设函数
逻辑回归的假设函数形式如下:
h θ ( x ) = g ( θ T x ) , g ( z ) = 1 1 + e − z h_{\theta}(x)=g(\theta^Tx),g(z)=\frac{1}{1+e^{-z}} hθ(x)=g(θTx),g(z)=1+e−z1对于g(z):
g ′ ( z ) = ( 1 1 + e − z ) ′ = e − z ( 1 + e − z ) 2 = 1 1 + e − z ⋅ e − z 1 + e − z = 1 1 + e − z ⋅ ( 1 − 1 1 + e − z ) = g ( z ) ⋅ ( 1 − g ( z ) ) \begin{aligned} g'(z)& =\left(\frac{1}{1+e^{-z}}\right)^{\prime}=\frac{e^{-z}}{\left(1+e^{-z}\right)^{2}} \\ &=\frac{1}{1+e^{-z}}\cdot\frac{e^{-z}}{1+e^{-z}}=\frac{1}{1+e^{-z}}\cdot\left(1-\frac{1}{1+e^{-z}}\right) \\ &=g(z)\cdot (1-g(z)) \end{aligned} g′(z)=(1+e−z1)′=(1+e−z)2e−z=1+e−z1⋅1+e−ze−z=1+e−z1⋅(1−1+e−z1)=g(z)⋅(1−g(z))因此:
h θ ( x ) = 1 1 + e − θ T x h_{\theta}(x)=\frac{1}{1+e^{-\theta T x}} hθ(x)=1+e−θTx1
其中 x x x是我们的输入, θ \theta θ为我们要求取的参数
三 对数几率函数
y = 1 1 + e − ( w T x + b ) y=\frac1{1+e^{-(w^Tx+b)}} y=1+e−(wTx+b)1
l n y 1 − y = w T x + b ln\frac{y}{1-y}=w^Tx+b ln1−yy=wTx+b
我们将 y 视为 x 为正例的概率,则 1-y 为 x 为其反例的概率。两者的比值称为几率(odds),指该事件发生与不发生的概率比值,若事件发生的概率为 p。则对数几率:
l n ( o d d s ) = l n y 1 − y ln(odds)=ln\frac{y}{1-y} ln(odds)=ln1−yy关于几率的由来及几个问题:
数学之美中有这样一个公式
f ( z ) = e z e z + 1 = 1 1 + e − z f(z)=\color{red}\frac{e^z}{e^z+1}\color{black}=\frac{1}{1+e^{-z}} f(z)=ez+1ez=1+e−z1
然后几率和概率之间的关系有这样一种表达
o = p 1 − p p = o 1 + o o=\frac{p}{1-p} \nonumber\\ \color{red}p=\frac{o}{1+o} o=1−ppp=1+oo
看上面红色部分, 逻辑斯谛分布对应了一种概率, 几率为指数形式 e z e^z ez, z z z 为对数几率 l o g i t logit logit.l o g i t ( p ) = log ( o ) = log p 1 − p logit(p)=\log(o)=\log\frac{p}{1-p} logit(p)=log(o)=log1−pp
上面是对数几率的定义, 这里对应了事件, 要么发生, 要么不发生。所以逻辑斯谛回归模型就表示成
log P ( Y = 1 ∣ x ) 1 − P ( Y = 1 ∣ x ) = log P ( Y = 1 ∣ x ) P ( Y = 0 ∣ x ) = w ⋅ x \log\frac{P(Y=1|x)}{1-P(Y=1|x)}=\color{red}\log\frac{P(Y=1|x)}{P(Y=0|x)}\color{black}=w\cdot x log1−P(Y=1∣x)P(Y=1∣x)=logP(Y=0∣x)P(Y=1∣x)=w⋅x
上面红色部分留一下,后面推广到多类时候用到将 y 视为类后验概率估计,重写公式有:
w T x + b = l n P ( Y = 1 ∣ x ) 1 − P ( Y = 1 ∣ x ) P ( Y = 1 ∣ x ) = 1 1 + e − ( w T x + b ) \begin{gathered} w^{T}x+b=l n{\frac{P(Y=1|x)}{1-P(Y=1|x)}} \\ P(Y=1|x)={\frac{1}{1+e^{-(w^{T}x+b)}}} \end{gathered} wTx+b=ln1−P(Y=1∣x)P(Y=1∣x)P(Y=1∣x)=1+e−(wTx+b)1也就是说,输出 Y=1 的对数几率是由输入 x 的线性函数表示的模型,这就是逻辑回归模型。当 w T x + b w^{T}x+b wTx+b的值越接近正无穷, P ( Y = 1 ∣ x ) P(Y=1|x) P(Y=1∣x)概率值也就越接近 1。因此逻辑回归的思路是,先拟合决策边界(不局限于线性,还可以是多项式),再建立这个边界与分类的概率联系,从而得到了二分类情况下的概率
对数几率的意义在哪
- 直接对分类的概率建模,无需实现假设数据分布,从而避免了假设分布不准确带来的问题(区别于生成式模型)
- 不仅可预测出类别,还能得到该预测的概率,这对一些利用概率辅助决策的任务很有用
- 对数几率函数是任意阶可导的凸函数,有许多数值优化算法都可以求出最优解
四 决策函数
一个机器学习的模型,实际上是把决策函数限定在某一组条件下,这组限定条件就决定了模型的假设空间。当然,我们还希望这组限定条件简单而合理
而逻辑回归模型所做的假设是:
p = h θ ( x ) = g ( θ τ x ) = 1 1 + e − θ τ x p=h_\theta\big(x\big)=g\big(\theta^\tau x\big)=\frac{1}{1+e^{-\theta^\tau x}} p=hθ(x)=g(θτx)=1+e−θτx1
这个函数的意思就是在给定 x x x和 θ \theta θ的条件下y=1的概率
这里 g(ℎ) 就是我们上面提到的sigmoid函数,与之相对应的决策函数为:
y ∗ = 1 , i f P ( y = 1 ∣ x ) > 0.5 y^{*}=1,i f P(y=1|x)>0.5 y∗=1,ifP(y=1∣x)>0.5
选择0.5作为阈值是一个一般的做法,实际应用时特定的情况可以选择不同阈值,如果对正例的判别准确性要求高,可以选择阈值大一些,对正例的召回要求高,则可以选择阈值小一些
五 决策边界(Decision Boundary)
-
决策边界,也称为决策面,是用于在N维空间,将不同类别样本分开的平面或曲面。
注意:决策边界是假设函数的属性,由参数决定,而不是由数据集的特征决定。
5.1 线性决策边界
这里决策边界为: − 3 + x 1 + x 2 = 0 -3+x_1+x_2=0 −3+x1+x2=0
5.2 非线性决策边界
这里决策边界为: − 1 + x 1 2 + x 2 2 = 0 -1 + x_1^2 + x_2^2 = 0 −1+x12+x22=0
5.3 什么是决策边界
决策边界其实就是一个方程,在逻辑回归中,决策边界由 θ T x = 0 \theta^T x=0 θTx=0定义
六 假设函数和决策边界函数的区别与联系
- 决策边界是假设函数的属性,由假设函数的参数( θ \theta θ)决定
- 在逻辑回归中,假设函数 ℎ=g(z) 用于计算样本属于某类别的可能性
- 决策函数 y ∗ = 1 , i f P ( y = 1 ∣ x ) > 0.5 y^*=1,if P(y=1|x)>0.5 y∗=1,ifP(y=1∣x)>0.5用于计算(给出)样本的类别
- 决策边界 θ T x = 0 \theta^T x=0 θTx=0是一个方程,用于标识出分类函数(模型)的分类边界
七 目标函数
7.1 代价函数(Cost Function)
在逻辑回归中,最常用的是代价函数是交叉熵(Cross Entropy),交叉熵是一个常见的代价函数,在神经网络中也会用到
损失函数也作为一种衡量机器学习模型性能的指标,被广泛应用于分类、回归等各种机器学习模型的训练中
7.2 假设
P ( y = 1 ∣ x ; θ ) = h θ ( x ) P ( y = 0 ∣ x ; θ ) = 1 − h θ ( x ) P ( y ∣ x ; θ ) = ( h θ ( x ) ) y ( 1 − h θ ( x ) ) ( 1 − y ) \begin{aligned} &P\big(y=1|x;\theta\big)=h_\theta\big(x\big) \\ &P\big(y=0\mid x;\theta\big)=1-h_\theta\big(x\big) \\ &P\big(y\mid x;\theta\big)=\big(h_{\theta}\big(x\big)\big)^{y}\big(1-h_{\theta}\big(x\big)\big)^{(1-y)} \end{aligned} P(y=1∣x;θ)=hθ(x)P(y=0∣x;θ)=1−hθ(x)P(y∣x;θ)=(hθ(x))y(1−hθ(x))(1−y)
服从伯努利分布
7.3 似然函数
L ( θ ) = p ( y ⃗ ∣ X ; θ ) = ∏ i = 1 m p ( y ( i ) ∣ x ( i ) ; θ ) = ∏ i = 1 m ( h θ ( x ( i ) ) ) y ( i ) ( 1 − h θ ( x ( i ) ) ) ( 1 − y ( i ) ) \begin{gathered} L\bigl(\theta\bigr)=p\bigl(\vec{y}|X;\theta\bigr)=\prod_{i=1}^{m}p\bigl(y^{(i)}|x^{(i)};\theta\bigr) \\ =\prod\limits_{i=1}^m\left(h_\theta\left(x^{(i)}\right)\right)^{y^{(i)}}\left(1-h_\theta\left(x^{(i)}\right)\right)^{\left(1-y^{(i)}\right)} \end{gathered} L(θ)=p(y∣X;θ)=i=1∏mp(y(i)∣x(i);θ)=i=1∏m(hθ(x(i)))y(i)(1−hθ(x(i)))(1−y(i))
7.4 对数似然函数
ℓ ( θ ) = ln L ( θ ) = ∑ i = 1 m ( y ( i ) ln h θ ( x ( i ) ) + ( 1 − y ( i ) ) ln ( 1 − h θ ( x ( i ) ) ) \ell\big(\theta\big)=\ln L\big(\theta\big)=\sum_{i=1}^m\big(y^{(i)}\ln h_\theta\big(x^{(i)}\big)+\big(1-y^{(i)}\big)\ln\big(1-h_\theta\big(x^{(i)}\big)\big) ℓ(θ)=lnL(θ)=i=1∑m(y(i)lnhθ(x(i))+(1−y(i))ln(1−hθ(x(i)))
总的来说,对数似然函数加负号用作损失函数的情况是很常见的,这样做的目的是将最大化似然函数的问题转化为最小化损失函数的问题
八 梯度
∂ ℓ ( θ ) ∂ θ j = ∑ i = 1 m ( y ( i ) h θ ( x ( i ) ) − 1 − y ( i ) 1 − h θ ( x ( i ) ) ) ⋅ ∂ h θ ( x ( i ) ) ∂ θ j = ∑ i = 1 m ( y ( i ) g ( θ T x ( i ) ) − 1 − y ( i ) 1 − g ( θ T x ( i ) ) ) ⋅ ∂ g ( θ T x ( i ) ) ∂ θ j = ∑ i = 1 m [ y ( i ) g ( θ T x ( i ) ) − 1 − y ( i ) 1 − g ( θ T x ( i ) ) ) ⋅ g ( θ T x ( i ) ) ( 1 − g ( θ T x ( i ) ) ) ⋅ ∂ θ T x ( i ) ∂ θ j = ∑ i = 1 n ( y ( i ) ( 1 − g ( θ r x ( i ) ) ) − ( 1 − y ( i ) ) g ( θ r x ( i ) ) ) ⋅ x j ( i ) = ∑ i = 1 n ( y ( i ) − g ( θ r x ( i ) ) ) ⋅ x j ( i ) \begin{aligned} \frac{\partial\ell\big(\theta\big)}{\partial\theta_j}&=\sum_{i=1}^{m}\left(\frac{y^{(i)}}{h_\theta\big(x^{(i)}\big)}-\frac{1-y^{(i)}}{1-h_\theta\big(x^{(i)}\big)}\right)\cdot\frac{\partial h_\theta\big(x^{(i)}\big)}{\partial\theta_j} \\ &=\sum_{i=1}^{m}\left(\frac{y^{(i)}}{g\left(\theta^{T}x^{(i)}\right)}-\frac{1-y^{(i)}}{1-g\left(\theta^{T}x^{(i)}\right)}\right)\cdot\frac{\partial g\left(\theta^{T}x^{(i)}\right)}{\partial\theta_{j}} \\ &=\sum_{i=1}^m\bigg[\frac{y^{(i)}}{\boldsymbol{g}\Big(\theta^{T}x^{(i)}\Big)}-\frac{1-y^{(i)}}{1-\boldsymbol{g}\Big(\theta^{T}x^{(i)}\Big)}\bigg)\cdot\text{g}\big(\theta^{T}x^{(i)}\big)\big(1-g\big(\theta^{T}x^{(i)}\big)\big)\cdot\frac{\partial\theta^{T}x^{(i)}}{\partial\theta_{j}} \\ &=\sum_{i=1}^{n}\left(y^{(i)}\left(1-g\left(\theta^{r}x^{(i)}\right)\right)-\left(1-y^{(i)}\right)g\left(\theta^{r}x^{(i)}\right)\right)\cdot x_{j}^{(i)}\\ &=\sum_{i=1}^{n}\left(y^{(i)}-g\left(\theta^{r}x^{(i)}\right)\right)\cdot x_{j}^{(i)} \end{aligned} ∂θj∂ℓ(θ)=i=1∑m(hθ(x(i))y(i)−1−hθ(x(i))1−y(i))⋅∂θj∂hθ(x(i))=i=1∑m(g(θTx(i))y(i)−1−g(θTx(i))1−y(i))⋅∂θj∂g(θTx(i))=i=1∑m[g(θTx(i))y(i)−1−g(θTx(i))1−y(i))⋅g(θTx(i))(1−g(θTx(i)))⋅∂θj∂θTx(i)=i=1∑n(y(i)(1−g(θrx(i)))−(1−y(i))g(θrx(i)))⋅xj(i)=i=1∑n(y(i)−g(θrx(i)))⋅xj(i)
- 二分类问题(使用 sigmoid 激活函数)
在二分类问题中,我们假设模型使用 sigmoid 激活函数,即
h(x) = σ(z)
,其中z = θ^T * x
是模型的线性输出,σ(z) = 1 / (1 + exp(-z))
是 sigmoid 函数对于 sigmoid 函数,其导数可以表示为σ'(z) = σ(z) * (1 - σ(z))
。将这些信息代入偏导数的公式中,可以得到:
dJ(θ)/dθ = -1/m * ∑[ (y/h(x) - (1-y)/(1-h(x))) * h(x) * (1 - h(x)) * x ]
化简后可得:
dJ(θ)/dθ = 1/m * ∑[ (h(x) - y) * x ]
其中,
h(x)
是模型的预测结果,y
是实际结果(0或1),x
是输入特征
- 多分类问题(使用 softmax 激活函数)
在多分类问题中,我们假设模型使用 softmax 激活函数,即
h_k(x) = softmax(z)_k
,其中z = θ^T * x
是模型的线性输出,softmax(z)
是 softmax 函数对于 softmax 函数,其导数可以表示为softmax'(z)_k = softmax(z)_k * (1 - softmax(z)_k)
将这些信息代入偏导数的公式中,可以得到:
dJ(θ)/dθ = 1/m * ∑[ (h_k(x) - y_k) * x ]
其中,
h_k(x)
是模型的预测结果,y_k
是实际结果的第k
个类别的概率(0或1),x
是输入特征
有了导数和学习率就可以使用梯度下降算法(Gradient Descent Algorithm)更新参数了
θ j = θ j − α ( ∂ ∂ θ j ) J ( θ ) = θ j − α ( 1 m ) ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) x j ( i ) \theta_{j}=\theta_{j}-\alpha(\frac{\partial}{\partial\theta_{j}})J(\theta)=\theta_{j}-\alpha(\frac{1}{m})\sum_{i=1}^{m}(h_{\theta}(x^{(i)})-y^{(i)})x_{j}^{(i)} θj=θj−α(∂θj∂)J(θ)=θj−α(m1)i=1∑m(hθ(x(i))−y(i))xj(i)
九 Softmax回归
9.1 什么是 softmax 回归?
softmax 回归(softmax regression)其实是 logistic 回归的一般形式,logistic 回归用于二分类,而 softmax 回归用于多分类
对于输入数据 { ( x 1 , y 1 ) , ( x 2 , y 2 ) , … , ( x m , y m ) } \{(x_{1},y_{1}),(x_{2},y_{2}),\ldots,(x_{m},y_{m})\} {(x1,y1),(x2,y2),…,(xm,ym)}有k个类别,即 y i ∈ { 1 , 2 , … , k } . y_{i}\in\{1,2,\ldots,k\}. yi∈{1,2,…,k}.,那么 softmax 回归主要估算输入数据 x i x_i xi归属于每一类的概率,即:
h θ ( x i ) = [ p ( y i = 1 ∣ x i ; θ ) p ( y i = 2 ∣ x i ; θ ) ⋮ p ( y i = k ∣ x i ; θ ) ] = 1 ∑ j = 1 k e θ j T x i [ e θ i T x i e θ i T x i ⋮ e θ i T x i ] h_{\theta}\left(x_{i}\right)=\begin{bmatrix}p\left(y_{i}=1|x_{i};\theta\right)\\ p\left(y_{i}=2|x_{i};\theta\right)\\ \vdots\\ p\left(y_{i}=k|x_{i};\theta\right)\end{bmatrix}=\frac{1}{\sum_{j=1}^{k}e^{\theta_{j}^{T}x_{i}}}\begin{bmatrix}e^{\theta_{i}^{T}x_{i}}\\ e^{\theta_{i}^{T}x_{i}}\\ \vdots\\ e^{\theta_{i}^{T}x_{i}}\end{bmatrix} hθ(xi)= p(yi=1∣xi;θ)p(yi=2∣xi;θ)⋮p(yi=k∣xi;θ) =∑j=1keθjTxi1 eθiTxieθiTxi⋮eθiTxi
其中, θ 1 , θ 2 , … , θ k ∈ θ i \theta_{1},\theta_{2},\ldots,\theta_{k}\in\theta_{i} θ1,θ2,…,θk∈θi是模型的参数,乘以 1 ∑ j = 1 k e θ j T x i ; \frac{1}{\sum_{j=1}^{k}e^{\theta_{j}^{T}x_{i}}}; ∑j=1keθjTxi1;是为了让概率位于[0,1]并且概率之和为 1,softmax 回归将输入数据 x x x归属于类别 j j j的概率为:
p ( y i = j ∣ x i ; θ ) = e θ j T x i ∑ l = 1 k e θ l T x i p\left(y_{i}=j|x_{i};\theta\right)={\frac{e^{\theta_{j}^{T}x_{i}}}{\sum_{l=1}^{k}e^{\theta_{l}^{T}x_{i}}}} p(yi=j∣xi;θ)=∑l=1keθlTxieθjTxi
9.2 推到及原理
计算 K − 1 K-1 K−1种可能的取值发生的概率相对取值 K K K发生的概率的比值, 假设其取对数的结果是 x x x的线性模型, 有
ln P ( Y = 1 ∣ x ) P ( Y = K ∣ x ) = w 1 ⋅ x ln P ( Y = 2 ∣ x ) P ( Y = K ∣ x ) = w 2 ⋅ x ⋯ ln P ( Y = K − 1 ∣ x ) P ( Y = K ∣ x ) = w K − 1 ⋅ x \begin{aligned} \ln\frac{P(Y=1|x)}{P(Y=K|x)}&=w_1\cdot x\\ \ln\frac{P(Y=2|x)}{P(Y=K|x)}&=w_2\cdot x\\ \cdots\\ \ln\frac{P(Y=K-1|x)}{P(Y=K|x)}&=w_{K-1}\cdot x\\ \end{aligned} lnP(Y=K∣x)P(Y=1∣x)lnP(Y=K∣x)P(Y=2∣x)⋯lnP(Y=K∣x)P(Y=K−1∣x)=w1⋅x=w2⋅x=wK−1⋅x
得到取值 1 , 2 , … , K − 1 {1,2,\dots,K-1} 1,2,…,K−1的概率表示
P ( Y = 1 ∣ x ) = P ( Y = K ∣ x ) exp ( w 1 ⋅ x ) P ( Y = 2 ∣ x ) = P ( Y = K ∣ x ) exp ( w 2 ⋅ x ) ⋯ P ( Y = K − 1 ∣ x ) = P ( Y = K ∣ x ) exp ( w K − 1 ⋅ x ) P ( Y = k ∣ x ) = P ( Y = K ∣ x ) exp ( w k ⋅ x ) , k = 1 , 2 , … , K − 1 \begin{aligned} {P(Y=1|x)}&={P(Y=K|x)}\exp(w_1\cdot x)\\ {P(Y=2|x)}&={P(Y=K|x)}\exp(w_2\cdot x)\\ \cdots\\ {P(Y=K-1|x)}&={P(Y=K|x)}\exp(w_{K-1}\cdot x)\\ \color{red}{P(Y=k|x)}&\color{red}={P(Y=K|x)}\exp(w_k\cdot x), k=1,2,\dots,K-1 \end{aligned} P(Y=1∣x)P(Y=2∣x)⋯P(Y=K−1∣x)P(Y=k∣x)=P(Y=K∣x)exp(w1⋅x)=P(Y=K∣x)exp(w2⋅x)=P(Y=K∣x)exp(wK−1⋅x)=P(Y=K∣x)exp(wk⋅x),k=1,2,…,K−1
有 K K K种可能取值概率和为1,可以得到下面推导
P ( Y = K ∣ x ) = 1 − ∑ j = 1 K − 1 P ( Y = j ∣ x ) = 1 − P ( Y = K ∣ x ) ∑ j = 1 K − 1 exp ( w j ⋅ x ) = 1 1 + ∑ j = 1 K − 1 exp ( w j ⋅ x ) \begin{aligned} P(Y=K|x)&=1-\sum_{j=1}^{K-1}P(Y=j|x)\\ &=1-P(Y=K|x)\sum_{j=1}^{K-1}\exp(w_j\cdot x)\\ &=\frac{1}{1+\sum_{j=1}^{K-1}\exp(w_j\cdot x)} \end{aligned} P(Y=K∣x)=1−j=1∑K−1P(Y=j∣x)=1−P(Y=K∣x)j=1∑K−1exp(wj⋅x)=1+∑j=1K−1exp(wj⋅x)1
所以之前红色部分的表达可以表示为
P ( Y = k ∣ x ) = P ( Y = K ∣ x ) exp ( w k ⋅ x ) , k = 1 , 2 , … , K − 1 = 1 1 + ∑ j = 1 K − 1 exp ( w j ⋅ x ) exp ( w k ⋅ x ) , k = 1 , 2 , … , K − 1 = exp ( w k ⋅ x ) 1 + ∑ j = 1 K − 1 exp ( w j ⋅ x ) , k = 1 , 2 , … , K − 1 \begin{aligned} \color{red}{P(Y=k|x)}&\color{red}={P(Y=K|x)}\exp(w_k\cdot x), k=1,2,\dots,K-1\\ &=\frac{1}{1+\sum_{j=1}^{K-1}\exp(w_j\cdot x)}\exp(w_k\cdot x), k=1,2,\dots,K-1\\ &=\frac{\exp(w_k\cdot x)}{1+\sum_{j=1}^{K-1}\exp(w_j\cdot x)}, k=1,2,\dots,K-1\\ \end{aligned} P(Y=k∣x)=P(Y=K∣x)exp(wk⋅x),k=1,2,…,K−1=1+∑j=1K−1exp(wj⋅x)1exp(wk⋅x),k=1,2,…,K−1=1+∑j=1K−1exp(wj⋅x)exp(wk⋅x),k=1,2,…,K−1这里公式和书上有点区别, 求和的用了 j j j表示, 感觉不太容易造成误解。
对数线性模型:
假设归一化因子 Z Z Z, 有如下关系
ln ( Z P ( Y = k ∣ x ) ) = w k ⋅ x , k = 1 , 2 , … , K P ( Y = k ∣ x ) = 1 Z exp ( w k ⋅ x ) , k = 1 , 2 , … , K \begin{aligned} \ln (ZP(Y=k|x))&=w_k\cdot x, k=1,2,\dots,K\\ P(Y=k|x)&=\frac{1}{Z}\exp(w_k\cdot x), k=1,2,\dots,K \end{aligned} ln(ZP(Y=k∣x))P(Y=k∣x)=wk⋅x,k=1,2,…,K=Z1exp(wk⋅x),k=1,2,…,K
又对所有的 P ( Y = k ∣ x ) P(Y=k|x) P(Y=k∣x)可以形成概率分布, 有
∑ k = 1 K P ( Y = k ∣ x ) = 1 = ∑ k = 1 K 1 Z exp ( w k ⋅ x ) = 1 Z ∑ k = 1 K exp ( w k ⋅ x ) \begin{aligned} \sum_{k=1}^KP(Y=k|x)&=1\\ &=\sum_{k=1}^K\frac{1}{Z}\exp(w_k\cdot x)\\ &=\frac{1}{Z}\sum_{k=1}^K\exp(w_k\cdot x) \end{aligned} k=1∑KP(Y=k∣x)=1=k=1∑KZ1exp(wk⋅x)=Z1k=1∑Kexp(wk⋅x)
得到
Z = ∑ k = 1 K exp ( w k ⋅ x ) Z=\sum_{k=1}^K\exp(w_k\cdot x) Z=k=1∑Kexp(wk⋅x)
所以
P ( Y = k ∣ x ) = 1 Z exp ( w k ⋅ x ) = exp ( w k ⋅ x ) ∑ k = 1 K exp ( w k ⋅ x ) , k = 1 , 2 , … , K P(Y=k|x)=\frac{1}{Z}\exp(w_k\cdot x)=\frac{\exp(w_k\cdot x)}{\sum_{k=1}^K\exp(w_k\cdot x)}, k=1,2,\dots,K P(Y=k∣x)=Z1exp(wk⋅x)=∑k=1Kexp(wk⋅x)exp(wk⋅x),k=1,2,…,K
上面这个叫Softmax,针对多项的情况也叫Softmax Regression。
p ( y = k ∣ x ; θ ) = e θ i r x ∑ i = 1 K e θ i r x , k = 1 , 2 ⋯ , K h θ ( x ) = [ p ( y ( i ) = 1 ∣ x ( i ) , θ ) p ( y ( i ) = 2 ∣ x ( i ) ; θ ) . . . p ( y ( i ) = k ∣ x ( i ) ; θ ) ] = 1 ∑ j = 1 k e θ j x ( i ) [ e θ 2 r x e θ 2 r x . . . e θ 2 r x e θ 2 r x ] ⟹ θ = [ θ 1 θ j … θ n … θ 2 … … … … … θ i 1 … … … θ i 1 … … … θ i 1 … … … ] \begin{gathered} p{\big(}y=k\mid x;\theta{\big)}={\frac{e^{\theta_{i}^{r}x}}{\sum_{i=1}^{K}e^{\theta_{i}^{r}x}}},k=1,2\cdots,K \\ h_{\theta}(x)={\left[\begin{matrix}{p\left(y^{(i)}=1|x^{(i)},\theta\right)}\\ {p\left(y^{(i)}=2|x^{(i)};\theta\right)}\\ {...}\\ {p\left(y^{(i)}=k|x^{(i)};\theta\right)}\end{matrix}\right]}={\frac{1}{\sum_{j=1}^{k}e^{\theta^{j}x^{(i)}}}}{\left[\begin{matrix}{e^{\theta_{2}^{r}x}}\\ {e^{\theta_{2}^{r}x}}\\ {...}\\ {e^{\theta_{2}^{r}x}}\\ {e^{\theta_{2}^{r}x}}\\ \end{matrix}\right]}\Longrightarrow\theta={\left[\begin{matrix}{\theta_{1}}&{\theta_{j}}&{\dots}&{\theta_{n}}\\ {\dots}&{\theta_{2}}&{\dots}&{\dots}\\ {\dots}&{\dots}&{\dots}\\ {\theta_{i1}}&{\dots}&{\dots}&{\dots}\\ {\theta_{i1}}&{\dots}&{\dots}&{\dots}\\ {\theta_{i1}}&{\dots}&{\dots}&{\dots}\\ \end{matrix}\right]} \end{gathered} p(y=k∣x;θ)=∑i=1Keθirxeθirx,k=1,2⋯,Khθ(x)= p(y(i)=1∣x(i),θ)p(y(i)=2∣x(i);θ)...p(y(i)=k∣x(i);θ) =∑j=1keθjx(i)1 eθ2rxeθ2rx...eθ2rxeθ2rx ⟹θ= θ1……θi1θi1θi1θjθ2…………………………θn…………
9.3 定义代价函数
θ = [ θ 1 T θ 2 T ⋮ θ k T ] \theta=\begin{bmatrix}\theta_1^T\\ \theta_2^T\\ \vdots\\ \theta_k^T\end{bmatrix} θ= θ1Tθ2T⋮θkT
J ( θ ) = − 1 m ∑ j = 1 m ∑ j = 1 k I ( y ( i ) = j ) ln ( e θ j x ( i ) ∑ i = 1 k e θ j x ( i ) ) I ( y ( i ) = j ) = { 1 , y ( i ) = j 0 , y ( i ) = j J\bigl(\theta\bigr)=-\frac{1}{m}\sum_{j=1}^m\sum_{j=1}^k I\bigl(y^{(i)}=j\bigr)\ln\left(\frac{e^{\theta^j}x^{(i)}}{\sum_{i=1}^k e^{\theta^j}x^{(i)}}\right)\quad I\bigl(y^{(i)}=j\bigr)=\begin{cases}1,&y^{(i)}=j\\ 0,&y^{(i)}=j\end{cases} J(θ)=−m1j=1∑mj=1∑kI(y(i)=j)ln(∑i=1keθjx(i)eθjx(i))I(y(i)=j)={1,0,y(i)=jy(i)=j
9.4 利用梯度下降法最小化代价函数
网页推导:
∂ L ( θ ) ∂ θ j = − 1 m ∂ ∂ θ j [ ∑ i = 1 m ∑ j = 1 k 1 { y i = j } log e θ j T x i ∑ l = 1 k e θ l T x i ] = − 1 m ∂ ∂ θ j [ ∑ i = 1 m ∑ j = 1 k 1 { y i = j } ( θ j T x i − log ∑ l = 1 k e θ l T x i ) ] = − 1 m [ ∑ i = 1 m 1 { y i = j } ( x i − ∑ j = 1 k e θ j T x i ⋅ x i ∑ l = 1 k e θ l T x i ) ] = − 1 m [ ∑ i = 1 m x i 1 { y i = j } ( 1 − ∑ j = 1 k e θ j T x i ∑ l = 1 k e θ l T x i ) ] = − 1 m [ ∑ i = 1 m x i ( 1 { y i = j } − ∑ j = 1 k 1 { y i = j } e θ j T x i ∑ l = 1 k e θ l T x i ) ] = − 1 m [ ∑ i = 1 m x i ( 1 { y i = j } − e θ j T x i ∑ l = 1 k e θ l T x i ) ] = − 1 m [ ∑ i = 1 m x i ( 1 { y i = j } − p ( y i = j ∣ x i ; θ ) ) ] (5) \begin{aligned} \frac{\partial L(\theta)}{\partial \theta_{j}} &=-\frac{1}{m} \frac{\partial}{\partial \theta_{j}}\left[\sum_{i=1}^{m} \sum_{j=1}^{k} 1\left\{y_i=j\right\} \log \frac{e^{\theta_{j}^{T} x_i}}{\sum_{l=1}^{k} e^{\theta_{l}^{T} x_i}}\right] \\ &=-\frac{1}{m} \frac{\partial}{\partial \theta_{j}}\left[\sum_{i=1}^{m} \sum_{j=1}^{k} 1\left\{y_i=j\right\}\left(\theta_{j}^{T} x_i-\log \sum_{l=1}^{k} e^{\theta_{l}^{T} x_i}\right)\right] \\ &=-\frac{1}{m}\left[\sum_{i=1}^{m} 1\left\{y_i=j\right\}\left(x_i-\sum_{j=1}^{k} \frac{e^{\theta_{j}^{T} x_i} \cdot x_i}{\sum_{l=1}^{k} e^{\theta_{l}^{T} x_i}}\right)\right] \\ &=-\frac{1}{m}\left[\sum_{i=1}^{m} x_i1\left\{y_i=j\right\}\left(1-\sum_{j=1}^{k} \frac{e^{\theta_{j}^{T} x_i}}{\sum_{l=1}^{k} e^{\theta_{l}^{T} x_i}}\right)\right] \\ &=-\frac{1}{m}\left[\sum_{i=1}^{m} x_i\left(1\left\{y_i=j\right\}-\sum_{j=1}^{k} 1\left\{y_i=j\right\} \frac{e^{\theta_{j}^{T} x_i}}{\sum_{l=1}^{k} e^{\theta_{l}^{T} x_i}}\right)\right] \\ &=-\frac{1}{m}\left[\sum_{i=1}^{m} x_i\left(1\left\{y_i=j\right\}- \frac{e^{\theta_{j}^{T} x_i}}{\sum_{l=1}^{k} e^{\theta_{l}^{T} x_i}}\right)\right] \\ &=-\frac{1}{m}\left[\sum_{i=1}^{m} x_i\left(1\left\{y_i=j\right\}-p\left(y_i=j | x_i ; \theta\right)\right)\right] \end{aligned}\tag{5} \\ ∂θj∂L(θ)=−m1∂θj∂[i=1∑mj=1∑k1{yi=j}log∑l=1keθlTxieθjTxi]=−m1∂θj∂[i=1∑mj=1∑k1{yi=j}(θjTxi−logl=1∑keθlTxi)]=−m1[i=1∑m1{yi=j}(xi−j=1∑k∑l=1keθlTxieθjTxi⋅xi)]=−m1[i=1∑mxi1{yi=j}(1−j=1∑k∑l=1keθlTxieθjTxi)]=−m1[i=1∑mxi(1{yi=j}−j=1∑k1{yi=j}∑l=1keθlTxieθjTxi)]=−m1[i=1∑mxi(1{yi=j}−∑l=1keθlTxieθjTxi)]=−m1[i=1∑mxi(1{yi=j}−p(yi=j∣xi;θ))](5)
李强课件:
∂ ∂ θ j J ( θ ) = ∂ ∂ θ j − I ( y ( i ) = j ) l n ( e θ j τ x ( i ) ∑ i = 1 k e θ j τ x ( i ) ) = σ ^ σ ^ θ j − I ( y ( i ) = j ( θ j T x ( i ) − ln ( ∑ i = 1 k e θ i T x ( i ) ) ) = − I ( y ( i ) = j ( 1 − e θ j T x ( i ) ∑ i = 1 k e θ i T x ( i ) ) x ( i ) \begin{aligned} \frac{\partial}{\partial\theta_{j}}J\big(\theta\big)&=\frac{\partial}{\partial\theta_{j}}-I\Bigl(y^{(i)}=j\Bigr)\mathrm{ln}\left(\frac{e^{\theta_{j}^{\tau}x^{(i)}}}{\sum_{i=1}^{k}e^{\theta_{j}^{\tau}x^{(i)}}}\right) \\ &=\frac{\hat{\sigma}}{\hat{\sigma}\theta_{j}}-I\Bigl(y^{(i)}=j\Bigl(\theta_{j}^{T}x^{(i)}-\ln\Biggl(\sum_{i=1}^{k}e^{\theta_{i}^{T}x^{(i)}}\Bigr)\Bigr) \\ &=-I\Big(y^{(i)}=j\Bigg(1-\frac{e^{\theta_{j}^{T}x^{(i)}}}{\sum_{i=1}^{k}e^{\theta_{i}^{T}x^{(i)}}}\Big)x^{(i)} \end{aligned} ∂θj∂J(θ)=∂θj∂−I(y(i)=j)ln(∑i=1keθjτx(i)eθjτx(i))=σ^θjσ^−I(y(i)=j(θjTx(i)−ln(i=1∑keθiTx(i)))=−I(y(i)=j(1−∑i=1keθiTx(i)eθjTx(i))x(i)
9.5 迭代
θ j = θ j + α ∑ i = 1 n I ( y ( i ) = j ) ( 1 − p ( y ( i ) = j ∣ x ( i ) ; θ ) ) ) x ( i ) θ i = θ j + α I ( y ( i ) = j ) ( 1 − p ( y ( i ) = j ∣ x ( i ) ; θ ) ) x ( i ) \begin{gathered} \theta_j =\theta_{j}+\alpha\sum_{i=1}^{n}I{\big(}y^{(i)}=j{\big)}{\big(}1-p{\big(}y^{(i)}=j{\big|}x^{(i)};\theta{\big)}{\big)}{\big)}x^{(i)} \\ \theta _{i}=\theta_{j}+\alpha I{\Big(}y^{(i)}=j{\Big)}(1-p{\Big(}y^{(i)}=j{\Big|}x^{(i)};\theta{\Big)}{\Big)}x^{(i)} \end{gathered} θj=θj+αi=1∑nI(y(i)=j)(1−p(y(i)=j x(i);θ)))x(i)θi=θj+αI(y(i)=j)(1−p(y(i)=j x(i);θ))x(i)
十 Softmax的冗余性
假设我们从参数向量 θ j \theta_j θj中减去向量 ψ \psi ψ,那么对于概率函数,我们有:
( y i = j ∣ x i ; θ ) = e ( θ j − ψ ) T x i ∑ l = 1 k e ( θ l − ψ ) T x i = e θ j T x i e − ψ T x i ∑ l = 1 k e θ l T x i e − ψ T x i = e θ j T x i ∑ l = 1 k e θ l T x i \begin{aligned} \left(y_i=j|x_i;\theta\right)& =\frac{e^{\left(\theta_{j}-\psi\right)^{T}x_{i}}}{\sum_{l=1}^{k}e^{\left(\theta_{l}-\psi\right)^{T}x_{i}}} \\ &=\frac{e^{\theta_{j}^{T}x_{i}}e^{-\psi^{T}x_{i}}}{\sum_{l=1}^{k}e^{\theta_{l}^{T}x_{i}}e^{-\psi^{T}x_{i}}} \\ &=\frac{e^{\theta_j^T x_i}}{\sum_{l=1}^{k}e^{\theta_l^T x_i}} \end{aligned} (yi=j∣xi;θ)=∑l=1ke(θl−ψ)Txie(θj−ψ)Txi=∑l=1keθlTxie−ψTxieθjTxie−ψTxi=∑l=1keθlTxieθjTxi
从参数向量中的每个元素 θ j \theta_j θj中减去 ψ \psi ψ一点也不会影响到假设的类别预测!这表明了 softmax 回归的参数中是有多余的。正式地说, softmax 模型是过参数化的( overparameterized 或参数冗余的),这意味着对任何一个拟合数据的假设而言,多种参数取值有可能得到同样的假设 h θ h_{\theta} hθ,即从输入x经过不同的模型参数的假设计算从而得到同样的分类预测结果
十一 softmax 与 logistic 回归的关系
softmax 回归是 logistic 回归的一般形式,logistic 回归是 softmax 回归在k=2 时的特殊形式,下面通过公式推导来看下当k=2 时 softmax 回归是如何退化成 logistic 回归。
-
当k=2 时,softmax 回归的假设函数为:
h θ ( x i ) = [ p ( y i = 1 ∣ x i ; θ ) p ( y i = 2 ∣ x i ; θ ) ] = 1 e θ 1 T x i + e θ 2 T x i [ e θ 1 T x i e θ 2 T x i ] h_{\theta}\left(x_{i}\right)=\begin{bmatrix}p\left(y_{i}=1|x_{i};\theta\right)\\ p\left(y_{i}=2|x_{i};\theta\right)\end{bmatrix}=\frac{1}{e^{\theta_{1}^{T}x_{i}}+e^{\theta_{2}^{T}x_{i}}}\begin{bmatrix}e^{\theta_{1}^{T}x_{i}}\\ e^{\theta_{2}^{T}x_{i}}\end{bmatrix} hθ(xi)=[p(yi=1∣xi;θ)p(yi=2∣xi;θ)]=eθ1Txi+eθ2Txi1[eθ1Txieθ2Txi]
前面说过 softmax 回归的参数具有冗余性,从参数向量 θ 1 , θ 2 \theta_{1},\theta_{2} θ1,θ2中减去向量 θ 1 \theta_1 θ1完全不影响结果。现在我们令 θ ′ = θ 2 − θ 1 \begin{aligned} \theta'=& \theta_{2}-\theta_{1} \end{aligned} θ′=θ2−θ1,并且两个参数向量都减去 θ 1 \theta_1 θ1,则有:
h θ ( x i ) = 1 e θ T x i + e ( θ 2 − θ 1 ) T x i [ e θ T x i e ( θ 2 − θ 1 ) T x i ] = [ 1 1 + e ( θ 2 − θ 1 ) T x i e ( θ 2 − θ 1 ) T x i 1 + e ( θ 2 − θ 1 ) T x i ] = [ 1 1 + e ( θ 2 − θ 1 ) T x i 1 − 1 1 + e ( θ 2 − θ 1 ) T x i ] = [ 1 1 + e ( θ ′ ) x i T 1 − 1 1 + e ( θ ′ ) x i T ] \begin{aligned} h_{\theta}(x_{i})& =\frac{1}{e^{{\theta}^{T}x_{i}}+e^{\left(\theta_{2}-\theta_{1}\right)^{T}x_{i}}}\left[\begin{matrix}{e^{{\theta}^{T}x_{i}}}\\ {e^{\left(\theta_{2}-\theta_{1}\right)^{T}x_{i}}}\\ \end{matrix}\right] \\ &=\left[\begin{array}{l}\frac{1}{1+e^{(\theta_2-\theta_1)^T x_i}}\\ \frac{e^{(\theta_2-\theta_1)^T x_i}}{1+e^{(\theta_2-\theta_1)^T x_i}}\end{array}\right] \\ &=\left[\begin{array}{c}\frac{1}{1+e^{(\theta_2-\theta_1)^{T}x_i}}\\ 1-\frac{1}{1+e^{(\theta_2-\theta_1)^{T}x_i}}\end{array}\right] \\ &=\left[\begin{array}{c}\frac{1}{1+e^{(\theta')^T_{x_i}}}\\ 1-\frac{1}{1+e^{(\theta')^T_{x_i}}}\end{array}\right] \end{aligned} hθ(xi)=eθTxi+e(θ2−θ1)Txi1[eθTxie(θ2−θ1)Txi]=[1+e(θ2−θ1)Txi11+e(θ2−θ1)Txie(θ2−θ1)Txi]=[1+e(θ2−θ1)Txi11−1+e(θ2−θ1)Txi1]=[1+e(θ′)xiT11−1+e(θ′)xiT1]
这样就化成了 logistic 回归
十二 总结
李强课件:
- 线性模型一般用于回归问题,Logistic和Softmax模型一般用于分类问题
- 求θ的主要方式是梯度下降算法,梯度下降算法是参数优化的重要手段,主要是SGD,适用于在线学习以及跳出局部极小值
- Logistic/Softmax回归是实践中解决分类问题的最重要的方法
- 广义线性模型对样本要求不必要服从正态分布、只需要服从指数分布簇(二项分布、泊松分布、伯努利分布、指数分布等)
- 广义线性模型的自变量可以是连续的也可以是离散的
广义线性模型(Generalized Linear Model,简称GLM)是一种用于建模和分析数据的统计模型。它是对线性回归模型的推广和扩展,适用于不满足线性回归假设的数据
softmax和logistic回归是两种常用的分类算法,它们在一些方面有相似之处,但也有一些不同之处。
相似之处:
- 目标函数形式:softmax回归和logistic回归都是基于最大似然估计的方法,目标是最大化预测的概率。
- 输出形式:softmax回归和logistic回归都可以输出概率值,用于表示样本属于不同类别的概率。
不同之处:
多类别分类与二分类:softmax回归适用于多类别分类问题,可以将样本分到多个不同的类别中,而logistic回归适用于二分类问题,将样本分为两个类别。
- 参数个数:softmax回归的参数个数与类别数相关,参数矩阵的列数等于类别数;而logistic回归的参数个数与特征数相关,参数矩阵的列数等于特征数。
- 输出形式:softmax回归的输出是一个概率分布向量,每个元素表示样本属于对应类别的概率;logistic回归的输出是一个概率值,表示样本属于正类的概率。
- 损失函数:softmax回归使用交叉熵损失函数,而logistic回归使用对数损失函数。