1. 神经网络基础:从生物神经元到人工神经元
1.1 生物神经元的启发
1943年,McCulloch和Pitts首次提出用数学模型模拟生物神经元的工作机制。生物神经元由树突接收信号,细胞体整合信息,轴突传递电脉冲。当输入刺激超过阈值时,神经元会"激活"并向下游传递信号。这个特性直接启发了人工神经元的设计:
- 树突 → 输入向量x = (x₁, x₂,..., xₙ)
- 突触强度 → 权重向量w = (w₁, w₂,..., wₙ)
- 细胞体整合 → 加权求和 ∑wᵢxᵢ + b(b为偏置项)
- 激活阈值 → 激活函数f(z)
注意:偏置项b的引入至关重要,它相当于给决策平面增加了一个平移自由度,使得神经网络可以拟合不通过原点的函数。
1.2 人工神经元数学模型
单个神经元的计算过程可以用数学公式表示为:
code复制z = w₁x₁ + w₂x₂ + ... + wₙxₙ + b
a = f(z)
其中f(z)就是激活函数。早期的感知机使用阶跃函数作为激活函数:
code复制f(z) = 1 if z ≥ 0
0 otherwise
但这种硬阈值函数在训练时存在梯度消失问题(导数要么为0要么不存在),因此现代神经网络都采用平滑可导的激活函数。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 为什么需要多层神经网络?
2.1 单层网络的局限性
单层感知机(无隐藏层)只能解决线性可分问题,最经典的例子就是无法实现XOR逻辑运算。1969年Minsky和Papert在《Perceptrons》一书中严格证明了这一点,直接导致第一次AI寒冬。
数学上看,单层网络的输出是输入的线性变换:
code复制y = Wx + b
无论叠加多少层线性变换,最终效果等价于单层变换(因为线性变换的复合仍是线性变换)。
2.2 非线性激活的突破
1986年,Rumelhart等人提出反向传播算法,配合Sigmoid激活函数,使得训练多层网络成为可能。激活函数的非线性特性打破了线性组合的局限:
- Sigmoid:f(z) = 1/(1 + e⁻ᶻ)
- Tanh:f(z) = (eᶻ - e⁻ᶻ)/(eᶻ + e⁻ᶻ)
- ReLU:f(z) = max(0, z)
这些函数的共同特点是:
- 非线性:使网络可以逼近任意
