邱锡鹏《神经网络与深度学习》学习笔记。

1.人工智能基础概念

人工智能
简单讲,人工智能就是让机器的行为看起来跟人所表现出来的智能行为一样。
‘智能’一词比较难以定义,因此 1950 年图灵提出了著名的图灵测试:一个人在不接触 对方的情况下,通过一种特殊的方式和对方进行一系列的问答.如果在相当长时间内,他无法根据这些问题判断对方是人还是计算机,那么就可以认为这个计算机是智能的。

机器学习 Machine Learning,ML
ML 是指从有限的观测数据中学习出具有一般性的规律,并利用这些规律对位置数据进行预测的方法。

传统的机器学习主要关注如何学习一个预测模型.一般需要首先将数据表示为一组特征(Feature),特征的表示形式可以是连续的数值、离散的符号或其他形式.然后将这些特征输入到预测模型,并输出预测结果。特征提取一般都需要人工干预完成,利用人类的经验来选取好的特征, 并最终提高机器学习系统的性能.因此,很多的机器学习问题变成了特征工程 (Feature Engineering)问题。

机器学习的三要素:模型、学习准则、优化算法。

表示学习
为了提高机器学习系统的准确率,我们就需要将输入信息转换为有效的特征,或者更一般性地称为表示(Representation).如果有一种算法可以自动地学习出有效的特征,并提高最终机器学习模型的性能,那么这种学习就可以叫作表示学习(Representation Learning)。

在表示学习中,有两个核心问题:一是“什么是一个好的表示”;二是“如何学 习到好的表示”.

语义鸿沟
表示学习的关键是解决语义鸿沟(Semantic Gap)问题.语义鸿沟问 题是指输入数据的底层特征和高层语义信息之间的不一致性和差异性.

深度学习
深度学习是机器学习的一个子问题,其主要 目的是从数据中自动学习到有效的特征表示。所谓“深度”是指原始数据进行非线性特征转 换的次数.
深度学习是将原始的数据特征通过多步的特征转换得到高层特征表示,并进一步输入到预测函数得到最终结果.
在这里插入图片描述

深度学习需要解决的关键问题是贡献度分配问题(Credit Assignment Problem,CAP),即一个系统中不同的组件(component)或其参数对最终系统输出结果的贡献或影响.

目前深度学习采用的模型主要是神经网络模型,其主要原因是神经网络模型可以使用误差反向传播算法,从而可以比较好的解决贡献度分配问题。

端到端学习
End-to-End Learning),也称端到端训练,是指在学习过程中不进行分模块或分阶段训练,直接优化任务的总体目标.

人工神经网络
简称神经网络。现在机器学习领域,神经网络是指由很多人工神经元构成的网络结构模型,这些人工神经元之间的连接强度是可学习的参数。它从机理和功能上模拟了人脑神经网络。

深度学习所要解决的问题是贡献度分配问题, 而神经网络恰好是解决这个问题的有效模型.

1980 年左右,反向传播算法有效地解决了多层神经网络的学习问题,并成为最为流行的神经网络学习算法.

仍神经网络可以用作一个通用的函数逼近器(一个两层的神经网络可以逼近任意的函数), 因此我们可以将人工神经网络看作一个可学习的函数。理论上,只要有足够的训练数据和神经元数量,人工神经网络就可以学到 很多复杂的函数。我们可以把一个人工神经网络塑造复杂函数的能力称为网络容量(Network Capacity),这与可以被储存在网络中的信息的复杂度以及数量相关。

三种主要的神经网络模型:前馈神经网络、卷积神经网络、循环神经网络。

2. 机器学习

机器学习就是让计算机从观测数据(样本)中进行自动学习,得到某种知识(或规律),并利用学到的规律(模型)对未知或无法观测的数据进行预测。

早期工程领域,机器学习也经常称为模式识别(Pattern Recognition, PR),但模式识别更偏向于具体的应用任务,比如光学字符识别、语音识别、人脸识别等.现在机器学习的概念逐渐替代模式识别,成为这一类问题及其解决方法的统称.

2.1 基本概念

