![图片[1]-2.2.6 Softmax函数-大赛人网](https://www.dsrw.com/wp-content/uploads/2026/11/image-207.png)
Softmax将一个任意的实数向量转换为一个概率分布,确保输出值的总和为1,是二分类激活函数Sigmoid在多分类上的推广。Softmax常用于多分类问题的输出层,用来表示类别的预测概率。
Softmax会放大输入中较大的值,使得最大输入值对应的输出概率较大,其他较小的值会被压缩。即在类别之间起到了一定的区分作用。
![图片[2]-2.2.6 Softmax函数-大赛人网](https://www.dsrw.com/wp-content/uploads/2026/11/image-208.png)
Softmax
函数可以用代码实现如下:
def softmax(x):
return np.exp(x) / np.sum(np.exp(x))
考虑到x较大时,指数函数的值会非常大,容易溢出,可以改进为:
def softmax(x):
x = x - np.max(x) # 溢出对策
return np.exp(x) / np.sum(np.exp(x))
考虑到x为二维数组(矩阵)的情况,可以进一步写为:
def softmax(x):
if x.ndim == 2:
x = x.T
x = x - np.max(x, axis=0)
y = np.exp(x) / np.sum(np.exp(x), axis=0)
return y.T
x = x - np.max(x) # 溢出对策
return np.exp(x) / np.sum(np.exp(x))
2.2.7 其他常见激活函数
Identity(恒等函数)
![图片[3]-2.2.6 Softmax函数-大赛人网](https://www.dsrw.com/wp-content/uploads/2026/11/image-209.png)
Leaky ReLU(Leaky Rectified Linear Unit)
![图片[4]-2.2.6 Softmax函数-大赛人网](https://www.dsrw.com/wp-content/uploads/2026/11/image-210.png)
PReLU(Parametric Rectified Linear Unit)
![图片[5]-2.2.6 Softmax函数-大赛人网](https://www.dsrw.com/wp-content/uploads/2026/11/image-211.png)
RReLU(Randomized Leaky ReLU)
![图片[6]-2.2.6 Softmax函数-大赛人网](https://www.dsrw.com/wp-content/uploads/2026/11/image-212.png)
ELU(Exponential Linear Unit)
![图片[7]-2.2.6 Softmax函数-大赛人网](https://www.dsrw.com/wp-content/uploads/2026/11/image-213.png)
Swish(也称Sigmoid Linear Unit,SiLU)
![图片[8]-2.2.6 Softmax函数-大赛人网](https://www.dsrw.com/wp-content/uploads/2026/11/image-214.png)
Softplus
![图片[9]-2.2.6 Softmax函数-大赛人网](https://www.dsrw.com/wp-content/uploads/2026/11/image-215.png)
2.2.8 如何选择激活函数
- 隐藏层
- 首选ReLU,如果效果不好可尝试Leaky ReLU等。
- Sigmoid在隐藏层易导致梯度消失,应尽量避免。
- Tanh的输出均值为0,对中心化数据更友好,但仍可能引发梯度消失,仅适用于浅层网络。
- 输出层
- 二分类选择Sigmoid。
- 多分类选择Softmax。
- 回归默认选择Identity。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END















请登录后查看评论内容