激活函数与门控前馈网络
“ReLU 已过时”太宽泛;“只需掌握 ReLU、Sigmoid、Tanh”又明显落后。激活选择已经按架构、训练规模、数值精度和硬件分化。现代 Transformer 还常把普通两层 FFN 改成门控结构,这不只是更换一个逐元素函数。
逐元素激活
| 名称 | 定义或近似角色 | 优点 | 主要边界 |
|---|---|---|---|
| ReLU | 便宜、正半轴不饱和、产生精确零 | 负半轴梯度为零;零点不光滑 | |
| Leaky/PReLU | 给负半轴保留梯度 | 是新假设/参数;不保证更好 | |
| GELU | 平滑地按输入幅度缩放,BERT 等使用 | 计算/近似实现不同;不产生严格稀疏 | |
| SiLU/Swish | 平滑、允许小负值; 时常称 SiLU/Swish | 非单调区与 kernel/量化成本 | |
| Sigmoid | 门控或概率映射 | 大幅度饱和,不适合深层隐藏单元的通用默认 | |
| Tanh | 有界且零中心,常见于循环状态 | 两端饱和 |
是标准正态 CDF。GELU 常用 tanh 或 erf 近似,不同 kernel 在混合精度下可能有小差异。Swish 论文讨论可学习 ,而框架中的 SiLU 通常固定 ;文献常把二者近似同义,比较时必须写清实现。
为什么“更平滑”不等于“更先进”
平滑函数可改善某些优化轨迹和大规模训练结果,但收益与初始化、归一化、宽度、数据、优化器和 fused kernel 纠缠。ReLU 仍有三个实际反例:
- 卷积、轻量或量化部署中,简单 kernel 和精确零可能更重要;
- 小数据或小模型的误差常由数据与正则化主导;
- 一个稳定 ReLU 基线可以揭示复杂门控的收益是否只是参数增加。
因此“论文中的更高平均分”不能直接变成所有任务的默认。