机器学习课堂笔记


[TOC]

绪论

教材/参考教材

  • 《机器学习》西瓜书
  • 《Pattern Recognition》
  • 《机器学习理论引导》

考核

  • 课堂 10
  • 上机(6次) 60
  • 大作业、报告(2次) 30

上课内容

在这里插入图片描述

学习模型评估、度量

  • 泛化性能
  • 时间开销
  • 存储开销
  • 可解释性

机器学习三个步骤:

在这里插入图片描述

误差

  • 误差:样本真实值与预测值的差
  • 经验误差:在训练集上的误差
  • 泛化误差:在新样本上的误差

简单起见,假设样本空间$x$和假设空间$H$离散,令$p(h|X,\epsilon_{\alpha})$代表算法$\epsilon_{\alpha}$基于训练数据X产生假设h的概率,在令f 代表要学的目标函数, 在训练。
集之外所有样本上的总误差为:

在这里插入图片描述

考虑二分类问题,目标函数可以为任何函数$X->{0,1}$函数空间为${0,1}^{|X|}$ 对所有可能f按均匀分布对误差求和,有:在这里插入图片描述

奥卡姆剃刀:没有必要,勿增实体。

欠拟合/过拟合

  • 过拟合:学习器把训练样本学习得太好,将训练样本本身的特点当做所有样本的一般性质,导致泛化性能下降。
  • 欠拟合:对训练样本的一般性质没有训练好。

在这里插入图片描述

(天下没有免费午餐定理:一个算法𝒜如果在某些问题上比另一个算法ℬ好,必然存在另一些问
题,ℬ比𝒜好 )

在这里插入图片描述

  • 欠拟合的解决方法:
  1. 加入更多的特征因素
  2. 试试更复杂的模型 (决策树:拓展分支;神经网络:增加训练轮数)
  3. 增加数据可能没什么用
  • 过拟合的解决方法:
  1. 增加更多的数据(有效,但不是很实际)

  2. 优化目标加正则项(Regularization)

    正则项:

在这里插入图片描述

​ 最后一项就是正则项。

​ 加入正则项会导致weight decay,它使得weight趋向于零,因为对于overfitting现象,weight值会过拟合的高,加入正则项使得优化式和数据妥协,防止过拟合现象。

拆分训练集和测试集的方法

留出法

  1. 直接将数据集划分成两个互斥集合,其中一个作为训练集S,另一个作为测试集T。即在这里插入图片描述
  2. 在S上训练出模型后,用T来评估其性能误差,作为对泛化误差的评估。
  3. 训练/测试集划分要尽可能保持数据分布的一致性(分层采样)
    一般若干次随机划分、重复进行实验评估后取平均值
    训练/测试样本比例通常为2:1~4:1

k折交叉验证

​ 将数据集分层采样划分为k个大小相似的互斥子集,每次用k-1个子集的并集作为训练集,余下的子集作为测试集,最终返回k个测试结果的均值,k最常用的取值是10,即为k折交叉验证。在这里插入图片描述

p次k折交叉验证

​ 与留出法类似,将数据集D划分为k个子集同样存在多种划分方式,为了减小因样本划分不同而引入的差别,k折交叉验证通常随机使用不同的划分重复p次,最终的评估结果是这p次k折交叉验证结果的均值,例如常见的“10次10折交叉验证”。

  • 假如数据D包含m个样本,若令k=m,则得到留一法:
  1. 不受随机样本划分方式的影响
  2. 结果往往比较准确
  3. 当数据集比较大时,计算开销难以忍受

自助法Bootstraping

  • 给定包含m个样本的数据集D,我们对它采样产生数据集D’

每次随机从D中挑选一个样本,将其拷贝放入D’,然后再将该样本放回原始数据集D中,使得该样本下次采样时仍有可能被采用。

此过程重复执行m次后,我们就得到了包含m个样本的数据集D’。

  • 将D’ 用作训练集(m个样本)

  • D|D’ 用作测试集(约$0.37m$个样本)

优势:

  1. 数据集较小,难以有效划分 训练集/测试集 的时候。
  2. 能从数据集中产生多个不同的训练集,这对于集成学习有很大的好处。

劣势:

​ 改变了数据的分布,这会引入估计误差。

