通俗易懂!详解Softmax及求导过程、Python实现、交叉熵 |
您所在的位置:网站首页 › 导数的通俗讲解 › 通俗易懂!详解Softmax及求导过程、Python实现、交叉熵 |
目录
前言
一、概率学解释
二、Softmax求导
1.向量微积分
2.Softmax的导数
三、Softmax的计算和稳定性
1.Python实现Softmax
三、Softmax层及其导数
四、Softmax 和交叉熵损失
五、注释
前言
本文是对一篇国外的讲解Softmax的文章的翻译。 Softmax函数的输入是一个N维的向量,向量元素是任意实数,输出也是一个N维的向量,但是有如下性质: 输出向量元素取值范围是(0, 1) 对输出向量的所有元素求和时,和为1Softmax函数是这样一个映射 S ( a ) : R N → R N S(a): \mathbb{R}^N \xrightarrow{} \mathbb{R}^N S(a):RN RN S ( a ) : [ a 1 a 2 . . . a N ] → [ S 1 S 2 . . . S N ] S(a): \begin{bmatrix} a_1 \\ a_2 \\ ... \\ a_N\end{bmatrix} \xrightarrow{} \begin{bmatrix} S_1 \\ S_2 \\ ... \\ S_N \end{bmatrix} S(a):⎣⎢⎢⎡a1a2...aN⎦⎥⎥⎤ ⎣⎢⎢⎡S1S2...SN⎦⎥⎥⎤ 并且对于每个元素,用的是如下公式 S j = e a j ∑ i = 1 N e a k , ∀ j ∈ 1... N S_j= \frac{e^{a_j}}{\sum_{i=1}^N e^{a_k}}, \forall_j \in 1...N Sj=∑i=1Neakeaj,∀j∈1...N 我们很容易看到, S j S_j Sj永远是正数(因为式中全是对 e e e求幂),并且由于在分母中包含了分子与其它正数求和,所以 0 < S j < 1 0 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |