一、为什么需要激活函数
通俗解释
想象一下你在玩乐高积木。你有各种不同颜色和形状的积木,你的任务是建造一个模型——也许是一辆车、一座房子,或者是一只动物。
如果你只允许每一块积木直接堆叠在另一块上面(想象一下只能垂直或水平地把它们排列在一起),你建造模型的能力会受到限制。就像一个没有激活函数的神经网络,不管你有多少块积木(神经元),你都只能按照一个规则构建东西——直线和矩形。
现在,让我们将乐高玩具中的连接点比作激活函数。突然之间,你可以旋转积木,使它们以精确的角度相互连接。你可以创建弯曲的结构、斜坡以及其他复杂的形状。这就像在神经网络中引入非线性激活函数,它允许你把简单的构件组合成复杂的、非线性的、多功能的结构。有了这种灵活性,你可以建造出更接近现实世界对象的复杂模型,就像一个神经网络可以学习识别复杂的模式和关系。
总结一下,乐高积木中的连接点(激活函数)是构建复杂模型的关键成分,正如神经网络中的激活函数是进行复杂任务的核心组件。没有它们,我们的建造和学习能力会受到严重的限制。
神经网络解释
要理解这个含义,首先需要认识到“线性组合”的概念。在数学中,一组变量的线性组合是指每个变量乘以一个系数并求和后的总和。对于两个变量x和y,它们的线性组合可以表示为ax + by,其中a和b是系数。
在神经网络的上下文中,如果我们没有使用任何激活函数(也称为线性激活函数),则每个神经元的输出只是其输入的加权和,这是一个线性方程。对于简单的单层网络(也就是感知机),如果我们有多个输入x1, x2, x3,…,xn,神经元的输出将是w1x1 + w2x2 + w3x3 + … + wnxn + b,这里的wi是权重,b是偏置项。
现在想象一个有多个这样的层的网络,每一层的输出都是前一层输出的加权和。如果第二层是线性的(即,没有非线性激活函数),那么第二层的输出仍然可以表示为第一层输出的线性组合。即:
第一层: z = W1x + b1
第二层: y = W2z + b2
将第一层的输