Table of Contents
- 逻辑回归
- [Logist 函数](#Logist 函数)
- 目标函数
- [最大似然求解Loss Function](#最大似然求解Loss Function)
- 运用梯度下降得到参数更新递推公式
- Logistic回归与梯度上升法
- 逻辑回归解决多分类问题
逻辑回归
标准逻辑回归是结果为0,1的二分类算法。目标是求 P ( y i = 1 ∥ x i , w ) P(y_i=1\|x_i,w) P(yi=1∥xi,w),若其大于 1 2 \frac{1}{2} 21,则预测分类结果为1,否则为0。
Logist 函数
令 p ( x i ) = P ( y i = 1 ∥ x i , w ) p(x_i) = P(y_i=1\|x_i,w) p(xi)=P(yi=1∥xi,w),构建 p ( x i ) p(x_i) p(xi)与 w T x i w^Tx_i wTxi之间的关系式。
首先提出以下猜想
p ( x i ) = w T x i ? log p ( x i ) = w T x i ~~~~~~~~~~~~~p(x_i)=w^Tx_i?~~~~~~~~~~~\log p(x_i) = w^Tx_i p(xi)=wTxi? logp(xi)=wTxi?
由于 0 ≤ p ( x ) ≤ 1 0\leq p(x)\leq 1 0≤p(x)≤1, w T x i w^Tx_i wTxi是无界的。于是我们说以上等式都是不成立的,因此又有了以下猜想
log p ( x i ) 1 − p ( x i ) = w T x i \log \frac{p(x_i)}{1-p(x_i)} = w^Tx_i log1−p(xi)p(xi)=wTxi
可以证明 odd = p ( x i ) 1 − p ( x i ) \text{odd} = \frac{p(x_i)}{1-p(x_i)} odd=1−p(xi)p(xi)的范围是[0, inf \inf inf],则等式成立。我们称其为logist函数。
则可以化简得到
p ( x i ) = 1 1 + e − w T x i p(x_i) = \frac{1}{1+e^{-w^Tx_i}} p(xi)=1+e−wTxi1
可以类比Sigmoid函数发现, p ( x i ) p(x_i) p(xi)与Sigmoid函数一致。因此我们设 p ( x i ) = g ( w T x i ) p(x_i) = g(w^Tx_i) p(xi)=g(wTxi)。
目标函数
假设样本独立且同分布,则有最大似然估计
m a x w ∏ i = 1 n P ( y i ∣ x i , w ) max_w ~~~~\prod_{i=1}^n P(y_i|x_i,w) maxw i=1∏nP(yi∣xi,w)
其中
P ( y i ∣ x i , w ) = P ( y i = 1 ∣ x i , w ) y i P ( y i = 0 ∣ x i , w ) 1 − y i P(y_i|x_i,w) = P(y_i=1|x_i,w)^{y_i}P(y_i=0|x_i,w)^{1-y_i} P(yi∣xi,w)=P(yi=1∣xi,w)yiP(yi=0∣xi,w)1−yi
最大似然求解Loss Function
令
J = ∏ i = 1 n P ( y i ∣ x i , w ) ~~~~~~~~~ J = \prod_{i=1}^n P(y_i|x_i,w) J=i=1∏nP(yi∣xi,w)
= ∏ i = 1 n g ( w T x i ) y i ( 1 − g ( w T x i ) ) 1 − y i ~~~~~~~~~~~~~~~~~~~~~~~~= \prod_{i=1}^n g(w^Tx_i)^{y_i}(1-g(w^Tx_i))^{1-y_i} =i=1∏ng(wTxi)yi(1−g(wTxi))1−yi
log J = ∑ i = 1 m y i ln ( g ( w T x i ) ) + ( 1 − y i ) ln ( 1 − g ( w T x i ) ) ~~~~~~~~~~~~~~~\log J = \sum_{i=1}^my_i\ln (g(w^Tx_i))+(1-y_i)\ln (1-g(w^Tx_i)) logJ=i=1∑myiln(g(wTxi))+(1−yi)ln(1−g(wTxi))
Loss = − log J ~~~~~~~~~~~~~~~~~~~~ \text{Loss} = - \log J Loss=−logJ
目标函数为
min w − log J ( w ) ~~~~~~~~~~~~~~~~~~~~ \min_w - \log J(w) wmin−logJ(w)
其中 g g g 为sigmoid函数
Q1: 为什么要求最大对数似然估计而不是最大似然估计:
-
首先损失函数的本质是对错误预测进行较大的惩罚,也就是损失函数值会变大,而对正确预测不进行惩罚。对于这点-log在定义域为[0,1]时正好符合。
-
另外,由于取完对数之后,方便我们之后的求导。因为如果直接利用似然函数,会造成两个问题:(1) 对于后续求导不方便, (2) 会导致下溢出
Q2: LR损失函数与最大对数似然函数的关系
LR损失函数是负的最大对数似然函数。由于最大对数似然函数体现出,当真实值和估计值相近的时候,最大对数似然函数很大;相反,则最大对数似然函数接近于0。而损失函数是为了惩罚错误估计,因此通过取相反数正好能够很好的解决这个问题。
Q3: LR的损失函数为什么不是平方损失函数(最小二乘)
虽然由于LR是一种广义的线性回归模型,然而若将LR看作一层的简单的神经网络,其中输出层的激活函数是Sigmoid,我们可以发现,若使用最小二乘作为损失函数,在进行反向传播的时候,由于平方损失函数对于Sigmoid函数求导得到的无法保证是凸函数,因此在优化的过程中,得到的解可能是局部最优,而不是全剧最优解。
运用梯度下降得到参数更新递推公式
对Loss函数求导
∂ − log J ∂ w = − ∑ i = 1 n [ y i ∂ g ( w T x i ) ∂ w g ( w T x i ) + ( 1 − y i ) − ∂ g ( w T x i ) ∂ w 1 − g ( w T x i ) ] \frac{\partial{-\log J}}{\partial{w}}=-\sum_{i=1}^n[y_i\frac{\frac{\partial{g(w^Tx_i)}}{\partial{w}}}{g(w^Tx_i)}+(1-y_i)\frac{\frac{-\partial{ g(w^Tx_i)}}{\partial{w}}}{1-g(w^Tx_i)}] ∂w∂−logJ=−i=1∑n[yig(wTxi)∂w∂g(wTxi)+(1−yi)1−g(wTxi)∂w−∂g(wTxi)]
由于令 z i = w T x i z_i = w^Tx_i zi=wTxi,则有
∂ g ( w T x i ) ∂ w = ∂ g ( z i ) ∂ z i ∂ z i ∂ w \frac{\partial{g(w^Tx_i)}}{\partial{w}} = \frac{\partial{g(z_i)}}{\partial{z_i}}\frac{\partial{z_i}}{\partial{w}} ∂w∂g(wTxi)=∂zi∂g(zi)∂w∂zi
又因为
∂ g ( z i ) ∂ z i = g ( z i ) ′ = g ( z i ) ( 1 − g ( z i ) ) \frac{\partial{g(z_i)}}{\partial{z_i}}=g(z_i)'=g(z_i)(1-g(z_i)) ∂zi∂g(zi)=g(zi)′=g(zi)(1−g(zi))
于是整合得
∂ − log J ∂ w = ∑ i = 1 n ( g z i ) − y i ) x i \frac{\partial{-\log J}}{\partial{w}} = \sum_{i=1}^n(g{z_i})-y_i)x_i ∂w∂−logJ=i=1∑n(gzi)−yi)xi
根据梯度定义得到
w : = w − α ∑ i = 1 n ( g z i ) − y i ) w:=w-\alpha\sum_{i=1}^n(g{z_i})-y_i) w:=w−αi=1∑n(gzi)−yi)
Logistic回归与梯度上升法
逻辑回归解决多分类问题
方法一:OvR
- 思想:
n 种类型的样本进行分类时,分别取一种样本作为一类,将剩余的所有类型的样本看做另一类,这样就形成了 n 个二分类问题,使用逻辑回归算法对 n 个数据集训练出 n 个模型,将待预测的样本传入这 n 个模型中,所得概率最高的那个模型对应的样本类型即认为是该预测样本的类型;
- 时间复杂度:O(n)
- 示意图
方法二:OvO
- 思想
n 类样本中,每次挑出 2 种类型,两两结合,一共有 C n 2 C_n^2 Cn2种二分类情况,使用 C n 2 C_n^2 Cn2种模型预测样本类型,有 C n 2 C_n^2 Cn2个预测结果,种类最多的那种样本类型,就认为是该样本最终的预测类型;
- 时间复杂度: O ( n 2 ) O(n^2) O(n2)
- 示意图
方法三:softmax
- 思想
由于发现OvR的所有概率相加通常会超过1,因此对OvR进行改进,对概率进行归一化
- 推导
令 z i j = ( w j ) T x i z_i^j=(w^j)^Tx_i zij=(wj)Txi,其中 w j w^j wj表示第 j j j类的权重(是个列向量), 、 x i 、x_i 、xi表示第 i i i个样本(是个列向量)。
将 z i j z_i^j zij映射到 y j ( z i ) = e z i j / ∑ c = 1 C e z i c y_j(z_i)=e^{z_i^j}/\sum\limits_{c=1}^Ce^{z_i^c} yj(zi)=ezij/c=1∑Cezic,其中C表示有C个类, y j ( z i ) y_j(z_i) yj(zi)表示第 j j j类的softmax值,即样本 i i i属于 j j j类的概率
令
g
s
(
z
i
)
=
[
y
1
(
z
i
)
,
y
2
(
z
i
)
,
…
,
y
C
(
z
i
)
]
T
gs(z_i)=[y_1(z_i),y_2(z_i),\dots,y_C(z_i)]^T
gs(zi)=[y1(zi),y2(zi),…,yC(zi)]T
相当于用矩阵表示
P s ( w T x ) = e x p ( w T x ) 1 T e x p ( w T x ) , 其 中 1 是 全 为 1 的 向 量 , w = [ w 1 , w 2 , … , w C ] T Ps(w^Tx)=\frac{exp(w^Tx)}{1^Texp(w^Tx)},其中1是全为1的向量,w=[w^1,w^2,\dots,w^C]^T Ps(wTx)=1Texp(wTx)exp(wTx),其中1是全为1的向量,w=[w1,w2,…,wC]T
用统计学知识解释,那么在多分类问题中,假设类别标签y∈{1, 2, …, C}有C个取值,那么给定一个样本x,softmax回归预测x属于类别i的后验概率为:
P ( y = i ∣ x ; w i ) = e x p ( w i T x ) ∑ c = 1 C e x p ( w c T x ) . P(y=i|x;w_i)=\frac{exp(w_i^Tx)}{\sum_{c=1}^Cexp(w_c^Tx)}. P(y=i∣x;wi)=∑c=1Cexp(wcTx)exp(wiTx).
- 示意图
- 目标函数
L= ∑ k t k ⋅ l n P ( y = k ) \sum_kt_k⋅lnP(y=k) ∑ktk⋅lnP(y=k),其中目标类的 t k t_k tk为1,其余类的 t k t_k tk为0
- 权重递推公式
由于对比普通逻辑回归,只是改变了映射函数
logistic的递推公式
w : = w + α ∑ i = 1 C ( x i ( y i − g ( w T x i ) ) ) w : = w − α X T ( g ( w T X ) − y ) w:=w+\alpha \sum_{i=1}^C(x_i(y_i-g(w^Tx_i))) w:=w-\alpha X^T(g(w^TX)-y) w:=w+αi=1∑C(xi(yi−g(wTxi)))w:=w−αXT(g(wTX)−y)
则softmax的递推公式
w : = w + α ∑ i = 1 C ( x i ( y i − P s ( w T x i ) ) ) w : = w − α X T ( P s ( w T X ) − y ) w:=w+\alpha \sum_{i=1}^C(x_i(y_i-Ps(w^Tx_i))) w:=w-\alpha X^T(Ps(w^TX)-y) w:=w+αi=1∑C(xi(yi−Ps(wTxi)))w:=w−αXT(Ps(wTX)−y)