激活函数(Activation Functions)
激活函数是神经网络中的非线性映射,它们被用来引入非线性因素,使得神经网络能够学习和执行非线性问题。没有激活函数,神经网络将只能解决线性问题。
- Sigmoid:将输入压缩到0和1之间,公式为 σ(x)=11+e−xσ(x)=1+e−x1。它的问题是在梯度下降过程中容易出现梯度消失的问题。
- Tanh:双曲正切函数,将输入压缩到-1和1之间,公式为 tanh(x)tanh(x)。它的形状与Sigmoid类似,但是输出值域是-1到1。
- ReLU(Rectified Linear Unit):公式为 max(0,x)max(0,x)。它解决了Sigmoid和Tanh在梯度下降中的梯度消失问题,计算效率更高,是目前最常用的激活函数之一。
- Leaky ReLU:是ReLU的变种,允许负数有一个非零的梯度,公式为 max(0.01x,x)max(0.01x,x)。
- Parametric ReLU (PReLU):Leaky ReLU的泛化,其中的斜率是作为一个参数学习的。
- Exponential Linear Unit (ELU):旨在解决ReLU在负值域中的非零均值问题,公式为 max(0,x)+λ(ex−1)max(0,x)+λ(ex−1)。
损失函数(Loss Functions)
损失函数(或代价函数)是用来评估模型的预测值与真实值之间差异的函数。它是一个需要最小化的函数,优化算法的目标就是找到最小化损失函数的参数。
- 均方误差 (MSE):用于回归问题,计算预测值与真实值之间差的平方的平均值。
- 交叉熵损失:用于分类问题,衡量两个概率分布之间的差异。
- Hinge Loss:用于支持向量机(SVM),用于最大化不同类别之间的边界。
- 平均绝对误差 (MAE):计算预测值与真实值之间差的绝对值的平均值。
- 对数损失:交叉熵损失的别称,特别用于多分类问题。
梯度下降(Gradient Descent)
梯度下降是最优化算法中用来最小化损失函数的一种方法。它通过迭代地更新参数来减少损失函数的值。
- 批量梯度下降 (Batch Gradient Descent):使用全部数据来计算梯度并更新参数。
- 随机梯度下降 (SGD):每次迭代只使用一个训练样本来更新参数。
- 小批量梯度下降 (Mini-batch Gradient Descent):每次迭代使用一小批样本来更新参数,这种方法在效率和准确度之间取得了平衡。
反向传播算法(Backpropagation)
反向传播是一种用于训练神经网络的算法,它通过计算损失函数关于网络参数的梯度来更新参数。这个过程包括以下步骤:
- 正向传播:输入数据通过网络,计算每层的输出,直到最后一层的输出(预测)。
- 计算损失:使用损失函数计算预测值和真实值之间的差异。
- 反向传播:利用链式法则计算损失函数关于每个参数的梯度。
- 参数更新:使用梯度下降算法更新网络的参数。
反向传播算法是深度学习中的关键,它使得神经网络能够自动和高效地学习复杂的函数映射。