主要参考了B站UP主“shuhuai008”,包含自己的理解。
有任何的书写错误、排版错误、概念错误等,希望大家包含指正。
由于字数限制,分成两篇博客。
【机器学习】线性分类【上】广义线性模型
【机器学习】线性分类【下】经典线性分类算法
线性模型不仅包括线性回归模型,还包括方差分析模型等,但这里我们仅讨论线性回归,所以统一认为线性模型就是线性回归模型。
在《线性回归》中提到,线性回归模型的定义为
f(x)=w0+w1x1+⋯+wpxp(1)f(x) = w_0+w_1x_1+\dots+w_px_p\tag{1} f(x)=w0+w1x1+⋯+wpxp(1)
但其实,式 (1)(1)(1) 只是线性回归中的一个特例。总结 Wikipedia 的解释,只要模型参数满足线性组合,那么就认为是线性回归。比如
f(x)=w0+w1x12x2+w2log(x2)(2)f(x)=w_0+w_1x_1^2x_2+w_2\log(x_2)\tag{2} f(x)=w0+w1x12x2+w2log(x2)(2)
也属于线性回归。因为我们完全可以认为自变量并非 xxx,而是 t={t1,t2}t=\{t_1,t_2\}t={t1,t2},其中 t1=x12x2t_1=x_1^2x_2t1=x12x2,t2=log(x2)t_2=\log(x_2)t2=log(x2),因此式 (2)(2)(2) 可以重新表示为
f(t)=w0+w1t1+w2t2(3)f(t) = w_0+w_1t_1+w_2t_2\tag{3} f(t)=w0+w1t1+w2t2(3)
所以说,Wikipedia 也提到多项式回归也是线性回归的特例。根据自变量的个数和次数,多项式回归又可以称为 nnn元mmm次多项式回归,不作为重点讲解。
要想与机器学习领域融合,我们不得不先区分一下“线性函数”与“线性回归”。对线性函数而言,我们是视角是自变量,如果函数是自变量的线性组合,则为线性函数;而对于线性回归而言,我们的视角是模型参数,如果是关于模型参数的线性组合,则为线性回归。这就是式 (2)(2)(2) 仍被称为线性回归的原因。
在机器学习中,xxx 是样本的直接特征,是已知信息。在训练模型参数前,我们就可以将直接特征 xxx 转换为 ttt,再将 ttt 作为样本特征进行训练。对于式 (2)(2)(2) 和 (3)(3)(3),在二维平面中直接绘制关于 xxx 的回归曲线肯定非线性,但是如果绘制关于 ttt 的回归曲线则是线性的。
当然,也可以认为式 (1)(1)(1) 是标准的线性回归,式 (2)(2)(2) 为线性回归的简单推广。从式 (2)(2)(2) 的角度来看,确实具有了非线性的特点,但是在机器学习中,其本质还是式 (3)(3)(3),满足线性的特点。
广义线性模型(Generalized Linear Model,GLM)是对(狭义)线性模型的推广,表示一类线性模型。由于线性回归只能解决非常简单的问题,而且对于分类和计数问题是无法处理的。很自然的一个思路是,对线性函数中的因变量 yyy 值找一个非线性函数上的映射 g(y)g(y)g(y),将线性函数的取值从连续值映射到想要的范围内。我们不再直接对 yyy 进行线性预测,而是对 g(y)g(y)g(y) 进行线性预测,即
g(y)=w0+w1x1+⋯+wpxpg(y)=w_0+w_1x_1+\dots+w_px_p g(y)=w0+w1x1+⋯+wpxp
或
y=g−1(w0+w1x1+⋯+wpxp)y=g^{-1}(w_0+w_1x_1+\dots+w_px_p) y=g−1(w0+w1x1+⋯+wpxp)
其中,g(⋅)g(·)g(⋅) 在 GLM 中被称为连接函数(link function)。
特别地,当 g(y)=yg(y)=yg(y)=y 时,该模型为线性回归模型;当 g(y)=lnyg(y)=\ln yg(y)=lny 时,该模型为对数线性模型;当 g(y)=lny1−yg(y)=\ln \frac{y}{1-y}g(y)=ln1−yy 时,该模型为对数几率模型,也就是我们熟知的逻辑回归模型,对数几率模型扩展后可以得到 softmax 回归模型。
并不是任何函数都可以作为连接函数,连接函数究竟有哪些选择?以及,在机器学习中,模型最终要用于预测,如何利用训练好的模型参数根据输入 xxx 预测得到 yyy,也就是预测函数是什么,这又是一个问题?
介绍 GLM 之前,先将会用到的指数分布族的相关概念简单介绍一下。
指数分布族代表一类分布,统一的公式表示为
f(y;η)=b(y)exp(ηTT(y)−a(η))(4)f(y;\eta)=b(y)\exp\big(\eta^T T(y)-a(\eta)\big) \tag{4} f(y;η)=b(y)exp(ηTT(y)−a(η))(4)
确定了 a(⋅)a(·)a(⋅)、b(⋅)b(·)b(⋅) 和 T(⋅)T(·)T(⋅),那么 yyy 只与 η\etaη 有关,就定义了一个以 η\etaη 为参数的分布。属于指数分布族的常见分布有,伯努利分布、泊松分布、多种类分布、多项分布、正态分布等等。
详细学习“指数分布族”的相关知识请移步:REF [11] 。
广义线性模型基于三个假设,也可以理解为三个设计决策,这三个决策帮助我们构建广义线性模型:
① y∣x;θ∼ExpFamily(η)y\mid x;\theta \sim {\rm ExpFamily(\eta)}y∣x;θ∼ExpFamily(η):yyy 的先验分布属于指数分布族中的某一个分布。
② h(x)=E(T(y)∣x)h(x)=E\big(T(y)\mid x\big)h(x)=E(T(y)∣x):预测函数 h(x)h(x)h(x) 为 T(y)T(y)T(y) 的条件期望,亦将 T(y)T(y)T(y) 的条件期望作为模型预测值。
③ η=θTx\eta=\theta^Txη=θTx:线性关系。
获取连接函数 g(⋅)g(·)g(⋅) 与预测函数 h(⋅)h(·)h(⋅) 的过程重合,获取到了 ggg 也就相当于确定了 hhh 。获取两个函数的过程大致如下:
已知 yyy 服从均值为 μ\muμ 的确定分布 DDD,DDD 属于指数分布族。将分布的概率质量函数(离散)或概率密度函数(连续)转化为指数形式后,与式 (4)(4)(4) 中的对应项建立等式关系即可确定 a(⋅)a(·)a(⋅) 关于 η\etaη 的表达式以及 b(⋅)b(·)b(⋅) 关于 yyy 的表达式。同时式 (4)(4)(4) 中的 ηT\eta^TηT 项也会有对应项,由此可以确定 η\etaη 与分布 DDD 参数 λ\lambdaλ 的关系,不妨记为 λ=f1(η)\lambda = f_1(\eta)λ=f1(η);而分布 DDD 的均值 μ\muμ 可以由分布参数 λ\lambdaλ 表示(比如伯努利分布 B(1,p)B(1,p)B(1,p) 的均值为 ppp,泊松分布 P(λ)P(\lambda)P(λ) 的均值为 λ\lambdaλ,高斯分布 N(μ,σ)N(\mu,\sigma)N(μ,σ) 的均值为 μ\muμ),不妨记为 μ=f2(λ)\mu= f_2(\lambda)μ=f2(λ),合并得到 μ=f2(f1(η))\mu=f_2(f_1(\eta))μ=f2(f1(η)),重新记为 μ=f(η)\mu = f(\eta)μ=f(η)。GLM 中一般取 T(y)=yT(y)=yT(y)=y,根据假设 ② 可得预测函数 h(x)=E(y∣x)h(x)=E(y\mid x)h(x)=E(y∣x)。前面提到 μ\muμ 为均值,那么 h(x)=E(y∣x)=μh(x)=E(y\mid x)=\muh(x)=E(y∣x)=μ,所以 h(x)=f(η)=f(θTx)h(x)=f(\eta)=f(\theta^Tx)h(x)=f(η)=f(θTx) 。由于关系 f1f_1f1 和 f2f_2f2 均已知,所以 fff 也已知,故预测函数 hhh 可求,且 f−1f^{-1}f−1 就是连接函数 ggg 。
当然,即使 T(y)≠yT(y)\ne yT(y)=y,我们也是可以根据期望的定义计算出期望的。
关于伯努利分布、二项分布、多类别分布和多项分布:
抛一次硬币,正面朝上的概率,这是伯努利分布;抛 nnn 次硬币,正面朝上出现了 mmm 次的概率,这是二项分布。
伯努利分布(Bernoulli Distribution) →\to→ 二项分布(Binomial Distribution)
抛一次骰子,第 k 面朝上的概率,这是多类别分布;抛 nnn 次骰子, 第 1\rm 11 面朝上出现了 m1m_1m1 次,第 2\rm 22 面朝上出现了 m2m_2m2 次 … 第 KKK 面朝上出现了 mKm_KmK 次的概率,这是多项分布。
多类别分布(Categorical Distribution) →\to→ 多项分布(Multinomial Distribution)
概率质量函数(Probability Mass Function,PMF)如下。
伯努利分布:
P(X=x∣θ)=θx(1−θ)1−xx∈{0,1}P(X=x\mid \theta)=\theta^{x}(1-\theta)^{1-x} \\ x\in \{0,1\} P(X=x∣θ)=θx(1−θ)1−xx∈{0,1}
二项分布:
P(X=m∣θ,n)=(nm)θm(1−θ)n−mm∈{0,1,2,…,n}(nm)=n!m!(n−m)!P(X=m\mid \theta,n)=\left(\begin{matrix} n \\ m\end{matrix}\right) \theta ^ m(1-\theta)^{n-m}\\ m\in \{0,1,2,\dots, n\} \\ \left(\begin{matrix} n \\ m\end{matrix}\right)=\frac{n!}{m!(n-m)!} P(X=m∣θ,n)=(nm)θm(1−θ)n−mm∈{0,1,2,…,n}(nm)=m!(n−m)!n!
多类别分布:
P(X=xk∣θ1,θ2,…,θK)=∏k=1Kθkxk∑k=1Kθk=1xk∈{0,1},∑k=1Kxk=1P(X=x_k\mid \theta_1,\theta_2,\dots, \theta_K)=\prod _{k=1}^K \theta_k^{x_k} \\ \sum_{k=1}^K \theta_k=1\\ x_k\in \{0,1\},\space\space\sum_{k=1}^Kx_k=1 P(X=xk∣θ1,θ2,…,θK)=k=1∏Kθkxkk=1∑Kθk=1xk∈{0,1}, k=1∑Kxk=1
多项分布:
P(X1=m1,X2=m2,…,XK=mK∣θ1,θ2,…,θK,n)=n!m1!m2!…mK!∏k=1Kθkmk∑k=1Kθk=1∑k=1Kmk=nP(X_1=m_1,X_2=m_2,\dots,X_K=m_K\mid \theta_1,\theta_2,\dots,\theta_K,n)=\frac{n!}{m_1!m_2!\dots m_K!}\prod_{k=1}^K \theta_k^{m_k} \\ \sum_{k=1}^K\theta_k=1 \\ \sum_{k=1}^K m_k=n P(X1=m1,X2=m2,…,XK=mK∣θ1,θ2,…,θK,n)=m1!m2!…mK!n!k=1∏Kθkmkk=1∑Kθk=1k=1∑Kmk=n
单纯描述过程还是过于抽象,下面将对我们最熟悉的逻辑回归和 softmax 回归推导连接函数(或预测函数)。
逻辑回归的 sigmoid 函数是符合 GLM 的伯努利分布的连接函数的反函数,即 sigmoid 函数将线性函数映射到伯努利分布的期望。
伯努利分布的概率质量函数可以写为
P(y;ϕ)=ϕy(1−ϕ)1−yP(y;\phi)=\phi^y(1-\phi)^{1-y} P(y;ϕ)=ϕy(1−ϕ)1−y
其中,y∈{0,1}y\in\{0,1\}y∈{0,1},ϕ\phiϕ 表示 y=1y=1y=1 的概率。转化成指数形式为
P(y;ϕ)=ϕy(1−ϕ)1−y=exp(logϕy(1−ϕ)1−y)=exp(ylogϕ+(1−y)log(1−ϕ))=exp(ylogϕ1−ϕ+log(1−ϕ))\begin{aligned} P(y;\phi)&=\phi^y(1-\phi)^{1-y} \\ &=\exp\big(\log\phi^y(1-\phi)^{1-y} \big) \\ &= \exp\big( y\log\phi + (1-y)\log (1-\phi) \big) \\ &= \exp\big(y\log\frac{\phi}{1-\phi} + \log (1-\phi)\big) \end{aligned} P(y;ϕ)=ϕy(1−ϕ)1−y=exp(logϕy(1−ϕ)1−y)=exp(ylogϕ+(1−y)log(1−ϕ))=exp(ylog1−ϕϕ+log(1−ϕ))
与式 (4)(4)(4) 相对应可得
b(y)=1T(y)=ya(η)=−log(1−ϕ)η=logϕ1−ϕ\begin{aligned} b(y)&=1 \\ T(y)&=y \\ a(\eta)&=-\log(1-\phi) \\ \eta &= \log \frac{\phi}{1-\phi} \\ \end{aligned} b(y)T(y)a(η)η=1=y=−log(1−ϕ)=log1−ϕϕ
伯努利分布的期望为 E(y∣x)=0×P(0)+1×P(1)=ϕE(y\mid x) = 0\times P(0)+1\times P(1)=\phiE(y∣x)=0×P(0)+1×P(1)=ϕ,所以预测函数 h(x)=E(T(y)∣x)=ϕh(x)=E(T(y)\mid x)=\phih(x)=E(T(y)∣x)=ϕ。根据上面 η=logϕ1−ϕ\eta=\log \frac{\phi}{1-\phi}η=log1−ϕϕ 可得 ϕ=11+exp(−η)\phi=\frac{1}{1+\exp({-\eta})}ϕ=1+exp(−η)1,因此 h(x)=11+exp(−η)=11+exp(θTx)h(x)=\frac{1}{1+\exp({-\eta})}=\frac{1}{1+\exp({\theta^Tx})}h(x)=1+exp(−η)1=1+exp(θTx)1,对应的连接函数为 g(x)=logx1−xg(x)=\log\frac{x}{1-x}g(x)=log1−xx 。可见,此时的预测函数 hhh 就是熟知的逻辑回归函数。
多种类分布的概率质量函数可以写为
P(y;ϕ)=∏i=1kϕi1{y=i}(5)P(y;\phi)=\prod_{i=1}^k\phi_i^{1\{y=i\}}\tag{5} P(y;ϕ)=i=1∏kϕi1{y=i}(5)
其中,1{y=⋅}1\{y=·\}1{y=⋅} 的作用类似于艾弗森括号,即括号内为真返回 111,否则返回 000。对于式 (5)(5)(5) 满足 1{y=i}∈{0,1}1\{y=i\} \in \{0,1\}1{y=i}∈{0,1} 且 ∑i=1k1{y=i}=1\sum_{i=1}^k 1\{y=i\}=1∑i=1k1{y=i}=1 。
为了处理方便,将式 (5)(5)(5) 第 kkk 类与前 k−1k-1k−1 类分开处理,得
P(y;ϕ)=∏i=1k−1ϕi1{y=i}⋅ϕk1{y=k}=∏i=1k−1ϕi1{y=i}⋅ϕk1−∑j=1k−11{y=j}(6)\begin{aligned} P(y;\phi)&=\prod_{i=1}^{k-1}\phi_i^{1\{y=i\}}·\phi^{1\{y=k\}}_k \\ &= \prod_{i=1}^{k-1}\phi_i^{1\{y=i\}}·\phi^{1-\sum_{j=1}^{k-1}1\{y=j\}}_k \tag{6} \end{aligned} P(y;ϕ)=i=1∏k−1ϕi1{y=i}⋅ϕk1{y=k}=i=1∏k−1ϕi1{y=i}⋅ϕk1−∑j=1k−11{y=j}(6)
将式 (6)(6)(6) 转换为指数形式为
P(y;ϕ)=∏i=1k−1ϕi1{y=i}⋅ϕk1−∑j=1k−11{y=j}=exp(∑i=1k−11{y=i}logϕi+(1−∑i=1k−11{y=i})logϕk)=exp(∑i=1k−11{y=i}logϕiϕk+∑i=1k−1logϕk)(7)\begin{aligned} P(y;\phi)&= \prod_{i=1}^{k-1}\phi_i^{1\{y=i\}}·\phi^{1-\sum_{j=1}^{k-1}1\{y=j\}}_k \\ &= \exp\big( \sum_{i=1}^{k-1}1\{y=i\}\log \phi_i+(1-\sum_{i=1}^{k-1}1\{y=i\})\log \phi_k \big) \\ &= \exp\big( \sum_{i=1}^{k-1}1\{y=i\}\log\frac{\phi_i}{\phi_k} +\sum_{i=1}^{k-1}\log\phi_k \big) \tag{7} \end{aligned} P(y;ϕ)=i=1∏k−1ϕi1{y=i}⋅ϕk1−∑j=1k−11{y=j}=exp(i=1∑k−11{y=i}logϕi+(1−i=1∑k−11{y=i})logϕk)=exp(i=1∑k−11{y=i}logϕkϕi+i=1∑k−1logϕk)(7)
式 (7)(7)(7) 中的求和项 ∑i=1k−11{y=i}logϕiϕk\sum_{i=1}^{k-1}1\{y=i\}\log\frac{\phi_i}{\phi_k}∑i=1k−11{y=i}logϕkϕi 可以表示为内积的形式。不妨假设与式 (4)(4)(4) 相对应的 η\etaη 和 T(y)T(y)T(y) 应该均为第 kkk 维为 000 的 kkk 维列向量,即
b(y)=1T(y)=(1{y=1}1{y=2}⋮1{y=k−1}0)a(η)=−log(ϕk)η=(logϕ1ϕklogϕ2ϕk⋮logϕk−1ϕk0)\begin{aligned} b(y)&=1 \\ T(y)&=\left(\begin{matrix} 1\{y=1\} \\ 1\{y=2\} \\ \vdots \\ 1\{y=k-1\} \\ 0 \end{matrix}\right) \\ a(\eta)&=-\log(\phi_k) \\ \eta &= \left(\begin{matrix} \log\frac{\phi_1}{\phi_k} \\ \log\frac{\phi_2}{\phi_k} \\ \vdots \\ \log\frac{\phi_{k-1}}{\phi_k} \\ 0 \end{matrix}\right) \\ \end{aligned} b(y)T(y)a(η)η=1=⎝⎜⎜⎜⎜⎜⎛1{y=1}1{y=2}⋮1{y=k−1}0⎠⎟⎟⎟⎟⎟⎞=−log(ϕk)=⎝⎜⎜⎜⎜⎜⎜⎛logϕkϕ1logϕkϕ2⋮logϕkϕk−10⎠⎟⎟⎟⎟⎟⎟⎞
因此 ηi=logϕiϕk\eta_i=\log \frac{\phi_i}{\phi_k}ηi=logϕkϕi,特别地,ηk=logϕkϕk=0\eta_k=\log \frac{\phi_k}{\phi_k}=0ηk=logϕkϕk=0。所以有 ϕiϕk=exp(ηi)\frac{\phi_i}{\phi_k} = \exp(\eta_i)ϕkϕi=exp(ηi),对等式两侧同时求和,得
∑i=1kϕiϕk=1ϕk=∑i=1kexp(ηi)\sum_{i=1}^k \frac{\phi_i}{\phi_k}=\frac{1}{\phi_k}=\sum_{i=1}^k \exp(\eta_i) i=1∑kϕkϕi=ϕk1=i=1∑kexp(ηi)
因此 ϕk=1∑i=1kexp(ηi)=exp(ηk)∑i=1kexp(ηi)\phi_k=\frac{1}{\sum_{i=1}^k\exp(\eta_i)}=\frac{\exp(\eta_k)}{\sum_{i=1}^k\exp(\eta_i)}ϕk=∑i=1kexp(ηi)1=∑i=1kexp(ηi)exp(ηk)。对于 i≠ki\ne ki=k 的情况,根据等式 ϕiϕk=exp(ηi)\frac{\phi_i}{\phi_k}=\exp(\eta_i)ϕkϕi=exp(ηi),可得 ϕi=exp(ηi)∑j=1kexp(ηj)\phi_i=\frac{\exp(\eta_i)}{\sum_{j=1}^k\exp(\eta_j)}ϕi=∑j=1kexp(ηj)exp(ηi)。故统一表示为 ϕi=exp(ηi)∑j=1kexp(ηj)\phi_i=\frac{\exp(\eta_i)}{\sum_{j=1}^k\exp(\eta_j)}ϕi=∑j=1kexp(ηj)exp(ηi),记 ϕ=(ϕ1ϕ2…ϕk)T\phi = (\begin{matrix} \phi_1&\phi_2&\dots \phi_k \end{matrix})^Tϕ=(ϕ1ϕ2…ϕk)T。
根据 h(x)=E(T(y)∣x)h(x)=E\big(T(y)\mid x\big)h(x)=E(T(y)∣x) 可得预测为第 t(t∈{1,2,…,k})t\space(t\in\{1,2,\dots,k\})t (t∈{1,2,…,k}) 类的期望为
h(x)=E(T(y)∣x)=T(y)Tϕ=ϕt=exp(θtTx)∑i=1kexp(θiTx)h(x)=E\big(T(y)\mid x\big) = T(y)^T\phi=\phi_t=\frac{\exp(\theta_t^Tx)}{\sum_{i=1}^k\exp(\theta_i^Tx)} h(x)=E(T(y)∣x)=T(y)Tϕ=ϕt=∑i=1kexp(θiTx)exp(θtTx)
这与我们熟悉的 softmax 函数一致。
连接函数与预测函数的关系:
连接函数的反函数 g−1g^{-1}g−1 是关于 η\etaη 的函数,而预测函数 hhh 是关于 xxx 的函数,所以可以认为 hhh 是内函数为 η=θTx\eta=\theta^Txη=θTx,外函数为 g−1g^{-1}g−1 的复合函数。
如何理解广义线性模型的“线性”?
我认为从其假设可以看到 η=θTx\eta = \theta^Txη=θTx 表达了线性信息,但是不够直观。不妨从分类角度更加直观地理解线性,我们知道 GLM 预测到的是被分为某一类的概率,最高概率对应的类为预测确定的类。通过查看 Wikipedia 中各个指数分布族中的分布对应的连接函数发现,这些连接函数的反函数都是单调函数,这说明要么选最大 η=θTx\eta=\theta^Txη=θTx 对应的类,要么选最小 η\etaη 对应的类,可见本质依然是根据线性组合值进行分类。更直观地表示在二维平面上,判断每个点的类别就会发现,类与类之间由直线(线性超平面)隔开,这无疑是 GLM 线性特点最直观的体现。
但是需要注意,模型参数 θi\theta_iθi 对应的超平面并非类间超平面。对于多分类而言,往往二者之间没有直观上能理解的关系;对于二分类而言,二者平行。
我们可以尝试在二维平面中绘制 logistics 二分类图像和 softmax 多分类图像,也可以说明我们的观点是合理的。
很多同学会感性地认为,模型参数对应的超平面之间区域的样本为相同类别,其实这种理解是错误的。出现这个问题的原因在于,我们无法保证 θ1\theta_1θ1 和 θ2\theta_2θ2 对应的超平面之间区域的全部样本都满足 θ1Tx>θ2Tx\theta_1^Tx>\theta_2^Txθ1Tx>θ2Tx 或者 θ1Tx<θ2Tx\theta_1^Tx<\theta_2^Txθ1Tx<θ2Tx 。仅对于两个相交的模型参数超平面而言,往往类间超平面更可能被夹在两个超平面之间,比如图 111 softmax 子图中右侧红、蓝两线之间的类间分界线。注意,这是在没有其他模型参数超平面影响的前提下,大致有这样的规律,超平面一多,影响因素过多,不好讨论。
图 1 二分类(左)和多分类(右)的权重对应超平面(直线)和类间超平面(区域边界)
我当时不禁思考,本质上 GLM 比较的是 $\theta^Tx$ 的大小,如果 $\theta$ 相同,那么无论采用哪种 GLM 都会将样本分到相同的类别,选用不同的 GLM 的意义在哪?确实,在 θ\thetaθ 相同的前提下,每种具体的 GLM 对应的分类结果是完全相同的;但问题就出在,每种 GLM 训练出的参数 θ\thetaθ 几乎不可能完全相同,因为它们采用了不同的联系函数,也正是因为联系函数的不同,使得模型更加多样、能更加适应不同的场景。模型参数 θ\thetaθ 的不同保证了每个模型对应的类间边界不是完全相同的,但都是线性。
上一篇:为什么我抓不到baidu的数据包
下一篇:xss挑战之旅11-19关