机器学习简介

news/2024/10/14 2:25:19

机器学习简介

Learn from data、深度学习

经典定义:利用经验改善系统自身的性能 [T. Mitchell 教科书, 1997]。

数据 -> 算法 -> 模型

基本术语

数据:

  • 数据集;训练;测试

  • 示例(instance);样例(example)

  • 样本(sample)

  • 属性(attribute);特征(feature);属性值

  • 属性空间;样本空间;输入空间

  • 特征向量(feature vector)

  • 类别标记(label)

  • 标记空间;输出空间

模型:

  • 假设(hypothesis)

  • 真相(ground-truth)

  • 学习器(learner)

任务:

  • 分类(离散);回归(连续)
  • 二分类;多分类
  • 正类;反类

是否有标注信息:

  • 监督学习(supervised learning)

  • 无监督学习(unsupervised learning)

  • 自监督学习(self-supervised learning)

测试:

  • 未见样本(unseen instance)
  • 未知“分布”
  • 独立同分布(i.i.d.)
  • 泛化(generalization)

典型的机器学习过程

什么模型好?

泛化能力强:能很好地适用于unseen instance,错误率低,精度高。

机器学习有坚实的理论基础

计算学习理论(Computational learning theory)

最重要的理论模型:PAC(Probably Approximately Correct,概率近似正确)learning model [Valiant, 1984]

\[P(|f(\boldsymbol{x}) - y| \leq \epsilon) \geq 1 - \delta \]

归纳偏好(Inductive Bias)

机器学习算法在学习过程中对某种类型假设的偏好。

一般原则:奥卡姆剃刀——若非必要勿增实体

任何一个有效的机器学习算法必有其偏好。

学习算法的归纳偏好是否与问题本身匹配,大多数时候直接决定了算法能否取得好的性能。

没有免费午餐(NFL)定理:一个算法 \(\mathcal{L}_a\) 若在某些问题上比另一个算法 \(\mathcal{L}_b\) 好,必存在另一些问题 \(\mathcal{L}_b\)\(\mathcal{L}_a\) 好。

image-20240810153952925

评估方法

关键:怎么获得“测试集”(test set)?

测试集应该与训练集“互斥”

常见方法:

  • 留出法(hold-out)
  • 交叉验证法(cross validation)
  • 自助法(bootstrap)

留出法

image-20240810154356237

注意:

  • 保持数据分布一致性(例如:分层采样)
  • 多次重复划分(例如:100次随机划分)
  • 测试集不能太大、不能太小(例如:1/5~1/3)

\(k\)-折交叉验证法

image-20240810154810608

\(k=m\) ,则得到“留一法”(leave-one-out, LOO)

性能度量

性能度量(performance measure)是衡量模型泛化能力的评价标准,反映了任务需求。

使用不同的性能度量往往会导致不同的评判结果。

什么样的模型是“好”的,不仅取决于算法和数据,还取决于任务需求。

  • 回归(regression)任务常用均方误差(MSE):

    \[E(f;D) = \frac{1}{m}\sum_{i=1}^m(f(x_i) - y_i)^2 \]

  • 错误率:

    \[E(f;D) = \frac{1}{m}\sum_{i=1}^m\mathbb{I}(f(x_i)\neq y_i) \]

  • 精度:

    \[\begin{align} acc(f;D) &= \frac{1}{m}\sum_{i=1}^m\mathbb{I}(f(x_i) = y_i) \\ &= 1 - E(f;D) \end{align} \]

线性模型

image-20240811111041634

线性模型(linear model)试图学得一个通过属性的线性组合来进行预测的函数。

\[f(\boldsymbol{x}) = w_1x_1 + w_2x_2 +\dots+ w_dx_d + b \]

向量形式

\[f(\boldsymbol{x}) = \boldsymbol{w}^\mathrm{T}\boldsymbol{x} + b \]

线性回归(Linear Regression)

\[f(x_i) = wx_i + b\quad 使得\quad f(x_i)\simeq y_i \]

离散属性的处理:若有“序”(order),则连续化;否则,转化为 \(k\) 维向量。

令均方误差最小化,有

\[\begin{align} (\boldsymbol{w}^*,b^*) &= {\arg\min}_{(\boldsymbol{w},b)}\sum_{i=1}^m(f(\boldsymbol{x}_i)-y_i)^2 \\ &= {\arg\min}_{(\boldsymbol{w},b)}\sum_{i=1}^m(y_i-\boldsymbol{w}^\mathrm{T}\boldsymbol{x}_i-b)^2 \end{align} \]

\(E_{(\boldsymbol{w},b)} = \sum_{i=1}^m(y_i-\boldsymbol{w}^\mathrm{T}\boldsymbol{x}_i-b)^2\) 进行最小二乘估计。

