常用激活函数和损失函数

/ob/z%E9%99%84%E4%BB%B6/%E5%B8%B8%E7%94%A8%E6%BF%80%E6%B4%BB%E5%87%BD%E6%95%B0%E5%92%8C%E6%8D%9F%E5%A4%B1%E5%87%BD%E6%95%B0.png

定义:

$$ \sigma(x) = \frac{1}{1+e^{-x}} $$

求导:

$$ \sigma' = \sigma(x)(1-\sigma(x)) $$

作为分类问题输出层的激活函数
将各个输出节点的输出值范围映射到[0, 1],并且约束各个输出节点的输出值的和为1

/ob/z%E9%99%84%E4%BB%B6/%E5%B8%B8%E7%94%A8%E6%BF%80%E6%B4%BB%E5%87%BD%E6%95%B0%E5%92%8C%E6%8D%9F%E5%A4%B1%E5%87%BD%E6%95%B0-1.png

定义:

$$ softmax(z_i) = \frac{e^{z_i}}{\sum ^{K}_{j=1}e^{z_j}} $$

求导:设$softmax(z_i) = p_i$

$$ \frac{\partial y_i}{\partial z_j} = \begin{cases} p_i(1-p_j) &j=i\\ -p_j\cdot p_i &j\neq i \end{cases} $$

softmax通常配合交叉熵损失函数使用

$$ p_i = softmax(z_i) = \frac{e^{z_i}}{\sum ^{K}_{j=1}e^{z_j}} $$

定义:$y_i$是真实样本标签值,分类问题里不是0就是1

$$ L=- \sum ^K_{i=1}y_i\log(p_i) $$

求导:

$$ \frac{\partial L}{\partial z_i} = p_i - y_i $$

求导非常简单,所以softmax和交叉熵一起用,反向传播时候计算就非常简单了