调参

  • 超参:一般10个以内,如神经网络的层数,每层神经元的个数等。

    如何调参数:对每个参数选定一个范围和变化步长,例如在[0,0.2]范围内以0.05为步长,则实际要评估的参数个数有5个,最终从这5个候选值中选一个。

  • 普通参数:学习过程会自己学习,如神经网络会基于BP算法自动学习所有的权重系数w和偏差b。

性能度量

均方误差

回归任务中最常用的性能度量是“均方误差”(MSE):

在这里插入图片描述

分类错误率和精度

  • 分类错误率(error rate)

在这里插入图片描述

  • 精度(accuracy)

在这里插入图片描述

混淆矩阵(Confusion Matrix)

在这里插入图片描述

性能度量P-R曲线

  • 若一个学习算法的PR曲线被另一个学习算法的曲线完全“包住”,则可断言后者的性能优于前者,如A优于C;

  • 若两个学习算法的PR曲线发生交叉(如A和B),则难以判断孰优孰劣,只能在具体的查准率和查全率条件下进行比较;

    ​ 可通过比较P-R曲线下的面积;

    ​ 利用平衡点(即P=R时的取值);

    ​ 利用F1度量;

在这里插入图片描述

F1-score

比P-R曲线平衡点更用常用的是F1度量:

在这里插入图片描述

宏平均

​ 我们希望在n个二分类混淆矩阵上综合考虑查准率和查全率 。

​ 先在混淆矩阵上分别计算出查准率和查全率,记为(𝑃1, 𝑅1),(𝑃2, 𝑅2),… ,(𝑃n, 𝑅n),再计算平均值,这样得到“宏查准率”、“宏
查全率”以及“宏F1”

在这里插入图片描述

​ 先将混淆矩阵的对应元素进行平均,得到TP、FP、TN、FN的平均值,分别记为𝑇𝑃、𝐹𝑃、𝑇𝑁、𝐹𝑁,再基于这些平均值计
算尺“微查准率”、“微查全率”以及“微F1”:

在这里插入图片描述

ROC和AUC

​ 类似P-R曲线,根据学习器的预测结果对样例排序,并逐个作为正例进行预测,以“假正例率”为横轴,“真正例率”为纵轴可得
到ROC曲线,全称“受试者工作特征”。

在这里插入图片描述

在这里插入图片描述

代价敏感与错误率

​ 现实任务中不同类型的错误所造成的后果很可能不同,为了权衡不同类型错误所造成的不同损失,可为错误赋予“非均等代价”。以二分类为例,可根据领域知识设定“代价矩阵”,如下表所示,其中𝑐𝑜𝑠tij表示将第i类样本预测为第j类样本的代价。损失程度越大,𝑐𝑜𝑠𝑡01与𝑐𝑜𝑠𝑡10值的差别越大。

在这里插入图片描述

​ 在非均等代价下,不再最小化错误次数,而是最小化“总体代价”,则“代价敏感”错误率相应的为:

在这里插入图片描述

在非均等代价下,ROC曲线不能直接反映出学习器的期望总体代价,而“代价曲线”可以。

在这里插入图片描述

代价曲线

​ 代价曲线图的绘制:ROC曲线上每个点对应了代价曲线上的一条线段,设ROC曲线上点的坐标为(TPR,FPR),则可相应计算出FNR,然后在代价平面上绘制一条从(0,FPR)到(1,FNR)的线段,线段下的面积即表示了该条件下的期望总体代价;如此将ROC曲线上的每个点转化为代价平面上的一条线段,然后取所有线段的下界,围成的面积即为所有条件下学习器的期望总体代价

在这里插入图片描述

假设检验

​ 为学习器性能比较提供了重要依据,基于其结果我们可以推断出若在测试集上观察到学习器A比B好,则A的泛化性能是否在统计意义上优于B,以及这个结论的把握有多大。

二项检验

​ 记泛化错误率为$\epsilon$,

线性方程

基本形式

  • 线性模型一般形式:

$$
f(x)=w_1x1+w_2x_2+…+w_dx_d+b \
$$

$x=(x_1;x_2;…;x_d)$是由属性描述的示例,其中$x_i$是$x$在第$i$个属性上的取值。

  • 向量形式

$$
f(x)=\omega^T+b
$$

​ 其中$ \omega=(\omega_1;\omega_2;…\omega_d)$,$\omega$和$b$学得之后,模型就得以确定。

  • 优点
  1. 形式简单、易于建模

  2. 非线性模型的基础:引入层级结构或高维映射

  3. 可解释性

线性回归

在这里插入图片描述

