花书笔记:第05章 机器学习基础

花书笔记:第 05 章 机器学习基础

5.1 机器学习算法

机器学习算法定义: 对于某类任务 T T T ,和性能度量 P P P ,一个计算机程序被认为可以从经验 E E E 中学习是指,通过经验 E E E 改进后,它在任务 T T T 由性能度量 P P P 衡量的性能有所提升。

5.1.1 任务 T T T

机器学习的任务通常是一些人为设计和使用确定性程序很难解决的问题。通常有以下几类任务。

  • 分类

    学习算法返回一个函数 f : R n → { 1 , ⋅ ⋅ ⋅ , k } \pmb{f:\mathbb{R}^n→ \{1,···,k\}} fRn{1,,k}fRn{1,,k}fRn{1,,k}。将向量 x x x 所代表的输入(待分类数据),函数将会输出该数据相应的类别码 k k k ;或该类别输入各个类别的概率分布

  • 输入缺失分类

    即输入向量 x x x 会存在某些属性的数据缺失的情况,但必须对其进行分类(如医疗诊断)。

  • 回归

    通过学习数据的规律,算法根据给定的输入预测输出值,如未来股票、证券、房价的预测。

  • 转录

    将一些非结构化的表示数据,转化为离散的文本形式,如语音识别,OCR字符识别。

  • 机器翻译

    输入是一种语言类的符号序列,计算机程序必须将其转化为另一种语言的符号序列,如将英文译为中文。

  • 结构化输出

    结构化输出任务的输出是向量或者其他包含多个值的数据结构,且输出值中的各个部分具有一定的联系。如图像理解,即计算机程序中输入一幅图像,程序给出对这幅图像的描述。

  • 异常检测

    计算机程序在一组事件或对象中筛选,并标记不正常或非典型的个体。如工业零件的残品检测,找出与正常零件有差异的对象。

  • 合成与采样

    机器学习程序生成一些和训练数据相似的新样本。如语音合成,根据句子输出这个句子的音频波形,且每个输入并非只有一个正确的输出,即每次输出音频波形可能不同,但都包含句子信息。

  • 缺失值填补

    根据一些历史数据学习到的知识,对新样本 x ∈ R n x \in \mathbb{R}^n xRn 中的某些缺失值进行填补。

  • 去噪

    机器学习程序根据受到干扰的样本,预测初始的干净样本。

  • 密度估计或概率质量函数估计

    机器学习算法 p m o d e l ( x ) p_{model}(x) pmodel(x) 根据观测到的数据结构,隐式地捕捉概率分布的结构。可以应用于根据概率分布解决缺失值填补任务。

5.1.2 性能度量 P

设计性能度量是为了评估机器学习算法执行任务 T \pmb T TTT 的能力。

  • 准确率和错误率

    准确率是指模型输出正确结果的样本数占总体样本数的比率。错误率与其含义相反。常用于分类、确实输入分类、转录任务的性能评估。

  • 测试集

    我们训练机器学习模型通常是希望得到其良好的泛化性能,即模型在没有见过的数据中仍然保持良好的性能。所以我们经常会使用模型在学习过程中没有见过的数据作为测试集来衡量模型的泛化性能

5.1.3 经验 E
  • 有监督学习

    数据集包含 输入x 以及 输出y ,有监督学习算法的目标是学习 xy 之间的关联,以达到能够从 x 预测 y 的目的。

  • 无监督学习

    无监督学习的数据集中只有包含 输入x ,主要目的是自主的学习数据集中有用的结构性质