优化目标

基本思路:优化模型的经验误差,同时控制模型的复杂度。

\[\min_{(\boldsymbol{w},b)}\frac{1}{2}\Vert \boldsymbol{w}\Vert^2 + C\sum_{i=1}^m\mathscr{l}_{0/1}(y_i(\boldsymbol{w}^\mathrm{T}\boldsymbol{x}_i+b)-1) \]

其中 \(\mathscr{l}_{0/1}\)\(0/1\) 损失函数(0/1 loss function)

\[\mathscr{l}_{0/1}(z)= \begin{cases} 1,\quad z<0;\\ 0,\quad \mathrm{otherwise}. \end{cases} \]

障碍:\(0/1\) 损失函数非凸、非连续,不易优化!

替代损失(Surrogata Loss)

image-20240811111105614

  • 采用替代损失函数,是在解决困难问题时的常见技巧。
  • 求解替代函数得到的解是否仍是原问题的解?理论上成为替代损失的“一致性”(Consistency)问题。

软间隔支持向量机(Soft-margin Support Vector Machine)

原始问题

\[\min_{(\boldsymbol{w},b)}\frac{1}{2}\Vert \boldsymbol{w}\Vert^2 + C\sum_{i=1}^m\max(0,1-y_i(\boldsymbol{w}^\mathrm{T}\boldsymbol{x}_i+b)) \]

引入“松弛量”(Slack Varinbles)\(\xi_i\)

\[\min_{(\boldsymbol{w},b)}\frac{1}{2}\Vert \boldsymbol{w}\Vert^2 + C\sum_{i=1}^m\xi_i\\ \mathrm{s.t.}\quad y_i(\boldsymbol{w}^\mathrm{T}\boldsymbol{x}_i+b)\geq 1-\xi_i\quad \xi_i\geq 0,~i=1,2,\dots,m \]

对偶问题

\[\max_\alpha\sum_{i=1}^m\alpha_i-\frac{1}{2}\sum_{i=1}^m\sum_{j=1}^m\alpha_i\alpha_jy_iy_j\boldsymbol{x}_i^\mathrm{T}\boldsymbol{x}_j\\ \mathrm{s.t.}\quad \sum_{i=1}^m\alpha_iy_i=0\quad0\leq\alpha\leq C,~i=1,2,\dots,m \]

正则化(Regularization)

统计学习模型(例如SVM)的更一般形式

\[\min_f\Omega(f)+C\sum_{i=1}^ml(f(\boldsymbol{x}_i),y_i) \]

正则化项 \(\Omega(f)\) :结构风险(Structural Risk)描述模型本身的某些性质,归纳偏好。

损失函数 \(l(f(\boldsymbol{x}_i),y_i)\) :经验风险(Empirical Risk)描述模型与训练数据的契合程度。

  • 正则化可理解为“罚函数法”,通过对不希望的结果施以惩罚,使得优化过程趋向于希望目标。
  • 从贝叶斯估计的角度,则可认为是提供了问题的先验概率。

多层前馈网络结构

  • 多层网络:包含隐层的网络。

  • 前馈网络:神经元之间不存在同层连接也不存在跨层连接。

  • 隐层和输出层神经元亦称“功能单元”(Functional Unit)。

image-20240811173736673

多层前馈网络有强大的表示能力(“万有逼近性”):

仅需一个包含足够多神经元的隐层,多层前馈神经网络就能以任意精度逼近任意复杂度的连续函数 [Hornik et al., 1989]。

但是,如何设置隐层神经元数是未决问题(Open Problem),实际常用“试错法”。

”简单单元“:神经元模型

M-P神经元模型 [McCulloch and Pitts, 1943]

image-20240811174414792

神经网络学得的知识蕴含在连接权与阈值中。

决策树模型

决策树基于”树“结构进行决策

  • 每个”内部节点“对应于某个属性上的”测试“(test)。
  • 每个分支对应于该测试的一种可能结果(即该属性的某个取值)。
  • 每个”叶节点“对应于一个”测试结果”。

image-20240811175527008

学习过程:通过对训练样本的分析来确定“划分属性”(即内部节点所对应的属性)。

预测过程:将测试示例从根节点开始沿着划分属性所构成的“判定测试序列“下行,直到叶节点。

策略:“分而治之”(divide-and-conquer)

优化方法

无约束优化

  • 零阶优化方法:\(f(\boldsymbol{x})\) .
  • 一阶优化方法:\(f(\boldsymbol{x}),\nabla f(\boldsymbol{x})\) .
  • 高阶优化方法:\(f(\boldsymbol{x}),\nabla f(\boldsymbol{x}),\nabla^2f(\boldsymbol{x}),\dots\) .
  • 随机优化方法:随机子集.

类别不平衡(class-imbalance)

