二分类问题
Sigmoid/logistic函数:
σ ( z ) = 1 1 + e − z \sigma(z)=\frac{1}{1+e^{-z}}σ(z)=1+e−z1
通过sigmoid函数,我们可以将线性回归的值域从[ − ∞ , + ∞ ] [-\infty,+\infty][−∞,+∞]变换到[ 0 , 1 ] [0,1][0,1],使得我们可以用0 , 1 0,10,1来表示类别。
此时,Logistic回归如下。
Logistic regression:
f ( x ) = σ ( x w ) f({\bf x})=\sigma({\bf xw})f(x)=σ(xw)
cost function:我们的目标是当数据的类别y = 1 y=1y=1时,我们希望f ( x ) f({\bf x})f(x)尽可能的接近1;当当数据的类别y = 0 y=0y=0时,我们希望f ( x ) f({\bf x})f(x)尽可能的接近0。
我们可以定义均方误差的损失函数如下。
L ( w ) = ( σ ( x w ) − y ) 2 L({\bf w})=(\sigma({\bf xw})-y)^2L(w)=(σ(xw)−y)2
当更常用的是交叉熵损失函数(cross-entropy loss)。
L ( w ) = { − log ( σ ( x w ) ) , y = 1 − log ( 1 − σ ( x w ) ) , y = 0 L({\bf w})= \begin{cases} & -\log(\sigma({\bf xw})),\ y=1\\ & -\log(1-\sigma({\bf xw})),\ y=0 \end{cases}L(w)={−log(σ(xw)), y=1−log(1−σ(xw)), y=0
可以写成
L ( w ) = − y log ( σ ( x w ) ) − ( 1 − y ) log ( 1 − σ ( x w ) ) L({\bf w})=-y\log(\sigma({\bf xw}))-(1-y)\log(1-\sigma({\bf xw}))L(w)=−ylog(σ(xw))−(1−y)log(1−σ(xw))
交叉熵是凸函数,而均方误差不是,因此交叉熵可以保证收敛到最优值。
此时,交叉熵损失的梯度为
∂ L ( w ) ∂ w = 1 N ∑ i = 1 N [ σ ( x ( i ) w ) − y ( i ) ] x ( i ) T \frac{\partial L({\bf w})}{\partial {\bf w}}=\frac{1}{N}\sum_{i=1}^N[\sigma({\bf x}^{(i)}{\bf w})-y^{(i)}]{\bf x}^{(i)T}∂w∂L(w)=N1i=1∑N[σ(x(i)w)−y(i)]x(i)T
可以令
∂ L ( w ) ∂ w = 0 \frac{\partial L({\bf w})}{\partial {\bf w}}=0∂w∂L(w)=0
来求出最优值,但这里的解析解不存在。由于交叉熵损失是凸函数,因此可以使用梯度下降的方式来求解。
w ( t + 1 ) = w ( t ) − r ⋅ ∂ L ( w ) ∂ w {\bf w}^{(t+1)}={\bf w}^{(t)}-r\cdot\frac{\partial L({\bf w})}{\partial {\bf w}}w(t+1)=w(t)−r⋅∂w∂L(w)
决策边界(decision boundary):分类的依据可以如下所示
y ^ = { 1 , σ ( x w ) ≥ 0.5 0 , σ ( x w ) < 0.5 \hat{y}=\begin{cases} & 1,\ \sigma({\bf xw})\ge 0.5\\ & 0,\ \sigma({\bf xw}) < 0.5 \end{cases}y^={1, σ(xw)≥0.50, σ(xw)<0.5
等价于
y ^ = { 1 , x w ≥ 0 0 , x w < 0 \hat{y}=\begin{cases} & 1,\ {\bf xw}\ge 0\\ & 0,\ {\bf xw} < 0 \end{cases}y^={1, xw≥00, xw<0
因此,决策边界是满足方程
x w = 0 {\bf xw}=0xw=0
的x {\bf x}x构成的超平面,是线性的决策边界。
多分类问题
假设需要分类的问题有K KK类,在二分类的基础上,对每一个类别引入组权值即可。
softmax函数:
softmax i ( z ) = e z i ∑ k = 1 K e z k , i = 1 , 2 , ⋯ , K \text{softmax}_i({\bf z})=\frac{e^{z_i}}{\sum_{k=1}^Ke^{z_k}},\ i=1,2,\cdots,Ksoftmaxi(z)=∑k=1Kezkezi, i=1,2,⋯,K
在多分类问题中,数据点x {\bf x}x属于第i ii类的概率是
f i ( x ) = softmax i ( x W ) = e x w i ∑ k = 1 K e x w k f_i({\bf x})=\text{softmax}_i({\bf xW})=\frac{e^{\bf xw_i}}{\sum_{k=1}^Ke^{\bf xw_k}}fi(x)=softmaxi(xW)=∑k=1Kexwkexwi
其中,W = [ w 1 , w 2 , ⋯ , w K ] \bf W=[w_1,w_2,\cdots,w_K]W=[w1,w2,⋯,wK]
在二分类问题上,softmax函数等价于逻辑函数。
损失函数:对于多分类问题,标记y \bf yy使用one-hot向量来表示,即
[ 1 , 0 , 0 , ⋯ , 0 ] , [ 0 , 1 , 0 , ⋯ , 0 ] , ⋮ [ 0 , 0 , 0 , ⋯ , 1 ] , [1,0,0,\cdots,0],\\ [0,1,0,\cdots,0],\\ \vdots\\ [0,0,0,\cdots,1],\\[1,0,0,⋯,0],[0,1,0,⋯,0],⋮[0,0,0,⋯,1],
训练的目标是最大化训练样本对应的分类概率,即
L ( w 1 , w 2 , ⋯ , w K ) = − 1 N ∑ i = 1 N ∑ k = 1 K y k ( i ) log ( softmax k ( x ( i ) W ) ) L({\bf w_1},{\bf w_2},\cdots,{\bf w_K})=-\frac{1}{N}\sum_{i=1}^N\sum_{k=1}^Ky_k^{(i)}\log(\text{softmax}_k({\bf x}^{(i)}{\bf W}))L(w1,w2,⋯,wK)=−N1i=1∑Nk=1∑Kyk(i)log(softmaxk(x(i)W))
此时可以得到梯度为
∂ L ( W ) ∂ W = 1 N ∑ i = 1 N [ σ ( x ( i ) W ) − y ( i ) ] x ( i ) T \frac{\partial L({\bf W})}{\partial {\bf W}}=\frac{1}{N}\sum_{i=1}^N[\sigma({\bf x}^{(i)}{\bf W})-{\bf y}^{(i)}]{\bf x}^{(i)T}∂W∂L(W)=N1i=1∑N[σ(x(i)W)−y(i)]x(i)T
使用梯度下降法更新
W t + 1 = W t − r ⋅ ∂ L ( W ) ∂ W ∣ w = w t \left .{\bf W}_{t+1}={\bf W}_t-r\cdot\frac{\partial L(\bf W)}{\partial \bf W}\right|_{\bf w=w_t}Wt+1=Wt−r⋅∂W∂L(W)∣∣∣∣w=wt