举例:预测房子的出售价格

线性回归(linear regression)目的:学得一个线性模型以尽可能准确地预测实质输出标记。

在这里插入图片描述

模型

在这里插入图片描述

好处

在这里插入图片描述

image-20210918213114508

找到最佳函数

在这里插入图片描述

最小二乘法

$L(\omega,b)=E_{(\omega,b)}=\sum_{i=1}^{m}(y_i-\omega x_i-b)^2$

在这里插入图片描述

分别对$\omega$和$b$求导,令两个方程等于零得到闭式。

在这里插入图片描述

在这里插入图片描述

梯度下降

考虑两个参数。

$\omega^*,b^*=arg\ min_{\omega,b}L(\omega,b)$

  1. 随机初始化值$w^0,b^0$
  2. 计算

在这里插入图片描述

  1. 计算

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

多元线性回归

  • 给定数据集

$$
D={(x_1,y_1),(x_2,y_2),…,(x_m,y_m)}\
x_i=(x_{i1};x_{i2};…;x_{id}) y_i \in R
$$

  • 多元线性回归目标

$$
f(x_i)=\omega ^Tx_i+b使得f(x_i)\simeq y_i
$$

  • 把$\omega$和$b$吸收入向量形式$w=(\omega;b) $,数据集表示为

在这里插入图片描述

最小二乘法

$$
W^*=arg\ min(y-Xw^T)(y-Xw)
$$

令$E_{\omega}=(y-X\omega)^T(y-X\omega)$,对$\omega$求导得到

在这里插入图片描述

令上式为零可得到$\omega$最优解的闭式解。

满秩讨论

$X^TX$是满秩矩阵或正定矩阵,则
$$
\omega=(X^T X)^{-1}X^Ty
$$

  • $X^TX$不是满秩举证

根据归纳偏好选择解

引入正则化

对数线性回归

在这里插入图片描述

在这里插入图片描述

二分类任务

  1. 预测值与输出标记
    $$
    z=\omega^Tx+b\ y\in{0,1}
    $$
  2. 寻找函数将分类标记与线性回归模型输出联系起来
  3. 最理想的函数——单位阶跃函数

在这里插入图片描述

预测值大于零就判为正例,小于零就判为反例,预测值为临界值0则可任意判别。

  • 单位阶跃函数缺点:不连续

  • 替代函数——对数几率函数

    单调可微,任意阶可导
    $$
    y=\frac{1}{1+e^{-z}}
    $$
    在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

image-20210919092349718

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

线性判别分析LDA

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

神经网络

​ 定义:“神经网络是由具有适应性的简单单元组成的广泛并行互联的网络,它的组织能够模拟生物神经系统对真实世界物体所作出的反应”。

  • 机器学习中的神经网络通畅是指“神经网络学习”

  • 神经元模型即上述定义中的“简单单元”,是神经网络的基本成分

  • 生物神经网络:每个神经元与其他神经元相连,当它“兴奋”时,就会向相连的神经元发送化学物质,从而改变这些神经元内的电位;如果某神经元的电位超过一个“阈值”,那么它就会被激活,即“兴奋”起来,向其它神经元发送化学物质。

在这里插入图片描述

激活函数

在这里插入图片描述

​ 不连续的话不能求导。

感知机

​ 感知机由两层神经元组成,输入层接受外界输入信号传递给输出层,输出层是M-P神经元(阈值逻辑单元)

  • 感知机能够容易地实现逻辑与、或、非运算。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

多层前馈神经网络

前馈:输入层接受外界输入,隐含层与输出层神经元对信号进行加工,最终结果由输出层神经元输出

学习:根据训练数据来调整神经元之间的“连接权”以及每个功能神经元的“阈值”。

在这里插入图片描述

误差逆传播算法

误差逆传播算法(Error BackPropagation,简称BP)是最成功的训练多层前馈神经网络的学习算法。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

  • 标准BP算法:

    每次针对单个训练样例更新权值与阈值

    参数更新频繁,不同样例可能抵消,需要多次迭代

  • 累计BP算法:

    其优化的目标是最小化整个训练集上的累计误差

    在这里插入图片描述

    读取整个训练集一遍才对参数进行更新,参数更新频率较低。

  • 实际应用

    但在很多任务中,累计误差下降到一定程度后,进一步下降会非常缓慢,这时标准BP算法往往会获得较好的解,尤其当训练集非常大时效果更明显。

  • 多层前馈网络表示能力

    只需要一个包含足够多神经元的隐层,多层前馈神经网络就能以任意精度逼近任意复杂度的连续函数,

  • 多层前馈网络局限

    神经网络由于强大的表示能力,经常遭遇过拟合,表现为:训练误差持续降低,但测试误差却可能上升。

    如何设置隐层神经元的个数仍然是个未决问题,实际应用中通常使用“试错法”调整。

