深度学习基础--损失函数

前三章分别介绍了线性回归、浅层神经网络和深度神经网络。这些都属于函数家族,能够实现从输入到输出的映射,其具体的函数取决于模型参数 ϕ\phiϕ。在训练这些模型时,我们的目标是找到能够为特定任务提供最优输入输出映射的参数。本章将详细阐述“最优映射”的含义。

要定义“最优映射”,首先需要一组训练数据集 { xi,yi}\{x_i, y_i\}{ xi,yi},即输入和输出的配对。损失函数(Loss Function)L[ϕ]L[\phi]L[ϕ] 能够返回一个数值,这个数值描述了模型预测 f(xi,ϕ)f(x_i, \phi)f(xi,ϕ) 与其对应的真实输出 yiy_iyi 之间的不匹配程度。在训练过程中,我们追求的是能最小化损失的参数值 ϕ\phiϕ,以使训练输入尽可能准确地映射到输出。例如,在第2章中,我们见到了一种损失函数——最小平方损失函数,适用于目标是实数 y∈Ry \in \mathbb{R}yR 的单变量回归问题。该函数通过计算模型预测 f(xi,ϕ)f(x_i, \phi)f(xi,ϕ) 与真实值 yiy_iyi 之间差异的平方和来进行计算。

本章还提出了一个框架,不仅证明了在实值输出场景下选择最小平方准则的适用性,还指导我们为其他类型的预测问题构建损失函数。我们将讨论包括二元分类(其中预测结果 y∈{ 0,1}y \in \{0, 1\}y{ 0,1} 属于两个类别中的一个)和多类别分类(预测结果 y∈{ 1,2,…,K}y \in \{1, 2, \ldots, K\}y{ 1,2,,K} 属于 KKK 个类别中的一个)在内的多种情形。在接下来的两章中,我们将探讨模型训练的过程,目标是找到能最小化这些损失函数的参数值。

5.1 最大似然

在本节中,我们将介绍构建损失函数的具体方法。设想一个计算输入 xxx 到输出的模型 f(x,ϕ)f(x, \phi)f(x,ϕ),其中 ϕ\phiϕ 是模型的参数。之前,我们认为模型直接输出预测结果 yyy。现在,我们改变思路,将模型视为计算给定输入 xxx 时,可能的输出 yyy 的条件概率分布 Pr(y∣x)Pr(y|x)Pr(yx)。这种损失函数的设计目的是使得每个训练输出 yiy_iyi 在由对应输入 xix_ixi 计算得到的分布 Pr(yi∣xi)Pr(y_i|x_i)Pr(yixi) 中具有较高的概率(见图 5.1)。

在这里插入图片描述
图 5.1 输出分布预测。a) 回归任务中,目标是基于训练数据 {xi,yi}(橙色点)从输入 x 预测出一个实数输出 y。对于每个输入值 x,机器学习模型预测输出 y ∈ R 的分布 P(y|x)(青色曲线展示了 x = 2.0 和 x = 7.0 时的分布)。损失函数的目的是使根据相应输入 xi 预测出的分布最大化观测到的训练输出 yi 的概率。b) 在分类任务中,为预测离散类别 y ∈ {1, 2, 3, 4},我们采用离散概率分布,模型因此针对 xi 的每个值预测 yi 的四个可能值的概率分布直方图。c) 在预测计数 y ∈ {0, 1, 2, ...} 和 d) 预测方向 y ∈ (−π, π] 的任务中,我们分别采用定义在正整数集和圆周域上的分布。

5.1.1 计算输出的分布

这引出了一个问题:模型 f(x,ϕ)f(x, \phi)f(x,ϕ) 如何转化为计算概率分布的形式。答案很简单。首先,我们需要选定一个定义在输出域 YYY 上的参数化概率分布 Pr(y∣θ)Pr(y|\theta)Pr(yθ)。接着,我们利用神经网络来计算该分布的一个或多个参数 θ\thetaθ

例如,假设预测域是实数集,即 y∈Ry \in \mathbb{R}yR。在这种情况下,我们可能选择单变量正态分布,它在 R\mathbb{R}R 上有定义。该分布由均值 μ\muμ 和方差 σ2\sigma^2σ2 所决定,因此 θ={ μ,σ2}\theta = \{\mu, \sigma^2\}θ={ μ,σ2}。机器学习模型可以用来预测均值 μ\muμ,而方差 σ2\sigma^2σ2 则可以视为一个待定的常数。

5.1.2 最大似然准则

模型现在针对每个训练输入 xix_ixi 计算不同的分布参数 θi=f(xi,ϕ)\theta_i = f(x_i, \phi)θi=f(xi,ϕ)。我们的目标是使每个训练输出 yiy_iyi 在其相应的分布 Pr(yi∣θi)Pr(y_i|\theta_i)Pr(yiθi) 下具有较高概率。因此,我们选择模型参数 ϕ\phiϕ,以最大化所有 III 个训练样本的联合概率:
ϕ^=argmaxϕ[∏i=1IPr(yi∣xi)]=argmaxϕ[∏i=1IPr(yi∣θi)]=argmaxϕ[∏i=1IPr(yi∣f(xi,ϕ))](5.1) \begin{align} \hat{\phi} &= argmax_{\phi} \left[ \prod_{i=1}^{I} Pr(y_i|x_i) \right] \\ &= argmax_{\phi} \left[ \prod_{i=1}^{I} Pr(y_i|\theta_i) \right] \\ &= argmax_{\phi} \left[ \prod_{i=1}^{I} Pr(y_i|f(x_i, \phi)) \right] \\ \end{align} \tag{5.1} ϕ^=argmaxϕ[i=1IPr(yixi)]=argmaxϕ[i=1IPr(yiθi)]=argmaxϕ[i=1IPr(yif(xi,ϕ))](5.1)