5.1.4 示例:线性回归(linear regression)
  • 线性回归的目标

    根据数据集,找到一个线性函数,使得该函数根据 x \pmb x xxx 预测出的 y ^ \pmb{\hat{y}} y^y^y^ 与实际值 y \pmb y yyy 的整体误差最小。

    目标函数为:
    y ^ = w T x \hat y=w^Tx y^=wTx
    其最终目的是找到最优的参数 w w w

  • 定义误差函数

    即定义性能度量 P。线性回归用 均方误差(MSE) 作为误差函数,并对其进行优化,使 MSE 能够达到最小,从而找到最优参数 w w w
    M S E t r a i n = 1 m ∣ ∣ y ^ ( t r a i n ) − y ( t r a i n ) ∣ ∣ 2 2 MSE_{train}=\frac{1}{m}||\hat y^{(train)}-y^{(train)}||_2^2 MSEtrain=m1y^(train)y(train)22

  • 求导

    ▽ w M S E t r a i n = 0 \triangledown_w MSE_{train}=0 wMSEtrain=0 可以得到最优 w w w

    其结果为
    w = ( X ( t r a i n ) T X ( t r a i n ) ) − 1 X ( t r a i n ) T y ( t r a i n ) w=(X^{(train)T}X^{(train)})^{-1}X^{(train)T}y^{(train)} w=(X(train)TX(train))1X(train)Ty(train)
    根据上式就可得到最优 w w w

  • 如何处理存在偏置的情况

    大多数的线性回归的形式为:
    y ^ = w T x + b \hat y=w^Tx + b y^=wTx+b
    为了方便求解长将 数据集 x x x 矩阵中加入一列 1。在权重矩阵 w w w 中再加入一列表示 b \pmb b bbb。以此来进行线性回归。
    Y ^ = W T X \hat Y=W^TX Y^=WTX
    其中,
    W = ( w , b ) ; X = ( x , 1 ) W=(w,b);\quad X=(x,1) W=(w,b);X=(x,1)

5.2 容量、过拟合和欠拟合

  • 容量:指拟合各种函数的能力。容量低的模型容易造成欠拟合,容量高的模型容易造成过拟合。可以理解为模型的复杂程度

  • 欠拟合:指模型在训练集中不能达到足够低的误差,即模型在训练集上性能较差。

  • 过拟合:训练误差与测试误差差距太大。即在训练集性能很好,测试集性能很差,这样可以理解为训练过了,模型记住了训练样本,只能预测训练集中的数据。

  • 奥卡姆剃刀:即在选择模型时,在模型性能差异不太大的情况下,我们通常选择最简单的那个。

5.2.1 没有免费午餐定理

该定理表明,没有哪个机器学习算法总是比其他算法更好。在所有可能的数据分布中,他们具有相同的错误率。只能说在某些数据分布中哪个算法更适合。

5.2.2 正则化

指在代价函数(loss)中增加一个正则化项,改变权重偏好,从而达到防止过拟合降低泛化误差的目的。

  • 权重衰减

    以线性回归为例,在线性回归的损失函数中加入惩罚项 λ w T w \pmb{\lambda w^Tw} λwTwλwTwλwTw。组成新的代价函数。
    J ( w ) = M S E t r a i n + λ w T w J(w)=MSE_{train}+\lambda w^Tw J(w)=MSEtrain+λwTw
    其中 λ \lambda λ 为选择的常数

    从上式中可以看出 w T w w^Tw wTw 越大,惩罚项 λ w T w \lambda w^Tw λwTw 增加程度越大,惩罚程度越大 w T w w^Tw wTw 很小的时候, λ w T w \lambda w^Tw λwTw 也很小,惩罚项几乎不起作用,所以惩罚项偏好于平方 L 2 L^2 L2 范数较小的权重。惩罚项的具体作用见下图。
    在这里插入图片描述

5.3 超参数和验证集

  • 超参数:模型的超参数是人为设定的,不是由算法学习得到的,它用来控制算法的行为。例如多项式回归,多项式的次数。
  • 验证集:训练集主要用于算法学习;测试集用于衡量算法的泛化能力;验证集用于挑选最优超参数。
  • 数据集通常划分比例:万级以下(6 : 2 : 2);万级以上(98 : 1 : 1)。
5.3.1 交差验证

当数据集比较时,划分的测试集就不能准确的估计泛化误差,k-折交叉验证 是一种处理这种问题的方法。其主要思想是,将数据集等分为 k 份,将算法训练 k 次,每次选取不同份的数据作为测试集,其他作为训练集,最终返回 k测试误差来获取算法误差的平均估计。

在这里插入图片描述

5.4 估计、偏差和方差

5.4.1 点估计
  • 点估计是对模型的单个参数或某些参数模型的一个向量参数提供最优预测。如线性回归中的 w w w
  • 参数的真实值用 θ \theta θ 表示 (生成数据集的真实分布);点估计用 θ ^ \hat\theta θ^ 表示 (根据数据集进行分布的近似估计)。
  • 良好的估计量会接近真实的参数 θ \theta θ