样本、特征、标签、模型、学习算法等。

我们从市场上随机选取一些芒果,列出每个芒果的特征(Feature) , 包括颜色、大小、形状、产地、品牌,以及我们需要预测的标签(Label,也可以称为属性 Attribute).标签可以 是连续值(比如关于芒果的甜度、水分以及成熟度的综合打分),也可以是离散值(比如“好”“坏”两类标签).这里,每个芒果的标签可以通过直接品尝来获得, 也可以通过请一些经验丰富的专家来进行标记.

我们可以将一个标记好特征以及标签的芒果看作一个样本(Sample),也 经常称为示例(Instance).

一组样本构成的集合称为数据集(Data Set)。一般将数据集分为两部分: 训练集测试集。训练集(Training Set)中的样本是用来训练模型的,也叫训练样本(Training Sample),而测试集(Test Set)中的样本是用来检验模型好坏的,也叫测试样本(Test Sample)。

通常用一个 𝐷 维向量 x = [ x 1 , x 2 , . . . x D ] T \boldsymbol{x}=[x_1,x_2,...x_D]^T x=[x1,x2,...xD]T表示一个芒果的所有特征构成的向量,称为特征向量(Feature Vector),其中每一维表示一个特征.而芒果 的标签通常用标量 y y y来表示。

训练集中的每个样本都是独立同分布的(Identically and Independently Distributed,IID),即独立地从相同的数据分布中抽取的。

给定训练集 D \mathcal{D} D,我们希望让计算机自动找到一个“最优”的函数 f ∗ ( x ) f^{*}(\boldsymbol{x}) f(x)来近似每个样本的特征向量 x \boldsymbol{x} x和标签 y y y之间的真实映射关系。

如何寻找这个“最优”的函数 f ∗ ( x ) f^{*}(\boldsymbol{x}) f(x)是机器学习的关键,一般需要通过学习算法(Learning Algorithm, 或称为学习器,Learner) A \mathcal{A} A 来完成.这个寻找过程通常称为学习(Learning) 或训练(Training)过程。

2.2 机器学习的三个基本要素

三个基本要素:模型、学习准则、优化算法.

2.2.1 模型

假定 x \boldsymbol{x} x y y y之间的关系可以通过一个未知的真实映射函数 y = g ( x ) y=g(\boldsymbol{x}) y=g(x) 或真实条件概率分布 p r ( y ∣ x ) p_r(y|\boldsymbol{x}) pr(yx)来描述。机器学习的目标是找到一个模型来近似真实映射函数 g ( x ) g(\boldsymbol{x}) g(x)或真实条件概率分布 p r ( y ∣ x ) p_r(y|\boldsymbol{x}) pr(yx)

由于我们不知道真实的映射函数 g ( x ) g(\boldsymbol{x}) g(x)或条件概率分布 p r ( y ∣ x ) p_r(y|\boldsymbol{x}) pr(yx)的具体形式, 因而只能根据经验来假设一个函数集合 F \mathcal{F} F ,称为假设空间(Hypothesis Space)
假设空间通常为一个参数化的函数族
F = { f ( x ; θ ) ∣ θ ∈ R n } \mathcal{F}=\left\{f(\boldsymbol{x} ; \theta) \mid \theta \in \mathbb{R}^{n}\right\} F={f(x;θ)θRn}
其中 f ( x ; θ ) f(\boldsymbol{x} ; \theta) f(x;θ) 是参数为 θ \theta θ 的函数,也称为模型(Model), n n n 为参数的数量。

模型分为线性模型和非线性模型。

2.2.2 学习准则

一个好的模型 f ( x ; θ ∗ ) f(\boldsymbol{x} ; \theta^{*}) f(x;θ) 应该在所有的 ( x , y ) (\boldsymbol{x} ,y) (xy) 的可能取值上都与真实映射函数一致。

