从感知机到神经网络:激活函数是连接两者的桥梁
感知机回顾:二分类的利器
我们先回顾一下感知机的结构。如图3-2所示,感知机接收两个输入信号x₁和x₂,通过加权求和后,根据阈值决定输出0或1:
y={0(b+w1x1+w2x2⩽0)1(b+w1x1+w2x2>0) y = \begin{cases} 0 & (b + w_1 x_1 + w_2 x_2 \leqslant 0) \\ 1 & (b + w_1 x_1 + w_2 x_2 > 0) \end{cases}y={01(b+w1x1+w2x2⩽0)(b+w1x1+w2x2>0)
其中:
- b是偏置参数,控制神经元激活的难易程度
- w₁, w₂是权重参数,控制各信号的重要性
- x₁, x₂是输入信号
关键转变:引入激活函数
感知机的核心是一个阶跃函数,它像开关一样,输入超过阈值就输出1,否则输出0。这个函数可以用数学形式表达:
h(x)={0(x⩽0)1(x>0) h(x) = \begin{cases} 0 & (x \leqslant 0) \\ 1 & (x > 0) \end{cases}h(x)={01(x⩽0)(x>0)
于是感知机的计算可以分解为两步:
- 计算加权总和:a=b+w1x1+w2x2a = b + w_1 x_1 + w_2 x_2a=b+w1x1+w2x2
- 应用激活函数:y=h(a)y = h(a)y=h(a)
这个h(x)就是激活函数,它的作用是将输入信号的总和转换为输出信号。
神经网络的真正样貌
神经网络与感知机最大的区别就在于激活函数的选择。感知机使用阶跃函数,而神经网络使用更平滑、更复杂的激活函数。
让我们看看神经网络的典型结构(图3-1):
- 输入层:接收外部信息
- 隐藏层(中间层):内部处理,外界不可见
- 输出层:输出最终结果
注意命名规范:
- 本书中,输入层是第0层,第一个隐藏层是第1层,输出层是第2层
- 虽然看起来有3层,但只有2层有权重(输入层到隐藏层,隐藏层到输出层),所以这是"2层网络"
激活函数:神经网络的核心
在图3-4中,我们可以清晰地看到激活函数的计算过程:
每个神经元先计算输入信号的加权总和(节点a),然后通过激活函数h()转换为输出(节点y)。
重要概念澄清
感知机 vs 神经网络:
- 朴素感知机:单层网络,使用阶跃函数作为激活函数
- 多层感知机(神经网络):多层网络,使用sigmoid、ReLU等平滑激活函数
为什么激活函数如此重要?
- 引入非线性:没有激活函数,多层网络只是线性变换的叠加
- 决定神经元如何响应:不同的激活函数让神经元有不同的"性格"
- 实现复杂映射:使网络能够学习复杂的非线性关系
从感知机到神经网络的跨越
感知机就像一把简单的锤子,只能解决线性可分问题(如与、或、非)。但当问题变得复杂(如异或问题),简单的感知机就无能为力了。
神经网络通过两个关键改进解决了这个问题:
- 增加隐藏层:增加网络深度,提高表达能力
- 更换激活函数:使用可微分的平滑函数,使反向传播成为可能
展望
在接下来的文章中,我们将深入探讨:
- 常用的激活函数:sigmoid、tanh、ReLU等
- 这些激活函数的特性和适用场景
- 如何通过激活函数的选择优化神经网络性能
思考题:如果神经网络仍然使用阶跃函数作为激活函数,会有什么问题?为什么我们需要平滑的激活函数?
深度学习小贴士:激活函数是神经网络能够学习复杂模式的关键。选择合适的激活函数,往往能让模型性能大幅提升!
#深度学习 #神经网络 #感知机 #激活函数 #AI基础