5.4.2 偏差
  • 估计的偏差定义
    b i a s ( θ ^ m ) = E ( θ ^ ) − θ bias(\hat\theta_m)=\mathbb{E}(\hat\theta)-\theta bias(θ^m)=E(θ^)θ

    • E ( θ ^ ) \mathbb{E}(\hat\theta) E(θ^) 表示所有数据集的期望 θ \theta θ 表示参数的真实值。
    • b i a s ( θ ^ m ) = 0 bias(\hat\theta_m)=0 bias(θ^m)=0 θ ^ m \hat\theta_m θ^m无偏估计
    • lim ⁡ m → ∞ b i a s ( θ ^ m ) = 0 \lim_{m \rightarrow \infty}bias(\hat\theta_m)=0 limmbias(θ^m)=0 θ ^ m \hat\theta_m θ^m渐进无偏估计
5.4.3 方差和标准差
  • 估计量方差 V a r ( θ ^ ) Var(\hat \theta) Var(θ^);真实值方差 σ 2 \sigma^2 σ2;估计量标准差 S E ( θ ^ ) SE(\hat \theta) SE(θ^); 真实值标准差 σ \sigma σ

  • 均值标准差
    S E ( μ ^ m ) = V a r [ 1 m ∑ i = 1 m x ( i ) ] = σ m SE(\hat \mu_m)=\sqrt{Var [\frac{1}{m} \sum_{i=1}^m x^{(i)}]}=\frac{\sigma}{\sqrt m} SE(μ^m)=Var[m1i=1mx(i)] =m σ
    算法 A 比 算法 B 好,指 A 的误差的 95% 置信区间的上界小于 B 的误差的 95% 置信区间的下界。
    95 % 置 信 区 间 : ( μ ^ m − 1.96 E ( μ ^ ) , μ ^ m + 1.96 E ( μ ^ ) ) 95\% 置信区间:( \hat \mu _m-1.96 E(\hat \mu), \hat \mu _m+1.96 E(\hat \mu) ) 95%(μ^m1.96E(μ^),μ^m+1.96E(μ^))

5.4.4 权衡偏差和方差以最小化均方误差
  • 根据 偏差方差 综合衡量模型泛化误差时可以选择 交叉验证均方误差(MSE)

  • 均方误差
    M S E = E [ ( θ ^ m − θ ) 2 ] = B i a s ( θ ^ m ) 2 + V a r ( θ ^ m ) MSE=\mathbb{E}[(\hat \theta_m- \theta )^2]=Bias(\hat \theta _m)^2 + Var(\hat\theta_m) MSE=E[(θ^mθ)2]=Bias(θ^m)2+Var(θ^m)
    使用 MSE 衡量泛化误差,增加容量会增加方差,降低偏差。

5.4.5 一致性
  • 一致性准则
    p l i m m → ∞ θ ^ m = θ plim_{m\rightarrow\infty}\hat \theta_m=\theta plimmθ^m=θ
    即数据集无穷大时, θ ^ \hat\theta θ^ 会收敛到 θ \theta θ

  • 一致性保证了估计量的偏差会随数据样本数目的增多而减少。

5.5 最大似然估计

  • 最大似然估计,是通过概率角度优化求解模型参数 θ ^ \hat\theta θ^ 的方法

  • 最大似然求解

    1) 最大似然定义
    在这里插入图片描述
    由上式可以看出,我们期望能够找到最大似然 θ M L \pmb{\theta_{ML}} θMLθMLθML ,使得模型接近真实值的概率最大,即 p m o d e l ( X ; θ ) p_{model}(\mathbb{X};\theta) pmodel(X;θ) 最大。
    在这里插入图片描述
    由于 式 5.57 乘积形式,不容易求导,且容易造成下溢。所以进行取对数操作变成求和形式,不影响 θ M L \theta_{ML} θML ,见式 5.58 。

  • KL 散度
    在这里插入图片描述

    对 式5.58 除以 m,可得到训练数据 p ^ d a t a \hat p_{data} p^data 的期望分布。
    在这里插入图片描述
    在这里插入图片描述
    式 5.60 代表 KL散度 ,这就是模型训练优化的目标 (loss),最小化 KL 散度 只需要 最小化 式5.61 即可。

    最小化 KL 散度就是在最小化分布之间的交叉熵

5.5.1 条件对数似然和均方误差

在这里插入图片描述

5.5.2 最大似然的性质
  • 最大似然估计具有一致性,但真实分布 p d a t a p_{data} pdata 需要满足以下几个条件:

    1) p d a t a p_{data} pdata 需要在模型族 p m o d e l ( ⋅ ; θ ) p_{model}(·;\theta) pmodel(;θ) 中,否则,没有估计可以还原 p d a t a p_{data} pdata

    2) p d a t a p_{data} pdata 必须刚好对应一个 θ \theta θ 值,否则,估计恢复出真实分布后不知道使用哪一个 θ \theta θ

5.6 贝叶斯统计

  • 当训练数据有限时,贝叶斯方法通常泛化的更好。但是当训练样本数目很大时,通常由很大的计算代价

5.7 监督学习算法

  • 监督学习算法是根据包含 x x x y y y 的数据集,学习如何关联输入和输出。
5.7.1 概率监督学习
  • 大部分的监督学习算法都是基于估计概率分布 p ( y ∣ x ) p(y|\pmb x) p(yxxx) 的.
  • 线性回归sigmoid 函数 组合可构成 逻辑回归(logistic regression) 用于分类问题。
5.7.2 支持向量机(SVM)
  • 支持向量机也是基于线性函数 w T x + b \pmb{w^Tx}+b wTxwTxwTx+b 的,与逻辑回归不同,支持向量机只输出类别,不输出概率。

  • 主要思想

    1) 支持向量中的线性函数可重写为:
    在这里插入图片描述
    x ( i ) \pmb{x^{(i)}} x(i)x(i)x(i) 表示训练样本, α \pmb\alpha ααα 是系数向量, α i \alpha_i αi 为常数, x \pmb x xxx 表示输入项,m 表示训练数据数量。

    2) 引入特征函数 ϕ ( x ) \phi(\pmb x) ϕ(xxx),对数据进行高维映射
    f ( x ) = b + ∑ i α i ϕ ( x ) ⋅ ϕ ( x ( i ) ) f(\pmb x)=b+\sum_i \alpha_i \phi(\pmb x)·\phi(\pmb{x^{(i)}}) f(xxx)=b+iαiϕ(xxx)ϕ(x(i)x(i)x(i))
    3) 核函数 k ( x , x ( i ) ) k(\pmb x,\pmb x^{(i)}) k(xxx,xxx(i)) 等价代换特征函数
    f ( x ) = b + ∑ i α i k ( x , x ( i ) ) f(\pmb x)=b+\sum_i \alpha_i k(\pmb x,\pmb x^{(i)}) f(xxx)=b+iαik(xxx,xxx(i))

    • 由于 ϕ ( x ) \phi(\pmb x) ϕ(xxx) 可以是无限维,很多时候计算是复杂的。而核函数完全等价于用 ϕ ( x ) ⋅ ϕ ( x ( i ) ) \phi(\pmb x)·\phi(\pmb{x^{(i)}}) ϕ(xxx)ϕ(x(i)x(i)x(i)) 处理的所有输入,简化了计算代价。例如最小核

      1. ϕ ( x ) \phi(\pmb x) ϕ(xxx) 的返回结果是一个由 x x x 个 1 开头,之后是无限个 0 的向量。

      2. 最小核 k ( x , x ( i ) ) = m i n ( x , x ( i ) ) k(\pmb x,\pmb x^{(i)})=min(x,x^{(i)}) k(xxx,xxx(i))=min(x,x(i))

      3. x = 2 x = 2 x=2 x ( i ) = 1 x^{(i)}=1 x(i)=1,则 ϕ ( 2 ) ⋅ ϕ ( 1 ) = k ( 2 , 1 ) = 1 \phi(2)·\phi(1)=k(2, 1)=1 ϕ(2)ϕ(1)=k(2,1)=1

    • 支持向量机之后会在新的转换空间学习线性模型。

  • 其他性质

    支持向量机中每个训练样本贡献一个 α i k ( x , x ( i ) ) \alpha_i k(\pmb x,\pmb x^{(i)}) αik(xxx,xxx(i)) 项,因此决策函数 f ( x ) f(x) f(x) 计算成本是线性的,支持向量机通过学习主要包含 0 的向量 α \pmb \alpha ααα 来,缓和这一缺点。这样只需要计算几个 非零 α i \alpha_i αi 项就可以决策。 非零 α i \alpha_i αi 对应得样本点则称为支持向量

