卷积神经网络:原理、架构与实践方法
1. 非线性激活函数
在神经网络设计中,非线性激活函数至关重要。若没有非线性激活函数,神经网络只能计算输入的线性函数,这具有很大的局限性。而且,非线性激活函数的选择会对神经网络的训练速度产生重大影响。以下是几种常见的非线性激活函数:
- Sigmoid函数 :其定义为 $\sigma(x) = \frac{1}{1 + e^{-x}}$,$x \in R$。对于所有的 $x \in R$,有 $\sigma(x) \in (0,1)$,并且 $\sigma$ 是单调递增的,$\lim_{x \to \infty}\sigma(x) = 1$,$\lim_{x \to -\infty}\sigma(x) = 0$。这使得Sigmoid函数适合用于生成范围在 $[0,1]$ 的输出,如概率或归一化图像。然而,$\lim_{x \to \infty}\sigma’(x) = \lim_{x \to -\infty}\sigma’(x) = 0$,这意味着当输入 $x$ 远离0时,神经元会饱和,$\sigma(x)$ 关于 $x$ 的梯度会接近0,导致后续优化困难。因此,Sigmoid函数很少用于卷积神经网络(CNN)的中间层。
- Tanh函数 :定义为 $\tanh(x) = \frac{e^{x} - e^{-x}}{e^{x} + e^{-x}}$,$x \in R$。对于所有的 $x \in R$,$\tanh(x) \in (-1,1)$,且 $\tanh$ 单调递增,$\lim_{x \to \infty}\tanh(x) = 1$,$\lim_{x \to -\infty}\tan
超级会员免费看
订阅专栏 解锁全文
23

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



