前馈神经网络 (Feedforward Neural Networks, FNN)
信息单向传播,从输入层到隐藏层,最后到输出层
也可以叫前向传播。它由一个或多个层组成,每一层都包含多个神经元,并且各层之间是前向连接的,即信息只能从前一层流向后一层,不会形成回路
损失函数 (Loss Function)
用于评估神经网络的预测与实际值之间的差异,用于指导网络的训练过程
代价函数(Cost Function)或损失函数(Loss Function)是深度学习模型中用于衡量模型预测值与真实值之间差异的函数,是深度学习模型中重要的一部分。而在不同的任务和模型可能会选择不同的代价函数。以下是几种常用的代价函数及其特点:
- 均方误差(Mean Squared Error, MSE):
- 数学表达式: M S E = 1 N ∑ i = 1 N ( y i − y ^ i ) 2 \mathrm{MSE}=\frac{1}{N} \sum_{i=1}^{N}\left(y_{i}-\hat{y}_{i}\right)^{2} MSE=N1i=1∑N(yi−y^i)2
- 求导形式: ∂ M S E ∂ y ^ i = 2 N ( y ^ i − y i ) \frac{\partial \mathrm{MSE}}{\partial \hat{y}_{i}}=\frac{2}{N}\left(\hat{y}_{i}-y_{i}\right) ∂y^i∂MSE=N2(y^i−yi)
- 应用场景:回归问题,如房价预测等。
- 优点:易于计算和理解,对异常值敏感。
- 缺点:对异常值敏感,可能导致梯度爆炸或梯度消失。
- 交叉摘损失(Cross Entropy Loss):
一 二分类交叉熵:
- 数学表达式: C E = − 1 N ∑ i = 1 N ( y i log ( y ^ i ) + ( 1 − y i ) log ( 1 − y ^ i ) ) \mathrm{CE}=-\frac{1}{N} \sum_{i=1}^{N}\left(y_{i} \log \left(\hat{y}_{i}\right)+\left(1-y_{i}\right) \log \left(1-\hat{y}_{i}\right)\right) CE=−N1i=1∑N(yilog(y^i)+(1−yi)log(1−y^i))
- 求导形式: ∂ C E ∂ y ^ i = − 1 N ( y i y ^ i − 1 − y i 1 − y ^ i ) \frac{\partial \mathrm{CE}}{\partial \hat{y}_{i}}=-\frac{1}{N}\left(\frac{y_{i}}{\hat{y}_{i}}-\frac{1-y_{i}}{1-\hat{y}_{i}}\right) ∂y^i∂CE=−N1(y^iyi−1−y^i1−yi)
- 多分类交叉熵:
- 数学表达式: C E = − 1 N ∑ i = 1 N ∑ c = 1 C y i , c log ( y ^ i , c ) \mathrm{CE}=-\frac{1}{N} \sum_{i=1}^{N} \sum_{c=1}^{C} y_{i, c} \log \left(\hat{y}_{i, c}\right) CE=−N1i=1∑Nc=1∑Cyi,clog(y^i,c)
- 求导形式: ∂ C E ∂ y ^ i , c = − 1 N y i , c y ^ i , c \frac{\partial \mathrm{CE}}{\partial \hat{y}_{i, c}}=-\frac{1}{N} \frac{y_{i, c}}{\hat{y}_{i, c}} ∂y^i,c∂CE=−N1y^i,cyi,c
- 应用场景:分类问题,如图像分类、语音识别等。
- 优点:适用于分类问题,对异常值不敏感,能够更好地衡量分类结果的概率分布。
- 缺点:相对均方误差计算量较大。
- 对数损失(Log Loss) :
- 数学表达式: LogLoss = − 1 N ∑ i = 1 N ( y i log ( y ^ i ) + ( 1 − y i ) log ( 1 − y ^ i ) ) \operatorname{LogLoss}=-\frac{1}{N} \sum_{i=1}^{N}\left(y_{i} \log \left(\hat{y}_{i}\right)+\left(1-y_{i}\right) \log \left(1-\hat{y}_{i}\right)\right) LogLoss=−N1i=1∑N(yilog(y^i)+(1−yi)log(1−y^i))
- 求导形式: ∂ LogLoss ∂ y ^ i = − 1 N ( y i y ^ i − 1 − y i 1 − y ^ i ) \frac{\partial \operatorname{LogLoss}}{\partial \hat{y}_{i}}=-\frac{1}{N}\left(\frac{y_{i}}{\hat{y}_{i}}-\frac{1-y_{i}}{1-\hat{y}_{i}}\right) ∂y^i∂LogLoss=−N1(y^iyi−1−y^i1−yi)
- 应用场景:二分类问题。
- 优点:适用于二分类问题,与交叉熵损失类似。
- 缺点:相对均方误差计算量较大。
- Hinge Loss:
- 数学表达式: H i n g e L o s s = 1 N ∑ i = 1 N max ( 0 , 1 − y i ⋅ y ^ i ) HingeLoss =\frac{1}{N} \sum_{i=1}^{N} \max \left(0,1-y_{i} \cdot \hat{y}_{i}\right) HingeLoss=N1i=1∑Nmax(0,1−yi⋅y^i)
- 求导形式: ∂ HingeLoss ∂ y ^ i = { − 1 N y i , if y i ⋅ y ^ i < 1 0 , otherwise \frac{\partial \text { HingeLoss }}{\partial \hat{y}_{i}}=\left\{\begin{array}{ll}-\frac{1}{N} y_{i}, & \text { if } y_{i} \cdot \hat{y}_{i}<1 \\ 0, & \text { otherwise }\end{array}\right. ∂y^i∂ HingeLoss ={−N1yi,0, if yi⋅y^i<1 otherwise
- 应用场景:支持向量机(SVM)等分类问题。
- 优点:适用于二分类问题,对异常值不敏感
- 缺点:不适用于概率估计,只适用于线性分类器。
反向传播 (Backpropagation)
一种训练神经网络的算法,通过计算损失函数关于网络参数的梯度,并利用这些梯度来更新网络的权重
基本步骤:
- 计算输出层的误差: 首先,根据损失函数,计算损失函数对输出的导数,也就是所谓的误差。对于二分类问题,通常使用交叉熵损失函数,因此输出层的误差可以直接计算为预测值与真实标签的差异。
- 反向传播梯度: 将输出层的梯度向后传播到隐藏层,通过链式法则计算每个隐藏层的梯度。
- 更新参数: 使用梯度下降或其他优化算法来更新每个参数,以最小化损失函数。更新规则通常形式为:新参数值 = 旧参数值 - 学习率 * 参数梯度。
补充一个小点:
- 在反向传播中计算每个隐藏层的梯度无疑是难度最大的一个点,如果想手撕神经网络,弄清楚链式法则是关键点。调用深度学习框架的话就可以使用自动求导来简化我们的工作。
梯度下降 (Gradient Descent)
一种优化算法,用于最小化损失函数,通过调整网络的权重来减少预测误差
常用的优化器及其特点:
-
随机梯度下降(Stochastic Gradient Descent,SGD):
- 基本思想:在每次迭代中,随机选择一个样本来计算梯度并更新参数。
- 特点:简单易用,但可能会陷入局部最优点,收敛速度较慢。
- 参数:学习率(learning rate)。
-
带动量的随机梯度下降(SGD with Momentum):
- 基本思想:在更新参数时,考虑上一次梯度的影响,从而加速收敛。
- 特点:能够加速收敛,减少震荡。
- 参数:学习率(learning rate)、动量(momentum)。
-
自适应学习率优化器(Adaptive Learning Rate Optimizers):
- 基本思想:根据梯度的大小动态调整学习率,使得不同参数有不同的学习率。
- 常见的优化器:
- AdaGrad:根据参数的历史梯度调整学习率,适用于稀疏数据。
- RMSprop:使用指数加权移动平均来调整学习率,解决了AdaGrad学习率不断减小的问题。
- Adam:结合了动量和自适应学习率的优点,同时具有较好的性能。
-
带动态调整学习率的优化器(Learning Rate Schedulers):
- 基本思想:在训练过程中动态调整学习率,根据模型的训练情况来更新学习率。
- 常见的学习率调度方法:
- StepLR:在指定的步数上调整学习率。
- ReduceLROnPlateau:在验证集上表现不佳时减小学习率。
- CosineAnnealingLR:以余弦函数的形式调整学习率,周期性地降低学习率。
-
其他优化器:
- Adadelta:对AdaGrad的扩展,解决了学习率不断减小的问题。
- Nadam:Adam优化器的一种变种,结合了Nesterov动量和Adam的优点。