神经网络的基本组成
神经网络由多个相互连接的神经元组成,通常分为输入层、隐藏层和输出层。输入层接收原始数据,隐藏层负责特征提取和转换,输出层生成最终预测或分类结果。每一层的神经元通过权重和偏置参数连接,形成复杂的非线性映射关系。
神经元模型
单个神经元是神经网络的基本计算单元,其数学表达式为:
z = ∑ i = 1 n w i x i + b z = \sum_{i=1}^n w_i x_i + b z=i=1∑nwixi+b
其中 w i w_i wi 是权重, x i x_i xi 是输入, b b b 是偏置。神经元的输出通过激活函数 a = σ ( z ) a = \sigma(z) a=σ(z) 进行非线性变换,常见激活函数包括 Sigmoid、ReLU 和 Tanh。
前向传播过程
数据从输入层流向输出层的过程称为前向传播。每一层的计算可以表示为:
a ( l ) = σ ( W ( l ) a ( l − 1 ) + b ( l ) ) \mathbf{a}^{(l)} = \sigma(\mathbf{W}^{(l)} \mathbf{a}^{(l-1)} + \mathbf{b}^{(l)}) a(l)=σ(W(l)a(l−1)+b(l))
其中 W ( l ) \mathbf{W}^{(l)} W(l) 是第 l l l 层的权重矩阵, a ( l − 1 ) \mathbf{a}^{(l-1)} a(l−1) 是上一层的输出, b ( l ) \mathbf{b}^{(l)} b(l) 是偏置向量。
反向传播算法
通过计算损失函数对参数的梯度,反向传播算法从输出层向输入层逐层调整权重和偏置。梯度下降公式为:
W ← W − η ∂ L ∂ W \mathbf{W} \leftarrow \mathbf{W} - \eta \frac{\partial L}{\partial \mathbf{W}} W←W−η∂W∂L
其中 η \eta η 是学习率, L L L 是损失函数。链式法则用于高效计算各层梯度。
常见网络结构类型
全连接网络是最基础的架构,所有相邻层神经元两两相连。卷积神经网络(CNN)通过局部连接和权重共享处理网格数据,循环神经网络(RNN)则利用时序信息处理序列数据。Transformer 结构通过自注意力机制实现长距离依赖建模。
参数初始化方法
权重初始化影响训练效果,常用方法包括 Xavier 初始化:
W ∼ N ( 0 , 2 n i n + n o u t ) W \sim \mathcal{N}(0, \sqrt{\frac{2}{n_{in} + n_{out}}}) W∼N(0,nin+nout2 )
和 He 初始化:
W ∼ N ( 0 , 2 n i n ) W \sim \mathcal{N}(0, \sqrt{\frac{2}{n_{in}}}) W∼N(0,nin2 )
其中 n i n n_{in} nin 和 n o u t n_{out} nout 分别表示输入和输出的神经元数量。
正则化技术
为防止过拟合,常用技术包括 L2 正则化:
L r e g = L + λ 2 ∥ W ∥ 2 L_{reg} = L + \frac{\lambda}{2} \|\mathbf{W}\|^2 Lreg=L+2λ∥W∥2
Dropout 在训练时随机屏蔽部分神经元,Batch Normalization 则对层输入进行标准化处理。
优化算法
随机梯度下降(SGD)是基础优化方法,改进算法如 Momentum 引入历史梯度信息:
v t = γ v t − 1 + η ∇ θ J ( θ ) v_t = \gamma v_{t-1} + \eta \nabla_\theta J(\theta) vt=γvt−1+η∇θJ(θ)
Adam 结合了动量和自适应学习率,成为当前主流选择。学习率调度器可动态调整学习率提升训练效果。神经网络基本结构