首页 > 学院 > 开发设计 > 正文

Andrew Ng Deep Learning Tutorial中Softmax分类器梯度求导过程

2019-11-06 08:35:34
字体:
来源:转载
供稿:网友

Andrew Ng的deep learning tutorial 中 Softmax分类器求梯度的过程省略了,他直接给出Δθ(k)J(θ)=−∑i=1mx(i)((y(i)=k)−exp(θ(k)Tx(i)∑Kj=1exp(θ(j)x(i)))(*) 但一眼无法看出结果,所以自己求了一下,几次算错。网上查的时候也有人很少有人推导或推错。折腾一下终于知道怎么推了。推导过程如下: J(θ)=−⎡⎣⎢⎢∑i=1m∑k=1K{y(i)=k}logexp(θ(k)⊤x(i))∑Kj=1exp(θ(j)⊤x(i))⎤⎦⎥⎥(1) P(y(i)=k|x(i);θ)=exp(θ(k)⊤x(i))∑Kj=1exp(θ(j)⊤x(i))(2) 把(2)代入(1)得:J(θ)=−∑i=1m∑j=0K(y(i)=j)⎡⎣⎢⎢θ(j)x(i)−log∑p=1Kexp(θ(p)Tx(i))⎤⎦⎥⎥ 可以看出,根据j值的两种可能,所求得的导数不同。接下来分类讨论:I.当j=k时: J(θ)=−∑i=1m⎡⎣⎢⎢θ(k)x(i)−log∑p=1Kexp(θ(p)Tx(i))⎤⎦⎥⎥∂J(θ)∂θ(k)=−∑i=1mx(i)(1−P(y(i)=k|x(i);θ))(3) II:当j≠k时,为使过程清晰不妨设j=q,则J(θ)=−∑i=1m⎡⎣⎢⎢θ(q)x(i)−log∑p=1Kexp(θ(p)Tx(i))⎤⎦⎥⎥∂J(θ)∂θ(k)=−∑i=1mx(i)(−P(y(i)=k|x(i);θ))(4). 综合式(3)(4)可得出结果式(*) 。附上andrew ng softmax回归的链接 http://ufldl.stanford.edu/tutorial/supervised/SoftmaxRegression/。


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表