softmax的原函数为:
S(xi)=exiex0+ex1+...+exn=exi∑j=0nexj S(x_i)=\frac{e^{x_i}}{e^{x_0}+e^{x_1}+...+e^{x_n}} =\frac{e^{x_i}}{\sum_{j=0}^{n}e^{x_j}} S(xi)=ex0+ex1+...+exnexi=∑j=0nexjexi
和普通的函数有点不太一样,它是一个输入输出均为序列的映射,每一个输入对应每一个输出都有贡献,对其求导可以看作是多元函数求偏导数的过程。如下所示:
[x0x1x2...xn]=>S(xi)=>[ex0ex0+ex1+...+exnex1ex0+ex1+...+exnex2ex0+ex1+...+exn...exnex0+ex1+...+exn]=[S(x0)S(x1)S(x2)...S(xn)] \left[ \begin{matrix} x_0\\x_1\\x_2\\.\\.\\.\\x_n \end{matrix} \right]=>S(x_i)=> \left[ \begin{matrix} \frac{e^{x_0}}{e^{x_0}+e^{x_1}+...+e^{x_n}}\\ \frac{e^{x_1}}{e^{x_0}+e^{x_1}+...+e^{x_n}}\\ \frac{e^{x_2}}{e^{x_0}+e^{x_1}+...+e^{x_n}}\\ .\\.\\.\\ \frac{e^{x_n}}{e^{x_0}+e^{x_1}+...+e^{x_n}}\\ \end{matrix} \right]= \left[ \begin{matrix} S(x_0)\\S(x_1)\\S(x_2)\\.\\.\\.\\S(x_n) \end{matrix} \right] ⎣⎢⎢⎢⎢⎢⎢⎢⎢⎡x0x1x2...xn⎦⎥⎥⎥⎥⎥⎥⎥⎥⎤=>S(xi)=>⎣⎢⎢⎢⎢⎢⎢⎢⎢⎡ex0+ex1+...+exnex0ex0+ex1+...+exnex1ex0+ex1+...+exnex2
softmax的导数
最新推荐文章于 2025-10-13 23:32:33 发布
本文详细探讨了softmax函数的导数,展示了如何通过多元函数的偏导数求得一个n×n的矩阵。导数矩阵是对称的,主对角线元素表示i=j时的情况,其余位置表示i≠j时的导数值。通过对两种情况的分析,得到softmax函数的一阶导数矩阵表达式。


1万+

被折叠的 条评论
为什么被折叠?



