在深度学习中,激活函数为神经网络注入非线性能力以更好拟合复杂数据,损失函数衡量预测误差并指引优化方向,二者分别作用于前向传播和反向传播,协同推动模型训练。
激活函数是神经网络中的非线性函数,用于在神经元之间引入非线性关系,使模型能够学习和表示复杂的数据模式,常见的激活函数有 Sigmoid、Tanh、ReLU 和 Leaky ReLU。损失函数则是评估模型预测值与真实值之间的差异,通过最小化损失函数来优化模型参数,常见的损失函数有均方误差MSE、交叉熵损失Cross-Entropy Loss。一、激活函数(Activation Function)
激活函数是神经网络中的非线性函数,用于在神经元之间引入非线性关系,从而使模型能够学习和表示复杂的数据模式。如果神经网络没有像Relu这样的激活函数(也叫非线性激活函数),神经网络每层就只包含两个线性运算(仿射变换),即点积与加法:output = dot(input, W) + b。这样多个线性层堆叠后,其整体运算仍然是线性的。为了引入非线性因素,即激活函数。Sigmoid和Tanh是早期激活函数,但易梯度消失。ReLU及其改进版(如Leaky ReLU等)解决了此问题,常用于隐藏层。Softmax则专用于多分类输出层,转输出为概率分布。将输入值压缩到(0, 1)之间,常用于二分类问题的输出层。但存在梯度消失问题,且输出不以零为中心。将输入值压缩到(-1, 1)之间,输出均值为0,更适合隐藏层。但同样存在梯度消失问题。当输入大于0时,输出等于输入;当输入小于0时,输出为0。具有计算简单、梯度消失问题较轻的优点,是隐藏层常用的激活函数。但存在神经元死亡问题。解决了ReLU在输入小于0时梯度为0的问题,允许小的梯度流过。将输入向量中的每个元素映射到(0, 1)区间内,并且所有输出元素的和为1。用于多分类问题的输出层,将神经网络的输出转换为概率分布。在深度学习中,损失函数则是评估模型预测值与真实值之间的差异,通过最小化损失函数来优化模型参数。模型通过损失值评估预测性能,并据此指导优化方向。为了优化模型参数,神经网络采用梯度下降等优化算法,通过不断减少损失值,逐步调整模型参数。在选择损失函数时,需考虑任务类型、数据分布以及特定需求,常见的损失函数类型包括均方误差和交叉熵损失等。用于回归问题,计算预测值与真实值之间差的平方的平均值。(2)交叉熵损失(Cross Entropy Loss)用于分类问题,衡量模型预测概率分布与真实概率分布之间的差异。包括二分类交叉熵损失和多类别交叉熵损失。