一、从生物神经元到人工神经元
讲神经网络,我习惯先从生物神经元讲起。为什么?因为人工神经元的灵感,说白了就来自我们的大脑。
1.1 生物神经元模型
人脑大约有860亿个神经元。每个神经元长什么样?我画个简图你就明白了:
生物神经元有四个关键部分:
- 树突:负责接收信号,就像天线
- 细胞体:处理信号,决定是否"激活"
- 轴突:传递输出信号
- 突触:连接两个神经元的接口
信号传递的过程是这样的:树突收到电信号 → 细胞体累加 → 超过阈值就放电 → 通过轴突传给下一个神经元。
1.2 人工神经元模型(MP模型)
1943年,McCulloch和Pitts提出了第一个人工神经元模型,简称MP模型。结构非常简单:
MP模型的数学表达式:
y = f( Σ(wᵢ · xᵢ) + b )
其中:
- xᵢ:输入信号
- wᵢ:权重(连接强度)
- b:偏置(阈值)
- f(·):激活函数
核心思想: 加权求和 → 加偏置 → 激活函数映射 → 输出
说白了,就是"输入×权重 + 偏置,然后决定要不要激活"。
二、激活函数——神经元的"开关"
激活函数决定了神经元要不要"兴奋"。没有激活函数,神经网络就只是个线性变换,堆再多层也没用。
2.1 Sigmoid 函数
Sigmoid 把输入映射到 (0, 1) 之间。公式:
σ(x) = 1 / (1 + e^(-x))
特点:
- 输出范围 (0, 1),适合做概率输出
- 平滑、可导
- 缺点: 两端梯度饱和,容易梯度消失
2.2 Tanh 函数
Tanh 是 Sigmoid 的升级版,输出范围 (-1, 1):
tanh(x) = (e^x - e^(-x)) / (e^x + e^(-x))
相比 Sigmoid:
- 零中心化,收敛更快
- 梯度范围更大
- 但梯度饱和问题依然存在
2.3 ReLU 函数
ReLU 是目前最常用的激活函数:
ReLU(x) = max(0, x)
为什么它这么火?
- 计算简单,就是取最大值
- 正区间梯度恒为1,不饱和
- 稀疏激活,效率高
2.4 Softmax 函数
Softmax 用于多分类的输出层。它把输出变成概率分布:
Softmax(zᵢ) = e^(zᵢ) / Σ(e^(zⱼ))
所有输出加起来等于1,每个值在 (0,1) 之间。说白了,就是"比大小,归一化"。
| 激活函数 | 输出范围 | 适用场景 | 梯度问题 |
|---|---|---|---|
| Sigmoid | (0, 1) | 二分类输出层 | 梯度饱和严重 |
| Tanh | (-1, 1) | RNN、某些隐藏层 | 仍有饱和 |
| ReLU | [0, +∞) | 隐藏层首选 | 负区间死亡 |
| Softmax | (0, 1) 和为1 | 多分类输出层 | 无 |
三、单层感知机与线性分类
3.1 感知机模型
1957年,Rosenblatt 提出了感知机。它其实就是单层 MP 模型 + 阶跃激活函数。
y = sign( Σ(wᵢ · xᵢ) + b )
其中 sign(x) = 1 if x ≥ 0
= -1 if x < 0
感知机做的事情很简单:在特征空间里画一条直线(或超平面),把数据分成两类。
3.2 线性可分与 XOR 问题
感知机只能解决线性可分问题。什么叫线性可分?就是能用一条直线把两类数据完全分开。
但有个经典问题——XOR(异或)问题:
输入: (0,0) → 输出 0
(0,1) → 输出 1
(1,0) → 输出 1
(1,1) → 输出 0
你想想看,在二维平面上,这四个点能用一条直线分开吗?不能。这就是感知机的致命缺陷。
历史教训: 1969年,Minsky 在《感知机》一书中证明了单层感知机无法解决 XOR 问题。这直接导致了 AI 的第一次寒冬。
解决办法?加隐藏层,用多层网络。这就是后来神经网络复兴的关键。
3.3 从感知机到现代神经网络
单层感知机的问题在于:
- 只能做线性分类
- 激活函数不可导(阶跃函数),无法用梯度下降
现代神经网络的改进:
- 用可导的激活函数(Sigmoid、ReLU 等)
- 增加隐藏层,变成多层网络
- 用反向传播算法训练
本章知识体系总览
这一章的内容就到这里。记住:生物神经元给了我们灵感,MP模型给了我们数学框架,激活函数给了我们非线性能力,而感知机则告诉我们——单层不够,需要更深。
公众号:蓝海资料掘金营,微信deep3321