1
Softmax偏导及BP过程的推导 - Aoi_dayo
source link: https://www.cnblogs.com/aoidayo/p/18005371
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
Softmax求导
其实BP过程在pytorch中可以自动进行,这里进行推导只是强迫症
Apart证明softmax求导和softmax的BP过程
本来像手打公式的,想想还是算了,引用部分给出latex公式说明。
基本上都是拾人牙慧,在此给出引用和参考。
引用几个定理B.15和B.16引用几个定理B.15和B.16
(B.15)(B.15)
→x∈kM×1,y∈R,→z∈RN×1,则:∂y→z∂→x=y∂→z∂→x+∂y∂→x⋅→z⊤∈RM×Nx→∈kM×1,y∈R,z→∈RN×1,则:∂yz→∂x→=y∂z→∂x→+∂y∂x→⋅z→⊤∈RM×N
[证明]:dy→z=dy⋅→z+y⋅d→z=→z⋅dy+y⋅d→z=→z⋅(∂y∂→x)⊤d→x+y⋅(∂→z∂→x)⊤d→x∴∂y→z∂→x=y⋅∂→z∂→x+∂y∂→x⋅→z⊤[证明]:dyz→=dy⋅z→+y⋅dz→=z→⋅dy+y⋅dz→=z→⋅(∂y∂x→)⊤dx→+y⋅(∂z→∂x→)⊤dx→∴∂yz→∂x→=y⋅∂z→∂x→+∂y∂x→⋅z→⊤
(B.26)(B.26)
→x∈RN,→f(→x)=[f(x1),f(x2)…f(xn)]∈RN,则∂→f(→x)∂→x=diag(→f′(→x))x→∈RN,f→(x→)=[f(x1),f(x2)…f(xn)]∈RN,则∂f→(x→)∂x→=diag(f→′(x→))
[证明]: ∂→f(→x)∂→x=⎡⎢
⎢
⎢
⎢⎣∂f1∂x1∂f2∂x1⋯∂fn∂ηn⋮⋮⋮∂f1∂xn∂f1∂xn⋯−∂fn∂xn⎤⎥
⎥
⎥
⎥⎦=⎡⎢
⎢
⎢
⎢
⎢⎣f′(x1)f′(x2)⋱f′(xn)⎤⎥
⎥
⎥
⎥
⎥⎦=diag(→f′(→x)) [证明]: ∂f→(x→)∂x→=[∂f1∂x1∂f2∂x1⋯∂fn∂ηn⋮⋮⋮∂f1∂xn∂f1∂xn⋯−∂fn∂xn]=[f′(x1)f′(x2)⋱f′(xn)]=diag(f→′(x→))
Apart中必须说明的两个推导:Apart中必须说明的两个推导:
(1)(1)
→x∈Rn,exp(→x)=⎡⎢
⎢⎣exp(x1)⋮exp(xn)⎤⎥
⎥⎦∈Rn故存在偏导:∂exp(→x)∂→x=⎡⎢
⎢
⎢
⎢⎣∂exp(x1)∂x1⋯∂exp(xn)∂x1⋮∂exp(x1)∂xn⋯∂exp(xn)∂xn⎤⎥
⎥
⎥
⎥⎦=diag(exp(→x))x→∈Rn,exp(x→)=[exp(x1)⋮exp(xn)]∈Rn故存在偏导:∂exp(x→)∂x→=[∂exp(x1)∂x1⋯∂exp(xn)∂x1⋮∂exp(x1)∂xn⋯∂exp(xn)∂xn]=diag(exp(x→))
(2)(2)
d→1⊤exp(→x)=→1⊤dexp(→x)=→1⊤(exp′(→x)⊙d→x)=(→1⊙exp′(→x))⊤d→x 有: ∂→1⊤exp(→x)∂→x=→1⊙exp′(→x)=exp′(→x)=exp(→x)d1→⊤exp(x→)=1→⊤dexp(x→)=1→⊤(exp′(x→)⊙dx→)=(1→⊙exp′(x→))⊤dx→ 有: ∂1→⊤exp(x→)∂x→=1→⊙exp′(x→)=exp′(x→)=exp(x→)
理解可能有偏颇。
__EOF__
本文作者: aoidayo 本文链接: https://www.cnblogs.com/aoidayo/p/18005371 关于博主: 评论和私信会在第一时间回复。或者直接私信我。 版权声明: copyright-aoidayo 声援博主: 如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK