45、激活函数 - 为什么非线性这么重要
本节讨论了神经网络中非线性的必要性和作用。通过分析多个线性关系叠加仍为线性关系的事实,解释了卷积算法作为线性操作可能导致模型退化为简单线性模型的局限。因此,在神经网络中引入非线性因素(如激活函数)至关重要。文章提到在卷积层后通常会增加非线性的激活层(如ReLU),以使模型能够处理复杂的任务并避免数学上的局限。
在本节中,我们将深入探讨神经网络中的激活函数这一核心概念.在此之前,请先了解非线性这一基本概念.
看一个基础知识:** 线性函数的叠加,我们初中学过的知识点** 。
考虑一个线性函数y = kx + b的形式,在其图像中可观察到变量间的关系结构。该函数的图像呈现为下述形式:一条直线。这表明变量 y 与变量 x 之间呈现线性关系。

当存在另一个数学表达式 z = hy + d 时,则可以通过如下所述的线性转换使得变量 z 和 x 同样呈现出数学表达式的关系。
z = hy + d
= z(kx + b) + d
= zk x + zb + d
= zk(x) + (zb + d)
令 zk = K, zb + d = B,那么 z 和 x 的关系就可以写出 z = Kx + B
所以,z 和 x 同样是线性关系。
这里想说明的一个原理是:多个线性关系的叠加作用,在叠加之后的结果仍然是属于线性空间的;换句话说,在叠加作用下,它无法成为非线性的。
在神经网络领域中,在我们了解深度学习模型时会遇到卷积操作这一重要概念。其核心计算机制可由以下数学表达式表示:y = x * w(其中x代表输入数据,w为权重参数)。值得注意的是,在这个过程中, 符号*标识卷积操作的作用方式。
那么x * w 是线性关系还是非线性关系呢?不好意思,就是线性关系。
由于卷积的核心计算采用的是乘累加方式...这一概念在之前的讨论中反复强调...由此可知,卷积算法具有线性特性。
假设神经网络是由一系列的卷积运算依次堆叠而成。若未引入必要的非线性激活函数,在数学建模的过程中,这样的深度堆叠将无法维持复杂的特征提取能力。从而使得多层卷积架构变得毫无价值。
层数再多也没用,因为数学上等价于一个卷积,看下图解释的更清楚一些。

这就是原因所在。
鉴于此,在现代深度学习框架中常见的神经网络架构都必须引入非线性的数学特性以实现对任何可能的复杂动态行为的精确建模和预测分析。
通过该模型可以实现复杂的任务处理,并无需担心其仅仅是基于线性假设的简单数学模型。
怎么引入非线性因素呢?
在卷积层之后普遍采用添加非线性激活层的方法,在许多卷积算法设计中常见做法就是采用relu函数作为激活函数的选择原因
由于 relu 函数属于非线性函数的一种,在下文将详细介绍该函数的具体特性与应用。在此章节中,请理解并掌握神经网络为何需要使用非线性和其重要性就可。
