激活函数总结
时间: 2025-04-21 12:46:30 浏览: 27
### 关于神经网络中的激活函数总结
#### 定义与作用
激活函数用于定义单个人工神经元的输出。当加权总输入值经过非线性变换后,得到的结果即为该神经元的最终输出[^3]。
#### 常见类型的激活函数及其特点
- **Sigmoid 函数**
Sigmoid 是一种常见的激活函数,其形式如下所示:
```python
import numpy as np
def sigmoid(x):
return 1 / (1 + np.exp(-x))
```
特点在于它能将实数值压缩至 $(0, 1)$ 范围内,在早期被广泛应用于二分类问题中。然而由于梯度消失等问题,现在较少单独使用此函数作为深层模型的主要激活机制。
- **Tanh 双曲正切函数**
Tanh 函数可以看作是改进版的 Sigmoid 函数,同样具备良好的平滑性和可导性质:
```python
def tanh(x):
return np.tanh(x)
```
输出范围位于 $[-1, 1]$ 之间,相比起原始版本拥有更强的表现力;不过也存在同样的收敛速度慢的问题。
- **ReLU 线性整流函数**
ReLU(Rectified Linear Unit)近年来成为最流行的激活选项之一,表达式非常简单直观:
```python
def relu(x):
return max(0,x)
```
对负数部分置零处理而保留正值不变,有效缓解了传统方法带来的梯度弥散现象,并加速训练过程。尽管如此,过度抑制可能导致某些节点永远处于不活跃状态——这就是所谓的“死区”效应。
- **Leaky ReLU 改良型 ReLU**
针对标准 ReLU 的缺陷进行了优化调整,允许少量斜率穿过死亡区域:
```python
alpha = 0.01
def leaky_relu(x):
return np.where(x >= 0, x, x * alpha)
```
这样既保持了原有优势又解决了潜在隐患,因此在实践中获得了广泛应用。
- **Softmax 函数**
Softmax 主要适用于多类别分类场景下最后一层的选择,能够把向量转换成概率分布的形式:
```python
def softmax(z):
e_z = np.exp(z - np.max(z))
return e_z / e_z.sum(axis=0)
```
各分量之和等于一,便于后续计算交叉熵损失等指标评估性能优劣程度。
综上所述,虽然理论上可以选择任意合适的激活模式来构建特定任务下的最优解空间,但在实际工程开发过程中往往倾向于采用单一或少数几种成熟的方案组合而成的整体架构设计思路。
阅读全文
相关推荐


