这个联合概率项反映的是参数的似然(Likelihood),因此方程 5.1 称为最大似然准则(Maximum Likelihood Criterion)[^1]。

这里我们基于两个假设。首先,我们假设所有数据点的输出 yiy_iyi 都服从相同的概率分布,即数据是同分布的。其次,我们认为给定输入的输出的条件分布 Pr(yi∣xi)Pr(y_i|x_i)Pr(yixi) 是相互独立的,因此整个训练数据集的似然可以表示为:

Pr(y1,y2,…,yI∣x1,x2,…,xI)=∏i=1IPr(yi∣xi)(5.2) Pr(y_1, y_2, \ldots , y_I|x_1, x_2, \ldots , x_I) = \prod_{i=1}^{I} Pr(y_i|x_i) \tag{5.2} Pr(y1,y2,,yIx1,x2,,xI)=i=1IPr(yixi)(5.2)

换言之,我们假定数据是独立同分布(i.i.d.)的。
在这里插入图片描述
图 5.2 对数变换。a) 对数函数是单调递增的,即若 z > z′,则 log z > log z′。因此,任何函数 g(z) 的最大值位置与 log g(z) 的最大值位置相同。b) 函数 g(z)。c) 该函数的对数 log g(z)。g(z) 上所有正斜率的位置在经过对数变换后依然保持正斜率,负斜率的位置同样保持负斜率。最大值位置不变。

5.1.3 最大化对数似然

尽管最大似然准则(方程 5.1)理论上有效,但在实际应用中并不方便。每个项 Pr(yi∣f(xi,ϕ))Pr(y_i|f(x_i, \phi))Pr(yif(xi,ϕ)) 的值可能很小,导致这些项的乘积极小,难以用有限精度算法精确表示。幸运的是,我们可以通过最大化似然的对数来解决这个问题:

ϕ^=argmaxϕ[∏i=1IPr(yi∣f(xi,ϕ))]=argmaxϕ[log⁡∏i=1IPr(yi∣f(xi,ϕ))]=argmaxϕ[∑i=1Ilog⁡Pr(yi∣f(xi,ϕ))](5.3) \begin{align} \hat{\phi} &= argmax_{\phi} \left[ \prod_{i=1}^{I} Pr(y_i|f(x_i, \phi)) \right] \\ &= argmax_{\phi} \left[ \log \prod_{i=1}^{I} Pr(y_i|f(x_i, \phi)) \right] \\ &= argmax_{\phi} \left[ \sum_{i=1}^{I} \log Pr(y_i|f(x_i, \phi)) \right] \end{align} \tag{5.3} ϕ^=argmaxϕ[i=1IPr(yif(xi,ϕ))]=argmaxϕ[logi=1IPr(yif(xi,ϕ))]=argmaxϕ[i=1IlogPr(yif(xi,ϕ))](5.3)

由于对数是单调递增函数,对数似然准则与原始最大似然准则在数学上是等价的。这意味着,提高对数似然准则的同时,也就提高了最大似然准则。因此,两种准则的最大值位置是相同的,最优的模型参数 ϕ^\hat{\phi}ϕ^ 在两种情况下都是一致的。同时,对数似然准则通过求和而非乘积,避免了精度问题。

5.1.4 最小化负对数似然

通常,模型拟合问题是以最小化损失的方式来定义的。为了将最大对数似然准则转换为一个最小化问题,我们通过乘以负一得到负对数似然准则:

ϕ^=argminϕ[−∑i=1Ilog⁡Pr(yi∣f(xi,ϕ))]=argminϕ[L[ϕ]](5.4) \hat{\phi} = argmin_{\phi} \left[ - \sum_{i=1}^{I} \log Pr(y_i|f(x_i, \phi)) \right] = argmin_{\phi} [ L[\phi] ] \tag{5.4} ϕ^=argminϕ[i=1IlogPr(yif(xi,ϕ))]=argminϕ[L[ϕ]](5.4)
这就构成了最终的损失函数 L[ϕ]L[\phi]L[ϕ]

5.1.5 推断

如今,网络不再直接预测输出 yyy,而是确定了一个关于 yyy 的概率分布。在进行推断时,我们一般需要一个具体的估计值而不是整个分布,因此我们选择分布的最大值作为预测:

y^=argmaxy[Pr(y∣f(x,ϕ))](5.5) \hat{y} = argmax_y [Pr(y|f(x, \phi))] \tag{5.5} y^=argmaxy[Pr(yf(x,ϕ))](5.5)
(5.5)

我们通常可以根据模型预测的分布参数 θ\thetaθ 来确定这个估计值。例如,在单变量正态分布中,最大值出现在均值 μ\muμ 处。

5.2 构建损失函数的步骤

根据最大似然方法,针对训练数据 { xi,yi}\{x_i, y_i\}{ xi,yi} 构建损失函数的步骤如下:

  1. 选定一个适合预测结果 yyy 的概率分布 Pr(y∣θ)Pr(y|\theta)Pr(yθ),并确定其分布参数 θ\thetaθ
  2. 设定机器学习模型 f(x,ϕ)f(x, \phi)f(x,ϕ) 来预测这些参数中的一个或多个,即 θ=f(x,ϕ)\theta = f(x, \phi)θ=f
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值