模型的好坏可以通过期望风险(Expected Risk) R ( \mathcal{R}( R(来衡量:
R ( θ ) = E ( x , y ) ∼ p r ( x , y ) [ L ( y , f ( x ; θ ) ) ] \mathcal{R}(\theta)=\mathbb{E}_{(x, y) \sim p_{r}(x, y)}[\mathcal{L}(y, f(x ; \theta))] R(θ)=E(x,y)pr(x,y)[L(y,f(x;θ))]
其中, p r ( y ∣ x ) p_r(y|\boldsymbol{x}) pr(yx)为真实的数据分布, L ( y , f ( x ; θ ) ) \mathcal{L}(y, f(x ; \theta)) L(y,f(x;θ))为损失函数,用来量化两个变量之间的差异。

2.2.2.1 损失函数 Loss Function

损失函数是一个非负实数函数,用来量化模型预测和真实标签之间的差异.

0-1 损失函数
L ( y , f ( x ; θ ) ) = { 0  if  y = f ( x ; θ ) 1  if  y ≠ f ( x ; θ ) \mathcal{L}(y, f(\boldsymbol{x} ; \theta))=\left\{\begin{array}{ll}0 & \text { if } y=f(\boldsymbol{x} ; \theta) \\ 1 & \text { if } y \neq f(\boldsymbol{x} ; \theta)\end{array}\right. L(y,f(x;θ))={01 if y=f(x;θ) if y=f(x;θ)
缺点:不连续且导数为 0,难以优化。

交叉熵损失函数 Cross-Entropy Loss Function
一般用于分类问题。

对于两个概率分布,一般可以用交叉熵来衡量它们的差异.标签的真实分布 y \boldsymbol{y} y和模型预测分布 f ( x ; θ ) f(\boldsymbol{x} ; \theta) f(x;θ)之间的交叉熵为:
L ( y , f ( x ; θ ) ) = − y ⊤ log ⁡ f ( x ; θ ) \mathcal{L}(\boldsymbol{y}, f(\boldsymbol{x} ; \theta))=-\boldsymbol{y}^{\top} \log f(\boldsymbol{x} ; \theta) L(y,f(x;θ))=ylogf(x;θ)
对于分类问题,标签向量 y \boldsymbol{y} y是一个只有第k维的值为 1,其余元素的值都为 0 的one-hot 向量。因此上式也可以写为:
L ( y , f ( x ; θ ) ) = − log ⁡ f y ( x ; θ ) \mathcal{L}(y, f(\boldsymbol{x} ; \theta))=-\log f_{y}(\boldsymbol{x} ; \theta) L(y,f(x;θ))=logfy(x;θ)
其中 f y ( x ; θ ) f_{y}(\boldsymbol{x} ; \theta) fy(x;θ)可以看做真实类别 y y y的似然函数。因此,交叉熵损失函数也就是负对数似然函数(Negative Log-Likelihood)。

Hinge 损失函数
用于二分类问题。

2.2.2.2 风险最小化准则

一个好的模型应当有一个比较小的期望误差,但由于不知道真实的数据分布和映射函数,实际上无法计算其期望风险。给定训练集 D = { ( x ( n ) , y ( n ) ) } n = 1 N \mathcal{D}=\left\{\left(x^{(n)}, y^{(n)}\right)\right\}_{n=1}^{N} D={(x(n),y(n))}n=1N,我们可以计算的是经验风险(Empirical Risk),即在训练集上的平均损失:
R D e m p ( θ ) = 1 N ∑ n = 1 N L ( y ( n ) , f ( x ( n ) ; θ ) ) \mathcal{R}_{\mathcal{D}}^{e m p}(\theta)=\frac{1}{N} \sum_{n=1}^{N} \mathcal{L}\left(y^{(n)}, f\left(\boldsymbol{x}^{(n)} ; \theta\right)\right) RDemp(θ)=N1n=1NL(y(n),f(x(n);θ))
因此,一个切实可行的学习准则是找到一组参数 θ ∗ \theta^* θ使得经验风险最小,即
θ ∗ = arg ⁡ min ⁡ θ R D e m p ( θ ) \theta^{*}=\underset{\theta}{\arg \min } \mathcal{R}_{\mathcal{D}}^{e m p}(\theta) θ=θargminRDemp(θ)
这就是经验风险最小化(Empirical Risk Minimization,ERM)准则。

过拟合:根据大数定理可知,当训练集大小趋向于无穷大时,经验风险就趋向于期望风险.然而通常情况下,我们无法获取无限的训练样本。
经验风险最小化原则很容易导致模型在训练集上错误率很低,但是在未知数据上错误率很高。这就是所谓的过拟合(Overfitting)。

过拟合问题往往是由于训练数据少噪声以及模型能力强等原因造成的。为了解决过拟合问题, 一般在经验风险最小化的基础上再引入参数的正则化 (Regularization)来限制模型能力,使其不要过度地最小化经验风险.这种准则就是结构风险最小化(Structure Risk Minimization,SRM)准则:

θ ∗ = arg ⁡ min ⁡ θ R D s t r u c t ( θ ) = arg ⁡ min ⁡ θ R D e m p ( θ ) + 1 2 λ ∥ θ ∥ 2 = arg ⁡ min ⁡ θ 1 N ∑ n = 1 N L ( y ( n ) , f ( x ( n ) ; θ ) ) + 1 2 λ ∥ θ ∥ 2 \begin{aligned} \theta^{*} &=\underset{\theta}{\arg \min } \mathcal{R}_{\mathcal{D}}^{s t r u c t}(\theta) \\ &=\underset{\theta}{\arg \min } \mathcal{R}_{\mathcal{D}}^{e m p}(\theta)+\frac{1}{2} \lambda\|\theta\|^{2} \\ &=\underset{\theta}{\arg \min } \frac{1}{N} \sum_{n=1}^{N} \mathcal{L}\left(y^{(n)}, f\left(x^{(n)} ; \theta\right)\right)+\frac{1}{2} \lambda\|\theta\|^{2} \end{aligned} θ=θargminRDstruct(θ)=θargminRDemp(θ)+21λθ2=θargminN1n=1NL(y(n),f(x(n);θ))+21λθ2

其中 ∥ θ ∥ \|\theta\| θ L 2 L_2 L2范数的正则化项,用来减少参数空间,避免过拟合; λ \lambda λ用来控制正则化的强度。

正则化项也常用 L 1 L_1 L1范数, L 1 L_1 L1范数会使得参数有一定稀疏性。从贝叶斯学习的角度来讲,正则化是引入了参数的先验分布,使其不完全依赖训练数据。

和过拟合相反的一个概念是欠拟合(Underfitting), 即模型不能很好地拟合训练数据,在训练集上的错误率比较高。欠拟合一般是由于模型能力不足造成的。

总之,机器学习中的学习准则并不仅仅是拟合训练集上的数据,同时也要使得泛化错误最低。以便更好地对未知的样本进行预测。

2.2.3 优化算法

确定了训练集、假设空间和学习准则后,如何找到最优的模型 f ( x , θ ∗ ) f\left(\boldsymbol{x}, \theta^{*}\right) f(x,θ)就成了一个最优化(Optimization)问题。机器学习的训练过程其实就是最优化问题的求解过程。

参数与超参数
模型 f ( x , θ ∗ ) f\left(\boldsymbol{x}, \theta^{*}\right) f(x,θ)中的参数 θ \theta θ称为模型的参数,这类参数可以通过优化算法进行学习。此外还有一类参数是用来定义模型结构或优化策略的,这类参数叫作超参数 (Hyper-Parameter),一般需要自己调节。
常见的超参数包括:项的系数、神经网络的层数、支持向量机中的核函数等。超参数优化是机器学习的 一个经验性很强的技术,通常是按照人的经验设定,或者通过搜索的方法对一组 超参数组合进行不断试错调整。

2.2.3.1 梯度下降法

很多模型(比如神经网络)的优化目标是非凸的,只能找到局部最优解。

在机器学习中,最简单、常用的优化算法就是梯度下降法, 即首先初始化参数 θ 0 \theta_{0} θ0,然后按下面的迭代公式来计算训练集 D \mathcal{D} D上风险函数的最小值:
θ t + 1 = θ t − α ∂ R D ( θ ) ∂ θ = θ t − α 1 N ∑ n = 1 N ∂ L ( y ( n ) , f ( x ( n ) ; θ ) ) ∂ θ \begin{aligned} \theta_{t+1} &=\theta_{t}-\alpha \frac{\partial \mathcal{R}_{\mathcal{D}}(\theta)}{\partial \theta} \\ &=\theta_{t}-\alpha \frac{1}{N} \sum_{n=1}^{N} \frac{\partial \mathcal{L}\left(y^{(n)}, f\left(\boldsymbol{x}^{(n)} ; \theta\right)\right)}{\partial \theta} \end{aligned} θt+1=θtαθRD(θ)=θtαN1n=1NθL(y(n),f(x(n);θ))
其中, θ t \theta_{t} θt为第 t 次迭代的参数值, α \alpha α为搜索步长,一般称为学习率(Learning Rate)。

提前停止
在梯度下降训练的过程中,由于过拟合的原因,在训练样本上收敛的参数, 并不一定在测试集上最优。因此,有时候会使用验证集(Validation Set)来进行模型选择。在每次迭代时,把新得到的模型在验证集上进行测试,并计算错误率,如果验证集上的错误率不再下降,就停止迭代,这种策略叫提前停止(Early Stop)。

2.2.3.2 随机梯度下降法

上述梯度下降法中,目标函数是整个训练集上的风险函数,这种方式称为批量梯度下降法(Batch Gradient Descent,BGD)。批量梯度下降法在每次迭代时需要计算每个样本上损失函数的梯度并求和,计算量很大。

为了减小每次迭代的计算复杂度,我们可以在每次迭代时只随机采集一个样本,计算这个样本损失函数的梯度并更新参数,即随机梯度下降法 (Stochastic Gradient Descent,SGD)。当经过足够次数的迭代时,随机梯度下降也可以收敛到局部最优解。

由于随机梯度下降实现简单,收敛速度也非常快,因此使用非常广泛。随机梯度下降相当于在批量梯度下降的梯度上引入了随机噪声,在非凸优化问题中,随机梯度下降更容易逃离局部最优点。

2.2.3.3 小批量梯度下降法

随机梯度下降的一个缺点是无法充分利用计算机的并行计算能力。小批量梯度下降法(mini-batch Gradient Descent)是批量梯度下降和随机梯度下降的折中。每次迭代时,随机选取一小部分训练样本来计算梯度并更新参数。

在实际应用中,小批量随机梯度下降法有收敛快、计算开销小的优点,因此 逐渐成为大规模的机器学习中的主要优化算法。

2.3 机器学习算法的类型

按照训练样本提供的信息以及反馈方式的不同,将机器学习分为:监督学习、无监督学习、强化学习。

2.3.1 监督学习 Supervised Learning

如果机器学习的目标是建模样本的特征 x \boldsymbol{x} x和标签 y y y之间的关系: y = f ( x ; θ ) y=f(\boldsymbol{x} ; \theta) y=f(x;θ) p ( y ∣ x ; θ ) p(y|\boldsymbol{x} ; \theta) p(yx;θ),并且训练集中每个样本都有标签,那么这类机器学习又称为监督学习。

根据标签类型的不同,监督学习又可以分为回归问题、分类问题、结构化学习问题。

回归(Regression)问题中的标签 y y y是连续值(实数或连续正数), f ( x ; θ ) f(\boldsymbol{x} ; \theta) f(x;θ)的输出也是连续值。

分类(Classification)问题中的标签 y y y是离散的类别(符号)。学习到的模型也称为分类器(Classifier)。分类问题根据其类别数又可分为二分类(Binary Classification)和多分类(Multi-class Classification)问题。

结构化学习(Structured Learning)问题是一种特殊的分类问题。标签 y \boldsymbol{y} y通常是结构化的对象,比如序列、树、图等,由于结构化学习的输出空间较大,因此我们一般定义一个联合特征空间,将 x , y \boldsymbol{x},\boldsymbol{y} x,y映射为该空间中的联合特征向量 ϕ ( x , y ) \phi(\boldsymbol{x},\boldsymbol{y}) ϕ(x,y),预测模型可以写为:
y ^ = arg ⁡ max ⁡ y ∈ Gen ⁡ ( x ) f ( ϕ ( x , y ) ; θ ) \hat{\boldsymbol{y}}=\underset{ \boldsymbol{y} \in \operatorname{Gen}(\boldsymbol{x})}{\arg \max } f(\phi(\boldsymbol{x}, \boldsymbol{y}) ; \theta) y^=yGen(x)argmaxf(ϕ(x,y);θ)
其中 Gen ⁡ ( x ) \operatorname{Gen}(\boldsymbol{x}) Gen(x)表示输入 x \boldsymbol{x} x的所有可能的输出目标集合。计算 arg ⁡ max ⁡ \arg \max argmax的过程也称为解码(Decoding),一般通过动态规划的方法来计算。

一般而言, 监督学习通常需要大量的有标签数据集,这些数据集一般都需要由人工进行标 注,成本很高.因此,也出现了很多弱监督学习(Weakly Supervised Learning) 和半监督学习(Semi-Supervised Learning,SSL)的方法,希望从大规模的无标注数据中充分挖掘有用的信息,降低对标注样本数量的要求。

2.3.2 无监督学习 Unsupervised Learning,UL

训练样本不包含目标标签,UL 企图从中自动学习到一些有价值的信息。典型的无监督学习问题有:聚类、密度估计、特征学习、降维等。

2.3.3 强化学习 Reinforcement Learning,RL

RL是一类通过交互来学习的机器学习算法。在强化学习中,智能体根据环境的状态做出一个动作,并得到即时或延时的奖励。智能体在和环境的交互中不断学习并调整策略,以取得最大化的期望总回报。

强化学习与监督学习的不同在于,强化学习不需要显式地以“输入/输出对”的方式给出训练样本, 是一种在线的学习机制。

2.4 数据的特征表示

传统的特征抽取一般是和预测模型的学习分离的.我们会先通过主成分分析或线性判别分析等方法抽取出有效的特征,然后再基于这些特征来训练一个具体的机器学习模型.

如果我们将特征的表示学习和机器学习的预测学习有机地统一到一个模型中,建立一个端到端的学习算法,就可以有效地避免它们之间准则的不一致性。 这种表示学习方法称为深度学习(Deep Learning,DL)。深度学习方法的难点是如何评价表示学习对最终系统输出结果的贡献或影响,即贡献度分配问题。目前比较有效的模型是神经网络,即将最后的输出层作为预测学习,其他层作为表示学习。

2.5 评价指标

为了衡量一个机器学习模型的好坏,需要给定一个测试集,用模型对测试集中的每一个样本进行预测,并根据预测结果计算评价分数。

对于分类问题,常见的评价指标有:准确率精确率召回率F 值等。

给定测试集 J = { ( x ( 1 ) , y ( 1 ) ) , ⋯   , ( x ( N ) , y ( N ) ) } \mathcal{J}=\left\{\left(\boldsymbol{x}^{(1)}, y^{(1)}\right), \cdots,\left(\boldsymbol{x}^{(N)}, y^{(N)}\right)\right\} J={(x(1),y(1)),,(x(N),y(N))},标签 y ( n ) ∈ { 1 , ⋯   , C } y^{(n)} \in\{1, \cdots, C\} y(n){1,,C},用学习好的模型对测试集中的每个样本进行预测,结果为 { y ^ ( 1 ) , ⋯   , y ^ ( N ) } \left\{\hat{y}^{(1)}, \cdots, \hat{y}^{(N)}\right\} {y^(1),,y^(N)}

准确率 Accuracy,最常用的评价指标。是所有类别整体性能的平均。
A = 1 N ∑ n = 1 N I ( y ( n ) = y ^ ( n ) ) \mathcal{A}=\frac{1}{N} \sum_{n=1}^{N} I\left(y^{(n)}=\hat{y}^{(n)}\right) A=N1n=1NI(y(n)=y^(n))
其中 I ( ⋅ ) I(·) I()为指数函数,即当输入为True的时候,输出为1,输入为False的时候,输出为0。

错误率 Error Rate,和准确率相对的概念。
ε = 1 − A \varepsilon=1-\mathcal{A} ε=1A

精确率和召回率
准确率是所有类别整体性能的平均,如果希望对每个类都进行性能估计,就需要计算精确率(Precision)和召回率(Recall)。

对于类别 c c c来说,模型测试集上的结果可以分为四种情况:

  1. 真正例(True Positive,TP):一个样本的真实类别为 c c c并且模型正确地预测为类别 c c c。 这类样本数量记为:
    T P c = ∑ n = 1 N I ( y ( n ) = y ^ ( n ) = c ) T P_{c}=\sum_{n=1}^{N} I\left(y^{(n)}=\hat{y}^{(n)}=c\right) TPc=n=1NI(y(n)=y^(n)=c)

  2. 假正例(False Positive,FP): 一个样本的真实类别为其他类,模型错误地预测为类别 c c c。这类样本数量记为:
    F P c = ∑ n = 1 N I ( y ( n ) ≠ c ∧ y ^ ( n ) = c ) F P_{c}=\sum_{n=1}^{N} I\left(y^{(n)} \neq c \wedge \hat{y}^{(n)}=c\right) FPc=n=1NI(y(n)=cy^(n)=c)

  3. 假负例(False negative,FN):一个样本的真实类别为 c c c,模型错误地预测为其他类.这类样本数量记为:
    F N c = ∑ n = 1 N I ( y ( n ) = c ∧ y ^ ( n ) ≠ c ) F N_{c}=\sum_{n=1}^{N} I\left(y^{(n)}=c \wedge \hat{y}^{(n)} \neq c\right) FNc=n=1NI(y(n)=cy^(n)=c)

  4. 真负例(True Negetive,TN):一个样本的真实类别为其他类,模型 也预测为其他类.这类样本数量记为 T N c TN_c TNc 。对于类别 c c c来说,这种情况一般不需要关注。

这四种情况的关系可以用混淆矩阵(Confusion Matrix)来表示。
在这里插入图片描述

精准率(precision),也叫精度查准率,类别 c 的查准率是所有预测为类别 c 的样本中预测正确的比例:
P c = T P c T P c + F P c \mathcal{P}_{c}=\frac{T P_{c}}{T P_{c}+F P_{c}} Pc=TPc+FPcTPc

召回率(Recall),也叫查全率,类别 c 的查全率是所有真实标签类别为 c 的样本中预测正确的比例:
R c = T P c T P c + F N c \mathcal{R}_{c}=\frac{T P_{c}}{T P_{c}+F N_{c}} Rc=TPc+FNcTPc

F 值(F Measure)是一个综合指标,是查准率和查全率的调和平均:
F c = ( 1 + β 2 ) × P c × R c β 2 × P c + R c \mathcal{F}_{c}=\frac{\left(1+\beta^{2}\right) \times \mathcal{P}_{c} \times \mathcal{R}_{c}}{\beta^{2} \times \mathcal{P}_{c}+\mathcal{R}_{c}} Fc=β2×Pc+Rc(1+β2)×Pc×Rc
其中, β \beta β用于平衡查准率和查全率的重要性,一般取 1,此时的 F 值称为 F1 值。

宏平均和微平均
计算分类算法所在类别上的总体精确率、召回率和 F1值。
宏平均(Macro Average)是每一类的性能指标的算术平均值。
微平均(Micro Average)是每个样本的性能指标的算术平均值。

交叉验证 cross-validation
是一种比较好的衡量机器学习模型的统计分析方法,可以有效避免划分训练集和测试集时的随机性对评价结果造成的影响。我们可以把原始数据集平均分为 𝐾 组不重复的子集,每次选 𝐾 − 1 组子集作为训练集,剩下的一组子集作为验证集。这样可以进行 𝐾 次试验并得到 𝐾 个 模型,将这 𝐾 个模型在各自验证集上的错误率的平均作为分类器的评价。

泛化误差 generalization error
是指期望误差和经验误差之间的差异,可以衡量一个机器学习模型 f f f是否可以很好的泛化到未知数据。

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