首页 > 其他分享 >机器学习简介

机器学习简介

时间:2024-08-25 18:37:15浏览次数:12  
标签:机器 简介 sum boldsymbol 学习 frac 模型 mathrm

机器学习简介

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

标签:机器,简介,sum,boldsymbol,学习,frac,模型,mathrm
From: https://www.cnblogs.com/imyhy/p/18379287

相关文章

  • 20-学习卷积核
    importtorchimporttorch.nnasnnX=torch.rand((6,8))Y=torch.rand((6,7))#(批量⼤⼩、通道、⾼度、宽度)X=X.reshape((1,1,6,8))Y=Y.reshape((1,1,6,7))lr=3e-2#构造卷积层PyTorch会使用默认的初始化方法,例如Xavier初始化或Kaim初始化,来......
  • 学习之adb命令
    adb命令作用:用来操作手机系统的类似于window的cmd,linux的bash如果添加环境变量的adb不能识别设备通常是因为存在两个不同的版本如下:adbdevices如果没有发现,可以尝试手动连接设备adbconnect127.0.0.1:62001查看前台应用activity应用名称adbshelldumpsysact......
  • 雷达的简介
    雷达(Radar,RadioDetectionandranging)是利用电磁波探测目标的电子设备。其发射的电磁波在遇到物体时会被反射回来,通过对回波信号进行一系列处理,便可以得到该物体距发射点距离、高度、方位等信息。1、雷达的起源雷达的起源最早可以追溯到19世纪,法拉第提出电磁场概念。而......
  • 从零开始学习C++之枚举与模拟
    枚举和模拟是C++中最为基础的算法,也是之后赛时部分分的算法首选。枚举顾名思义,枚举就是将所有值全部扫一遍。枚举算法的流程图如下:我们很容易就可以写出伪代码:for(枚举区间){ 代码,例: if(条件) { 输出 }}模拟模拟就是将做的事情通过程序一步步完成,有时候很简......
  • 自然语言处理与情绪智能简介
    自然语言处理(NLP)基础:语言模型ChatGPT能力语言理解和生成能力抽象能力强大的学习和泛化能力自然语言处理交叉学科:计算机科学、人工智能/机器学习、语言学等自然语言理解:理解文字的含义自然语言生成:用文字表达特定的意图和思想利用计算机对自然语言进行各种加工处理、信息......
  • [行业调研] 2024世界机器人大会
    展会见闻记录看到的零碎信息从身体结构的维度机械臂:吸取小物体,放到另一个区域。这种任务在各种环境下都能精准完成,相对于人类有优势。灵巧手:看到各种自由度的手,手掌/手指正面覆盖了很多触觉传感器,有些甚至还布置了摄像头。AGV:仓库托运重物,物流机器人。仿生机器人:......
  • 【鸿蒙学习】HarmonyOS应用开发者高级认证 - 应用DFX能力介绍(含闯关习题)
    学完时间:2024年8月24日学完排名:第1698名一、PerformanceAnalysisKit简介PerformanceAnalysisKit(性能分析服务)为开发者提供应用事件、日志、跟踪分析工具,可观测应用运行时状态,用于行为分析、故障分析、安全分析、统计分析,帮助开发者持续改进应用体验。使用场景应用......
  • 深度学习 回归问题
    1.梯度下降算法深度学习中,梯度下降算法是是一种很重要的算法.梯度下降算法与求极值的方法非常类似,其核心思想是求解x′x'......
  • AC 自动机 学习笔记
    前言本来时今年寒假学的,当时回家比较早没学完也没学明白,打模拟赛却多次用到,所以重学一下。原理与定义即字典树(trie树)加\(fail\)指针,\(fail\)指针等同于kmp的\(next\)数组,匹配前缀的最长后缀,\(fail\)指针单独拎出来构成一颗失配树(fail树)。插入同trie树,全部插完后......
  • CMake构建学习笔记5-libtiff库的构建
    libtiff是一个开源库,用于读写TIFF(TaggedImageFileFormat)文件。使用CMake进行构建的关键指令如下所示:#配置CMakecmake..-G"$Generator"-Ax64`-DCMAKE_BUILD_TYPE=RelWithDebInfo`-DCMAKE_PREFIX_PATH="$InstallDir"`-DCMAKE_INSTALL_PREFIX="$In......