深度学习技术全解析:从基础到对抗训练
1. 非线性激活函数
传统神经网络(NNs)由于在网络训练阶段存在数值问题,大多局限于三层。这些问题主要源于多层反向传播过程中的梯度消失,而试图避免梯度消失又会导致梯度发散。在梯度消失和发散之间取得平衡是一项艰巨的任务,这使得神经网络的层数在几十年内都被限制在三层,也限制了神经网络在实际场景中的应用。
常见的激活函数有Sigmoid和tanh函数,其表达式分别为:
- Sigmoid函数:$\varphi_{\sigma}(x) = \frac{1}{1 + e^{-x}}$
- tanh函数:$\varphi_{t}(x) = \tanh(x) = \frac{e^{x} - e^{-x}}{e^{x} + e^{-x}}$
Sigmoid函数将实数变量$x$映射到$0 \leq \sigma(x) \leq 1$的范围,可解释为给定事件的概率,但非零平均值会在网络训练过程中产生偏差。tanh函数可看作是Sigmoid函数的缩放零均值版本,即$\varphi_{t}(x) = 2\varphi_{\sigma}(2x) - 1$。然而,这两个函数在$|x|$较大时存在强饱和区域,导数极低,会导致梯度消失,减慢甚至停止深度网络的训练。
为避免这一问题,引入了ReLU函数,定义为$\varphi_{r}(x) = \max(0, x)$。它不仅简单,还能简化梯度计算,避免正部分的饱和,加速训练过程。如今,ReLU是应用最广泛的激活函数,不过tanh也是不错的选择,而Sigmoid函数则用于需要$[0,1]$区间类似概率输出的场景。
2. 网络权重初始化
合适的权
超级会员免费看
订阅专栏 解锁全文
3469

被折叠的 条评论
为什么被折叠?