不同类别的样本比例相差很大;“小类”往往更重要。

基本思路:

\[若 \frac{y}{1-y}>1 则预测为正例 \rightarrow 若 \frac{y}{1-y}>\frac{m^+}{m^-} 则预测为正例 \]

\(y\) 正类概率

基本策略——“再缩放”(rescaling):

\[\frac{y'}{1-y'}=\frac{y}{1-y}\times\frac{m^-}{m^+} \]

然而,精确估计 \(\frac{m^-}{m^+}\) 通常很困难!

常见类别不平衡学习方法:

  • 过采样(oversampling)
    例如:SMOTE
  • 欠采样(undersampling)
    例如:EasyEnsemble
  • 阈值移动(threshold-moving)

多分类学习

拆解法:将一个多分类任务拆分为若干个二分类任务求解。

image-20240811215939740

OvO:

  • 训练 \(\frac{N(N-1)}{2}\) 个分类器,存储开销和测试时间大。
  • 训练只用两个类的样例,训练时间短。

OvR:

  • 训练 \(N\) 个分类器,存储开销和测试时间小。
  • 训练用到全部训练样例,训练时间长。

预测性能取决于具体数据分布,多数情况下两者差不多。

讨论

传统机器学习方法 vs. 当代大模型方法

image-20240811222619407

image-20240811222710275

image-20240811222827768

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/52953.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

春秋云镜 网鼎杯2022半决赛

春秋云镜 网鼎杯2022半决赛现用fscan扫一下访问发现是个wordpress,wpscan一下版本为6.2.6,使用了twentytwentyone theme 后台弱密码admin/123456登录 由于存在theme file editor,因此可以写马 随便找一个php文件,写入木马.使用蚁剑连接,路径之前wpscan给出来了.得到了第一个fla…

Windows提权方式汇总

windows 提权 一、土豆(potato)家族提权 原理 土豆提权就是通过 windows 的 COM(Component Object Model,组件对象模型)类。向指定的服务器端口发送 NTLM 认证,捕获认证数据包,并修改数据包内容使其认证成功,从而获得 system 权限的 token。在通过高权限的令牌执行反弹…

AxureRP原型图软件常见报错问题汇总

做Axure教程有一段时间了, 很多小伙伴在使用软件的时候就遇到很多问题,甚至还有在初始安装软件的时候就困难重重。这篇文章在你使用Axure软件过程中绝对可以用得到,赶紧点赞收藏起来~本期我们分为软件安装、和软件使用问题。本期只分享一些高频问题,如果你还遇到什么别的奇…

【PyTorch】n卡驱动、CUDA Toolkit、cuDNN全解安装教程

@目录GPU、NVIDIA Graphics Drivers、CUDA、CUDA Toolkit和cuDNN的关系使用情形判断仅仅使用PyTorch使用torch的第三方子模块安装NVIDIA Graphics Drivers(可跳过)前言Linux法一:图形化界面安装(推荐)法二:手动下载文件后命令行安装(不推荐)windows法一:GeForce Exper…

Triangle: The Data Structure(优秀の二维 ST 表)

link. 这种 RMQ 对像我这样萌新来说只有两种比较直观的方案:线段树 ST 表首先考虑线段树,如果是朴素的一维线段树,那么我们只能一行一行地扫,显然相比暴力优化了一些,但不多,最终还是会愉快地 T 掉(亲测)。 然后我不会超冷门的数据结构二维线段树。 所以蒟蒻只能用好写…

Python3.11二进制AI项目程序打包为苹果Mac App(DMG)-应用程序pyinstaller制作流程(AppleSilicon)

众所周知,苹果MacOs系统虽然贵为Unix内核系统,但由于系统不支持N卡,所以如果想在本地跑AI项目,还需要对相关的AI模块进行定制化操作,本次我们演示一下如何将基于Python3.11的AI项目程序打包为MacOS可以直接运行的DMG安装包,可以苹果系统中一键运行AI项目。 MacOs本地部署…

2.MapReduce论文总结

一. 介绍很多业务逻辑很简单,主要难点是数据量太大,可使用分布式处理提高速度。 传统分布式程序,计算逻辑和分布式任务分发、故障恢复混在一起,原本简单的计算逻辑变得模糊不清,难以处理。 MapReduce将两者分离,任务分发,容错,恢复等逻辑由模型完成,程序员只需要专注计…

Lab1 记录

一、非并行版本分析 1.非并行版本MapReduce流程通过第一个参数,传入Map和Reduce 函数 之后的参数为待处理文件名 读取文件 调用Map函数,对文件内容进行处理,生成KV对 对KV对进行sort 按照Key进行分组,然后对每组数据调用Reduce 将结果写入文件二、Lab思路 概述:Worker向Co…