训练数据集:{xi,yi}i=1N\{x_i,y_i\}^N_{i=1}{xi,yi}i=1N
机器学习中的分类
假定输入x是固定的,训练参数W,预测P(y∣x)=Wy,x)∑c=1Cexp(Wc,x)P(y|x)=\frac{W_y,x)}{\sum^C_{c=1}exp(W_c,x)}P(y∣x)=∑c=1Cexp(Wc,x)Wy,x)
具体过程:
C:总类别数。
W:模型参数矩阵。
对c=1…C都要计算fcf_cfc。
Wy⋅x=∑i=1dWyixi=fyW_y\cdot{x}=\sum^d_{i=1}W_{y_i}x_i=f_yWy⋅x=i=1∑dWyixi=fy
归一化:
P(y∣x)=exp(fy)∑c=1Cexp(fc)=softmax(f)yP(y|x)=\frac{exp(f_y)}{\sum^C_{c=1}exp(f_c)}=softmax(f)_yP(y∣x)=∑c=1Cexp(fc)exp(fy)=softmax(f)y
总体损失函数:J(θ)=1N∑i=1N−log(efyi∑c=1Cefc)+λ∑kθk2J(\theta)=\frac{1}{N}\sum^N_{i=1}-log(\frac{e^{f_{y_i}}}{\sum^C_{c=1}e^{f_c}})+\lambda{\sum_k\theta_k^2}J(θ)=N1i=1∑N−log(∑c=1Cefcefyi)+λk∑θk2
其中λ∑kθk2\lambda{\sum_k\theta_k^2}λ∑kθk2是正则项:使模型权值尽可能小。
f=Wxf=Wxf=Wx:fff是模型。
词窗口分类(Window Classification)
训练一个softmax分类器,给中心词分配一个标签,然后用一个窗口把它前后的单词连接起来。
例:窗口长度为2=>中心词左右各两个单词,加中心词,窗口内共五个单词。
...museums in Paris are amazing......museums\ in\ Paris\ are\ amazing......museums in Paris are amazing...
xwindow=[Xmuseums Xin XParis Xare Xamazing]T∈R5dx_{window}=[X_museums\ X_{in}\ X_{Paris}\ X_{are}\ X_{amazing}]^T\in{R^{5d}}xwindow=[Xmuseums Xin XParis Xare Xamazing]T∈R5d
x=xwindowx=x_{window}x=xwindow:
yy^=P(y∣x)=exp(Wy⋅x)∑c=1Cexp(Wc⋅x)\widehat{y_y}=P(y|x)=\frac{exp(W_y\cdot{x})}{\sum^C_{c=1}exp(W_c\cdot{x})}yy=P(y∣x)=∑c=1Cexp(Wc⋅x)exp(Wy⋅x)
其中yy^\widehat{y_y}yy指模型预测的正确类别。
更新词向量
标记:
ttt:目标概率分布。独热向量:只有在正确类别y的值为1,其余为零。
f=f(x)=Wx∈RCf=f(x)=Wx\in{R^C}f=f(x)=Wx∈RC:C维向量,C是类别的数量。
链式法则:
∂∂x−log(softmax(fy(x))\frac{\partial}{\partial{x}}-log(softmax(f_y(x))∂x∂−log(softmax(fy(x))
=∑c=1C−∂log(softmax(fy(x)∂fc⋅∂fc(x)∂x=\sum^C_{c=1}-\frac{\partial{log(softmax(f_y(x)}}{\partial{f_c}}\cdot{\frac{\partial{f_c(x)}}{\partial{x}}}=c=1∑C−∂fc∂log(softmax(fy(x)⋅∂x∂fc(x)
考虑两种情况:
(1)c=yc=yc=y。
(2)c≠yc\neq{y}c̸=y
∂∂x−log(softmax(fy(x))=[y1^,y2^,...,yy^−1,...yC^]T\frac{\partial}{\partial{x}}-log(softmax(f_y(x))=[\widehat{y_1},\widehat{y_2},...,\widehat{y_y}-1,...\widehat{y_C}]^T∂x∂−log(softmax(fy(x))=[y1,y2,...,yy−1,...yC]T
在正确类别减一,其他什么也不做。
公式向量化:
∂∂x−log(softmax(fy(x))=[y^−t]=δ\frac{\partial}{\partial{x}}-log(softmax(f_y(x))=[\widehat{y}-t]=\delta∂x∂−log(softmax(fy(x))=[y−t]=δ
δ\deltaδ:误差信号
=∑c=1C−∂log(softmax(fy(x)∂fc⋅∂fc(x)∂x=∑c=1CδcWcT=\sum^C_{c=1}-\frac{\partial{log(softmax(f_y(x)}}{\partial{f_c}}\cdot{\frac{\partial{f_c(x)}}{\partial{x}}}=\sum^C_{c=1}\delta_cW_c^T=c=1∑C−∂fc∂log(softmax(fy(x)⋅∂x∂fc(x)=c=1∑CδcWcT
∂∂x−logP(y∣x)=∑c=1CδcWcT=WTδ∈R5d\frac{\partial}{\partial{x}}-logP(y|x)=\sum^C_{c=1}\delta_cW_c^T=W^T\delta\in{R^{5d}}∂x∂−logP(y∣x)=c=1∑CδcWcT=WTδ∈R5d
这里的x指窗口,则:
∇xJ=WTδ=δxwindow=[∇xmuseums,∇xin,∇xParis,∇xare,∇xamazing]T∈R5d\nabla_xJ=W^T\delta=\delta_{x_{window}}=[\nabla_{x_{museums}},\nabla_{x_{in}},\nabla_{x_{Paris}},\nabla_{x_{are}},\nabla_{x_{amazing}}]^T\in{R^{5d}}∇xJ=WTδ=δxwindow=[∇xmuseums,∇xin,∇xParis,∇xare,∇xamazing]T∈R5d
这个窗口中有ininin,则这个梯度会出现在所有包含ininin的窗口中。