深度学习-激活函数和损失函数(图文讲解)
深度学习模型中,激活函数和损失函数是关键组件。激活函数(如ReLU、Sigmoid)为网络引入非线性能力,使模型能拟合复杂数据模式;损失函数(如MSE、交叉熵)则评估预测误差,指导参数优化。二者协同工作于前向传播和反向传播过程中,共同推动模型训练。不同类型的激活函数适用于不同网络层(如Softmax用于输出层),而损失函数的选择则取决于任务性质(回归/分类)。合理搭配二者对模型性能至关重要。
在深度学习中,激活函数为神经网络注入非线性能力以更好拟合复杂数据,损失函数衡量预测误差并指引优化方向,二者分别作用于前向传播和反向传播,协同推动模型训练。
激活函数 是神经网络中的非线性函数,用于在神经元之间引入非线性关系,使模型能够学习和表示复杂的数据模式,常见的激活函数有 Sigmoid、Tanh、ReLU 和 Leaky ReLU。
损失函数 是评估模型预测值与真实值之间的差异,通过最小化损失函数来优化模型参数,常见的损失函数有均方误差MSE、交叉熵损失Cross-Entropy Loss。

一、激活函数(Activation Function)
激活函数是神经网络中的非线性函数,用于在神经元之间引入非线性关系,从而使模型能够学习和表示复杂的数据模式。
如果神经网络没有像Relu这样的激活函数(也叫非线性激活函数),神经网络每层就只包含两个线性运算(仿射变换),即点积与加法:output = dot(input, W) + b。这样多个线性层堆叠后,其整体运算仍然是线性的。为了引入非线性因素,即激活函数。

Sigmoid和Tanh是早期激活函数,但易梯度消失。ReLU及其改进版(如Leaky ReLU等)解决了此问题,常用于隐藏层。Softmax则专用于多分类输出层,转输出为概率分布。

(1)Sigmoid激活函数
将输入值压缩到(0, 1)之间,常用于二分类问题的输出层。但存在梯度消失问题,且输出不以零为中心。

(2)Tanh激活函数
将输入值压缩到(-1, 1)之间,输出均值为0,更适合隐藏层。但同样存在梯度消失问题。
(3)ReLU激活函数
当输入大于0时,输出等于输入;当输入小于0时,输出为0。具有计算简单、梯度消失问题较轻的优点,是隐藏层常用的激活函数。但存在神经元死亡问题。
(4)Leaky ReLU激活函数
解决了ReLU在输入小于0时梯度为0的问题,允许小的梯度流过。
(5)Softmax激活函数
将输入向量中的每个元素映射到(0, 1)区间内,并且所有输出元素的和为1。用于多分类问题的输出层,将神经网络的输出转换为概率分布。

二、损失函数(Loss Function)
在深度学习中,损失函数则是评估模型预测值与真实值之间的差异,通过最小化损失函数来优化模型参数。
模型通过损失值评估预测性能,并据此指导优化方向。为了优化模型参数,神经网络采用梯度下降等优化算法,通过不断减少损失值,逐步调整模型参数。
在选择损失函数时,需考虑任务类型、数据分布以及特定需求,常见的损失函数类型包括均方误差和交叉熵损失等。
(1)均方误差(MSE Loss)
用于回归问题,计算预测值与真实值之间差的平方的平均值。

(2)交叉熵损失(Cross Entropy Loss)
用于分类问题,衡量模型预测概率分布与真实概率分布之间的差异。包括二分类交叉熵损失和多类别交叉熵损失。

更多推荐


所有评论(0)