通俗易懂!详解Softmax及求导过程、Python实现、交叉熵

您所在的位置:网站首页 导数的通俗讲解 通俗易懂!详解Softmax及求导过程、Python实现、交叉熵

通俗易懂!详解Softmax及求导过程、Python实现、交叉熵

#通俗易懂!详解Softmax及求导过程、Python实现、交叉熵| 来源: 网络整理| 查看: 265

目录 前言 一、概率学解释 二、Softmax求导 1.向量微积分 2.Softmax的导数 三、Softmax的计算和稳定性 1.Python实现Softmax 三、Softmax层及其导数 四、Softmax 和交叉熵损失 五、注释

前言

本文是对一篇国外的讲解Softmax的文章的翻译。

Softmax函数的输入是一个N维的向量,向量元素是任意实数,输出也是一个N维的向量,但是有如下性质:

输出向量元素取值范围是(0, 1) 对输出向量的所有元素求和时,和为1

Softmax函数是这样一个映射 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):⎣⎢⎢⎡​a1​a2​...aN​​⎦⎥⎥⎤​ ​⎣⎢⎢⎡​S1​S2​...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=1N​eak​eaj​​,∀j​∈1...N 我们很容易看到, S j S_j Sj​永远是正数(因为式中全是对 e e e求幂),并且由于在分母中包含了分子与其它正数求和,所以 0 < S j < 1 0



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3