神经网络
概念
神经网络(Neural Network)是深度学习的核心计算模型,其设计灵感来源于生物神经系统。它由大量相互连接的神经元(节点)组成,通过调整连接权重来学习数据中的模式。
一个基本的前馈神经网络由三层组成:
- 输入层(Input Layer):接收原始数据
- 隐藏层(Hidden Layers):进行特征提取和变换(可有多层)
- 输出层(Output Layer):产生最终预测结果
核心组件
神经元
每个神经元执行两步操作:
- 加权求和:z = w₁x₁ + w₂x₂ + ... + wₙxₙ + b(w 为权重,b 为偏置)
- 激活函数:a = f(z),引入非线性
激活函数(Activation Function)
为神经网络引入非线性变换能力,否则多层网络等价于单层线性模型。
| 函数 | 公式 | 特点 |
|---|---|---|
| Sigmoid | σ(x) = 1/(1+e⁻ˣ) | 输出 0~1,易饱和导致梯度消失 |
| Tanh | tanh(x) | 输出 -1~1,零中心化,仍会饱和 |
| ReLU | max(0, x) | 计算简单,缓解梯度消失,最常用 |
| GELU | x·Φ(x) | Transformer 中广泛使用,比 ReLU 更平滑 |
| SwiGLU | Llama 等模型的标配激活函数 |
权重(Weight)和偏置(Bias)
- 权重:控制输入信号的重要程度,是模型学习的核心参数
- 偏置:允许神经元在输入全为零时也能激活
前向传播(Forward Propagation)
数据从输入层逐层计算,经过每一层的加权求和和激活函数,最终在输出层得到预测结果。
为什么神经网络能工作
神经网络通过反向传播算法不断调整权重,使预测结果逐渐逼近真实值。这个过程的本质是在高维空间中寻找一个损失函数的最小值点。
通用近似定理指出:一个包含单隐藏层的前馈网络,只要有足够多的神经元,就能以任意精度逼近任意连续函数。
面试常问
- 为什么需要激活函数?没有它会发生什么?
- ReLU 解决了什么问题?有什么缺点?
- 神经网络的"深度"和"宽度"分别指什么?哪个更重要?