5.7.3 其他简单的监督学习算法
  • k-最近邻
  • 决策树

5.8 无监督学习算法

  • 无监督学习相关任务

    1.学习从分布中采样
    2.学习从分布中去噪
    3.寻找数据分布的流形
    4.将数据中相关的样本聚类

  • 寻找数据最佳表示——无监督学习经典任务

    1.低维表示

    低维表示尝试将数据集 x \pmb x xxx 尽可能的压缩到一个较小的表示中。产生的表示具有更少的元素间依赖关系

    2.稀疏表示

    将数据集嵌入到输入项大多数为 0 的表示中,通常用于需要增加表示维数的情况。

    3.独立表示

    独立表示试图分开数据分布中的变化来源,使得表示的维度是统计独立的。

5.8.1 主成分分析
  • 花书笔记:第2章线性代数 2.8节 中的 PCA 是通过求解 X T X X^TX XTX 的特征向量来确定 线性变换 W \pmb W WWW 的;本节将会讲述使用 奇异值分解(SVD) 求解变换的方法。

  • SVD 求解 PCA

    1.设 X→Z 的变换
    Z = W T X Z=\pmb{W^T}X Z=WTWTWTX
    2.奇异值求解
    X T X = ( U Σ W T ) T ( U Σ W T ) X^TX=(U \Sigma W^T)^T (U \Sigma W^T) XTX=(UΣWT)T(UΣWT)
    W \pmb W WWW 即为所求变换。

  • 性质

    PCA 将数据变换为元素之间彼此不相关的表示,消除了数据中未知变化因素

5.8.2 k-均值聚类

在这里插入图片描述

5.9 随机梯度下降(SGD)

  • 对于一般梯度下降求解梯度时需要计算所有数据样本的梯度,当样本数量 m 过大时,计算代价太高。
    在这里插入图片描述
  • 随机梯度下降的核心是,梯度是期望。期望可使用小规模的样本近似估计。即,算法每一步在数据集中抽取一个小批量(batch)。批量数 m ′ m' m 相对较小,从一到几百。此时梯度的估计可表示为:
    在这里插入图片描述
  • 梯度下降
    θ ← θ − ϵ g \pmb\theta \leftarrow \pmb\theta - \epsilon \pmb g θθθθθθϵggg
    ϵ \epsilon ϵ 为学习率。

5.10 构建机器学习算法

  • 深度学习算法的配方
    1.特定的数据集
    2.代价函数 + 正则化(选)
    3.优化过程
    4.特定的模型(算法)

5.11 促使深度学习发展的挑战

  • 许多机器学习在很多不同问题上表现良好,但在人工智能问题上泛化能力不足,如语音识别,目标识别。
  • 传统机器学习中实现泛化的机制不适合学习高维空间中的复杂函数。
5.11.1 维数灾难
  • 维数灾难是指,当数据维数很高时,许多机器学习问题将会变得非常困难。
5.11.2 局部不变性核平滑正则化
  • 平滑先验局部不变性先验

    这个先验表明要学习的函数(模型)不应在小区域内发生很大变化。例如梯度下降中 loss 曲线是缓慢递减的。

  • 深度学习的核心思想是,假设数据由因素或特征组合产生,这些因素或特征可能来自一个层次结构的多个层级。这种深度的分布式表示有效的解决了维数灾难,以及平滑先验不足应对复杂任务的问题。

5.11.3 流形学习
  • 流形 指连接在一起的区域,是指一组点。且这些点每个点都有其邻域。

  • 允许流形的维数从一个点到另一个点有所变化,这经常发生于自身相交的情况,例如数字8形状的流形的中心相交处有两维,其他为一维。

  • 流形学习

    背景

    让机器学习算法去学习整个 R n \mathbb {R}^n Rn 上有趣变化的函数是不可能的。但流形学习可以解决这一问题。

    解决策略

    • 流形学习假设 R n \mathbb {R}^n Rn 中大部分区域都是无效的输入。有意义的输入只存在于少量数据点的子集构成的一组流形中。
    • 流形学习认为有意义的变化都沿着流形方向或仅发生在我们切换到另一流形时。
  • 支持流形假设的两个观点

    1.现实生活中的图像、文本、声音的概率分布都是高度集中的。如图像中的某一对象是集中在图像的某一区域的。
    2.我们至少能够非正式的想象这些邻域和变换。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值