在这里插入图片描述

在这里插入图片描述

全局最小与局部极小

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

其他常见神经网络

RBF网络

RBF网络是一种单隐层前馈神经网络,它使用径向基函数作为神经元激活函数,而输出层则是隐层神经元输出的线性组合。

  • RBF网络模型

    假定输入为x维的向量d,输出为实值,则RBF网络可以表示为:

    image-20211001171921909

    其中q为隐层神经元的个数ci和wi分别是第i神经元对应的中心和权重,p(x,ci)是径向基函数。

    常用的高斯径向基函数形如:

    在这里插入图片描述

    RBF网络性质:具有足够多隐层神经元RBF神经网络能以任意精度逼近任意连续函数

    RBF网络训练:

    Step1:确定神经元中心,常用的方式包括随机采样、聚类等

    Step1:利用BP算法等确定参数

ART网络

  • 竞争学习:竞争学习是神经网络中一种常用的无监督学习策略,在使用该策略是,网络的输出神经元相互竞争,每一时刻仅有一个神经元被激活,其他神经元的状态被抑制。

  • ART网络

    ART网络是竞争学习的重要代表

    ART网络由比较层、识别层、识别阈值和重置模块构成

    比较层负责接收输入样本,并将其传送给识别神经元

    识别层每个神经元对应一个模式类,神经元的数目可在训练过程中动态增长以增加新的模式类。

  • ART网络性能依赖于识别阈值

    识别阈值高时,输入样本将会分成比较多、得到较精细分类

    识别阈值低时,输入样本将会分成比较少、产生较粗略分类

  • ART网络的优势

    ART较好地解决了竞争学习中的“可塑性-稳定性窘境”,可塑性是指神经网络要有学习新知识的能力;稳定性是指神经网络在学习新知识时要保持对旧知识的记忆

    ART网络可以增量学习或在线学习

  • ART网络的发展

    ART2网络,FuzzyART网络,ARTMAP网络

SOM网络

  • SOM网络是一种竞争型的无监督神经网络,它能将高维数据映射到低维空间(通常为2维),同时保持输入数据在高维空间的拓扑结构,即将高维空间中相似的样本点映射到网络输出层中邻近神经元。
  • 如图,SOM网络中的输出层神经元以矩阵方式排列在二维空间中,每个神经元都拥有一个权值向量,网络在接收输入向量后,它决定了该输入向量在低维空间中的位置。

在这里插入图片描述

在这里插入图片描述

级联相关网络

​ 级联相关网络不仅利用训练样本优化连接权值,阈值参数,将网络的结构也当做学习的目标之一,希望在训练过程中找到适合数据的网络结构。

  • 级联与相关

    • 级联:建立层次连接的层次结构
    • 相关:最大化神经元的输出与网络误差时间的相关性来训练相关参数
  • 网络优化演示

    在这里插入图片描述

Elman网络

  • 递归神经网络

    • 允许网络中出现环形结构,使得神经元的输出反馈回来作为输入信号。
    • t时刻网络的输出状态:t时刻的输入状态和t-1时刻的网络状态决定。
  • Elman网络

    Elman网络是最常用的递归神经网络之一,结构如图所示,这种结构与前馈神经网络很相似,但是隐层神经元的输出被反馈回来,与下一时刻输入层神经元提供的信号一起作为隐层神经元在下一时刻的输入

  • 训练算法

    推广的BP算法

在这里插入图片描述

Boltzman机

  • 能量模型

    神经网络中有一类模型为网络定义一个“能量”,能量最小化时网络达到理想状态,而网络的训练就是在最小化这个能量函数

  • Boltzman机

    • Boltzman机就是一种基于能量的模型

    • 结构:显层和隐层

      显层:数据的输入与输出

      隐层:数据的内在表达

    • 神经元:

      布尔型,即只能取0和1两种状态,1表示激活,0表示抑制。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

深度学习

典型的深度学习模型就是很深层的神经网络

image-20211001175055166

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述


文章作者: XX
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 XX !
  目录