【深度学习】机器学习概述(一)机器学习三要素——模型、学习准则、优化算法

news2024/12/27 13:49:14


文章目录

  • 一、基本概念
  • 二、机器学习的三要素
    • 1. 模型
      • a. 线性模型
      • b. 非线性模型
    • 2. 学习准则
      • ==a. 损失函数==
        • 1. 0-1损失函数
        • 2. 平方损失函数(回归问题)
        • 3. 交叉熵损失函数(Cross-Entropy Loss)
        • 4. Hinge 损失函数
      • b. 风险最小化准则
        • 1. 经验风险最小化
        • 2. 过拟合问题
        • 3. 结构风险最小化
        • 4. 正则化项的选择
        • 5. 欠拟合
    • 3. 优化
      • 机器学习问题转化成为一个最优化问题
      • a. 参数与超参数
      • b. 优化算法
      • 机器学习 = 优化?

一、基本概念

  机器学习:通过算法使得机器能从大量数据中学习规律从而对新的样本做决策
在这里插入图片描述

二、机器学习的三要素

  机器学习是从有限的观测数据中学习(或“猜测”)出具有一般性的规律,并可以将总结出来的规律推广应用到未观测样本上。
  机器学习方法可以粗略地分为三个基本要素:模型、学习准则、优化算法

1. 模型

a. 线性模型

  线性模型是一类简单但广泛应用的模型,其假设空间为一个参数化的线性函数族。对于分类问题,一般使用广义线性函数,其表达式为:
f ( x ; θ ) = w T x + b f(\mathbf{x}; \boldsymbol{\theta}) = \mathbf{w}^T \mathbf{x} + b f(x;θ)=wTx+b

其中,参数 θ \boldsymbol{\theta} θ 包含了权重向量 w \mathbf{w} w 和偏置 b b b。在这个模型中,输入特征 x \mathbf{x} x 和权重向量 w \mathbf{w} w 的线性组合用于产生输出。这是一个简单而有效的模型,特别适用于问题的线性关系。

b. 非线性模型

  广义的非线性模型可以写为多个非线性基函数 ϕ ( x ) \boldsymbol{\phi}(\mathbf{x}) ϕ(x) 的线性组合: f ( x ; θ ) = w T ϕ ( x ) + b f(\mathbf{x}; \boldsymbol{\theta}) = \mathbf{w}^T \boldsymbol{\phi}(\mathbf{x}) + b f(x;θ)=wTϕ(x)+b其中, ϕ ( x ) = [ ϕ 1 ( x ) , ϕ 2 ( x ) , … , ϕ K ( x ) ] T \boldsymbol{\phi}(\mathbf{x}) = [\phi_1(\mathbf{x}), \phi_2(\mathbf{x}), \ldots, \phi_K(\mathbf{x})]^T ϕ(x)=[ϕ1(x),ϕ2(x),,ϕK(x)]T 是由 K K K 个非线性基函数组成的向量,参数 θ \boldsymbol{\theta} θ 包含了权重向量 w \mathbf{w} w 和偏置 b b b

  如果 ϕ ( x ) \boldsymbol{\phi}(\mathbf{x}) ϕ(x) 本身是可学习的基函数,例如:

ϕ k ( x ) = h ( w k T ϕ ′ ( x ) + b k ) \phi_k(\mathbf{x}) = h(\mathbf{w}_k^T \boldsymbol{\phi}'(\mathbf{x}) + b_k) ϕk(x)=h(wkTϕ(x)+bk)其中, h ( ⋅ ) h(\cdot) h() 是非线性函数, ϕ ′ ( x ) \boldsymbol{\phi}'(\mathbf{x}) ϕ(x) 是另一组基函数, w k \mathbf{w}_k wk b k b_k bk 是可学习的参数,那么模型 f ( x ; θ ) f(\mathbf{x}; \boldsymbol{\theta}) f(x;θ) 就等价于神经网络模型。

  这种非线性模型通过引入非线性基函数 ϕ ( x ) \boldsymbol{\phi}(\mathbf{x}) ϕ(x) 能够更灵活地适应数据中的复杂关系,使得模型能够捕捉到更丰富的特征信息。神经网络是非线性模型的一种重要实现方式

2. 学习准则

a. 损失函数

1. 0-1损失函数

  0-1 损失函数是最直观的损失函数,用于衡量模型在训练集上的错误率。定义为:

L ( y , f ( x ; θ ) ) = { 0 if  y = f ( x ; θ ) 1 if  y ≠ f ( x ; θ ) \mathcal{L}(y, f(\mathbf{x}; \boldsymbol{\theta})) = \begin{cases} 0 & \text{if } y = f(\mathbf{x}; \boldsymbol{\theta}) \\ 1 & \text{if } y \neq f(\mathbf{x}; \boldsymbol{\theta}) \end{cases} L(y,f(x;θ))={01if y=f(x;θ)if y=f(x;θ)

或者使用指示函数表示:

L ( y , f ( x ; θ ) ) = I ( y ≠ f ( x ; θ ) ) \mathcal{L}(y, f(\mathbf{x}; \boldsymbol{\theta})) = \mathbb{I}(y \neq f(\mathbf{x}; \boldsymbol{\theta})) L(y,f(x;θ))=I(y=f(x;θ))

其中, I ( ⋅ ) \mathbb{I}(\cdot) I() 是指示函数。

  尽管0-1损失函数直观,但由于其非连续性和不可导性,通常用其他连续可导的损失函数替代。

2. 平方损失函数(回归问题)

  平方损失函数常用于回归问题,定义为:
L ( y , f ( x ; θ ) ) = 1 2 ( y − f ( x ; θ ) ) 2 \mathcal{L}(y, f(\mathbf{x}; \boldsymbol{\theta})) = \frac{1}{2}(y - f(\mathbf{x}; \boldsymbol{\theta}))^2 L(y,f(x;θ))=21(yf(x;θ))2

平方损失函数适用于预测标签为实数值的任务,但一般不适用于分类问题。

3. 交叉熵损失函数(Cross-Entropy Loss)

  可用于分类任务,用于衡量两个概率分布之间的差异

交叉熵损失函数常用于分类问题。假设样本的标签 y y y 为离散的类别,模型的输出为类别标签的条件概率分布:
p ( y = c ∣ x ; θ ) = f c ( x ; θ ) p(y = c|\mathbf{x}; \boldsymbol{\theta}) = f_c(\mathbf{x}; \boldsymbol{\theta}) p(y=cx;θ)=fc(x;θ)

其中, f c ( x ; θ ) f_c(\mathbf{x}; \boldsymbol{\theta}) fc(x;θ) 表示模型输出向量的第 c c c 维。交叉熵损失函数定义为:

L ( y , f ( x ; θ ) ) = − ∑ c = 1 C y c log ⁡ f c ( x ; θ ) \mathcal{L}(\mathbf{y}, f(\mathbf{x}; \boldsymbol{\theta})) = -\sum_{c=1}^C y_c \log f_c(\mathbf{x}; \boldsymbol{\theta}) L(y,f(x;θ))=c=1Cyclogfc(x;θ)

其中, y \mathbf{y} y 是样本的真实标签向量,表示类别 y y y 的one-hot向量。

4. Hinge 损失函数

  Hinge损失函数通常用于支持向量机等二分类问题,定义为:

L ( y , f ( x ; θ ) ) = max ⁡ ( 0 , 1 − y f ( x ; θ ) ) \mathcal{L}(y, f(\mathbf{x}; \boldsymbol{\theta})) = \max(0, 1 - yf(\mathbf{x}; \boldsymbol{\theta})) L(y,f(x;θ))=max(0,1yf(x;θ))

或使用ReLU函数表示:

L ( y , f ( x ; θ ) ) = [ 1 − y f ( x ; θ ) ] + \mathcal{L}(y, f(\mathbf{x}; \boldsymbol{\theta})) = [1 - yf(\mathbf{x}; \boldsymbol{\theta})]_+ L(y,f(x;θ))=[1yf(x;θ)]+

其中, [ x ] + = max ⁡ ( 0 , x ) [x]_+ = \max(0, x) [x]+=max(0,x)

  这些损失函数在不同的任务和模型中发挥着关键的作用,选择合适的损失函数是模型设计中的重要决策。

b. 风险最小化准则

  在机器学习中,风险最小化准则是为了找到一个模型,使其在未知数据上的期望错误最小。然而,由于我们无法直接计算期望风险,通常使用经验风险(在训练集上的平均损失)来代替。以下是相关概念:

1. 经验风险最小化

  经验风险(Empirical Risk)是模型在训练集上的平均损失,表示为:

R emp ( θ ) = 1 N ∑ n = 1 N L ( y ( n ) , f ( x ( n ) ; θ ) ) \mathcal{R}_{\text{emp}}(\boldsymbol{\theta}) = \frac{1}{N} \sum_{n=1}^{N} \mathcal{L}(y^{(n)}, f(\mathbf{x}^{(n)}; \boldsymbol{\theta})) Remp(θ)=N1n=1NL(y(n),f(x(n);θ))

其中, L \mathcal{L} L 是损失函数, N N N 是训练集中样本的数量。经验风险最小化准则的目标是找到一组参数 θ ∗ \boldsymbol{\theta}^* θ 使经验风险最小化:

θ ∗ = arg ⁡ min ⁡ θ R emp ( θ ) \boldsymbol{\theta}^* = \arg\min_{\boldsymbol{\theta}} \mathcal{R}_{\text{emp}}(\boldsymbol{\theta}) θ=argθminRemp(θ)

这被称为经验风险最小化(Empirical Risk Minimization,ERM)准则。

2. 过拟合问题

  由于训练集通常是有限的,并且可能包含噪声,直接最小化经验风险可能导致模型在训练集上表现很好,但在未知数据上表现很差,即发生过拟合。

3. 结构风险最小化

  为了防止过拟合,可以在经验风险最小化的基础上引入正则化项,得到结构风险最小化(Structure Risk Minimization,SRM)准则:

θ ∗ = arg ⁡ min ⁡ θ ( R emp ( θ ) + λ 2 ∥ θ ∥ 2 2 ) \boldsymbol{\theta}^* = \arg\min_{\boldsymbol{\theta}} \left( \mathcal{R}_{\text{emp}}(\boldsymbol{\theta}) + \frac{\lambda}{2} \|\boldsymbol{\theta}\|_2^2 \right) θ=argθmin(Remp(θ)+2λθ22)

其中, λ \lambda λ 是正则化参数,控制正则化的强度。正则化项 λ 2 ∥ θ ∥ 2 2 \frac{\lambda}{2} \|\boldsymbol{\theta}\|_2^2 2λθ22 通过限制参数的大小,有助于防止过拟合。

4. 正则化项的选择

  正则化项可以使用不同的函数,例如 ℓ 1 \ell_1 1 范数。正则化的引入通常可以被解释为引入了参数的先验分布,使其不完全依赖于训练数据,从而有助于泛化。正则化的选择需要在模型训练中进行调整,以平衡经验风险和正则化项之间的权衡。

5. 欠拟合

  相反的情况是欠拟合(Underfitting),它发生在模型能力不足,不能很好地拟合训练数据,导致在训练集上的错误率较高。

  机器学习的目标不仅仅是在训练集上获得好的拟合,还需要在未知数据上表现良好,即具有较低的泛化错误。因此,学习准则的选择应该考虑到模型的泛化能力,防止过拟合和欠拟合的发生。

3. 优化

机器学习问题转化成为一个最优化问题

  一旦确定了训练集 D \mathcal{D} D、假设空间 F \mathcal{F} F 以及学习准则,接下来的任务就是通过优化算法找到最优的模型 f ( x , θ ∗ ) f(\mathbf{x}, \boldsymbol{\theta}^*) f(x,θ)。机器学习的训练过程本质上是最优化问题的求解过程。

a. 参数与超参数

  优化可以分为参数优化和超参数优化两个方面:

  1. 参数优化: ( x ; θ ) (\mathbf{x}; \boldsymbol{\theta}) (x;θ) 中的 θ \boldsymbol{\theta} θ 称为模型的参数,这些参数通过优化算法进行学习。这些参数可以通过梯度下降等算法迭代地更新,以使损失函数最小化。

  2. 超参数优化: 除了可学习的参数 θ \boldsymbol{\theta} θ 外,还有一类参数用于定义模型结构或优化策略,这些参数被称为超参数。例如,聚类算法中的类别个数、梯度下降法中的学习率、正则化项的系数、神经网络的层数、支持向量机中的核函数等都是超参数。与可学习的参数不同,超参数的选取通常是一个组合优化问题,很难通过优化算法自动学习。通常,超参数的设定是基于经验或者通过搜索的方法对一组超参数组合进行不断试错调整。

b. 优化算法

  在训练模型的过程中,常用的优化算法包括梯度下降法、随机梯度下降法、牛顿法等。这些算法的核心思想是通过迭代更新模型的参数,使损失函数逐渐减小

  1. 梯度下降法(Gradient Descent): 基本思想是沿着损失函数的梯度方向调整参数,以减小损失。学习率是一个重要的超参数,控制了每次迭代中参数更新的步长。

  2. 随机梯度下降法(Stochastic Gradient Descent,SGD): 与梯度下降法类似,但每次迭代只随机选择一个样本进行参数更新,通常更适用于大规模数据集。

  3. 牛顿法(Newton’s Method): 利用损失函数的二阶导数信息进行参数更新,收敛速度通常比梯度下降法快,但计算代价较高。

  4. 共轭梯度法(Conjugate Gradient): 特别适用于解线性方程组问题。

  5. 拟牛顿法(Quasi-Newton): 通过近似 Hessian 矩阵来加速梯度下降法的收敛速度。

  6. Adam、Adagrad、RMSprop 等自适应学习率算法: 这些算法通过自适应地调整学习率,使得不同参数可以有不同的学习速度。

  选择合适的优化算法以及超参数是训练过程中的关键问题,通常需要进行实验和调参来获得最佳性能。

机器学习 = 优化?

  机器学习并不是只是单纯追求最小化经验风险

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

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

相关文章

如何在 Windows 10/11 上恢复已删除的 Word 文档

意外删除重要的 Word 文档可能会令人心碎。当文件恰好非常重要时尤其如此。关键数据的丢失可能会导致沮丧和恐慌,因为数小时的辛勤工作和有价值的信息似乎消失得无影无踪。然而,在您屈服于绝望之前,有个好消息。 有多种技术和工具可帮助您恢…

【AI美图】第04期效果图,AI人工智能无绘画,精选五组特写版美图欣赏

标题好看的照片让AI实现 也许你不相信吧,这么秀的照片居然全部是电脑合成AI妙手,一键打造,速度之快,效果之好,任谁都不愿意相信,然后在今天这一切都是现实的,现在让我们从照片的拍摄谈谈什么样的…

准备迎接超级人工智能系统,OpenAI宣布RLHF即将终结!超级对齐技术将接任RLHF,保证超级人工智能系统遵循人类的意志

本文原文来自DataLearnerAI: 准备迎接超级人工智能系统,OpenAI宣布RLHF即将终结!超级对齐技术将接任RLHF,保证超级人工智能系统遵循人类的意志 | 数据学习者官方网站(Datalearner)https://www.datalearner.com/blog/105170265526…

RocketMQ —消费重试

消费者出现异常,消费某条消息失败时, Apache RocketMQ 会根据消费重试策略重新投递该消息进行故障恢复。本文介绍消费重试机制的原理、版本兼容性和使用建议。 一、应用场景​ Apache RocketMQ 的消费重试主要解决的是业务处理逻辑失败导致的消费完整性…

EasyExcel读取Excel数据(含多种方式)

目录 EasyExcel简介 使用EasyExcel进行读数据 引入依赖: EasyExcel提供了两种读取模式 使用 监听器 读取模式 1.创建一个实体类 2.创建监听器 代码 使用 同步读 读取模式 1.创建一个实体类 2.代码 添加导入数据库的逻辑 其实官方文档讲得很清楚&#xff…

git 的使用

git reset详解-CSDN博客 git reset 命令详解 git revert命令详解。-CSDN博客 关于Git分支中HEAD和Master的理解 - 知乎 (zhihu.com) 一文带你精通 Git(Git 安装与使用、Git 命令精讲、项目的推送与克隆)-CSDN博客 Git 常用操作(5&#xff…

【Linux】tree命令使用

tree命令 tree命令用于以树状图列出目录的内容。 语法 tree [参数] [目录] tree 命令 -Linux手册页 bash: tree: 未找到命令... 安装tree yum -y install tree如果你系统中有安装tree 但是还是执行找不到该命令的话,那原因就是:环境变量错误&#x…

智能优化算法应用:基于热交换算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用:基于热交换算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用:基于热交换算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.热交换算法4.实验参数设定5.算法结果6.参考文…

【数字电路】MacBook使用iverilog进行数字电路仿真

安装流程 在终端中用brew包管理工具进行安装仿真工具: 编译verilog代码: brew install icarus-verilog编译verilog代码: brew install verilatorMacOS系统显示UNIX GUI brew install xquartz可视化仿真波形图: brew install gtk…

2024年天津体育学院专升本专业课网上报名确认缴费安排

天津体育学院2024年高职升本科专业考试报名安排 一、时间安排 1.报名时间:2023年12月19日9:00-12月21日17:00 2.缴费时间:2023年12月26日-27日 (考试考务费:体育教育专业:160元/人&#xff…

项目中使用Arrays.asList、ArrayList.subList的坑

使用Arrays.asList的注意事项 1.1 可能会踩的坑 先来看下Arrays.asList的使用&#xff1a; List<Integer> statusList Arrays.asList(1, 2); System.out.println(statusList); System.out.println(statusList.contains(1)); System.out.println(statusList.contains(3)…

C之switch小问题

执行结果&#xff1a; 为什么会是100呢&#xff1f; 因为C语言会忽视 switch语句与第一个case之间的code&#xff0c;也就是根本不会执行 “num100;

el-date-picker 选择一个或多个日期

el-date-picker可选择多个日期 type“dates” 加个s即可 <div><span>el-date-picker选择多个日期</span><el-date-pickertype"dates"v-model"dateList"placeholder"选择一个或多个日期"></el-date-picker></di…

RabbitMQ插件详解:rabbitmq_message_timestamp【Rabbitmq 五】

欢迎来到我的博客&#xff0c;代码的世界里&#xff0c;每一行都是一个故事 RabbitMQ时空之旅&#xff1a;rabbitmq_message_timestamp的奇妙世界 前言什么是rabbitmq_message_timestamprabbitmq_message_timestamp 的定义与作用&#xff1a;如何在 RabbitMQ 中启用消息时间戳&…

聚观早报 |红魔9 Pro氘锋透明银翼版开售;荣耀90 GT将发布

【聚观365】12月16日消息 红魔9 Pro氘锋透明银翼版开售 荣耀90 GT将发布 德国成功化解预算僵局 第二届起点读书“网文填坑节”收官 阿维塔科技拟 2025 年赴港上市 红魔9 Pro氘锋透明银翼版开售 现在有最新消息&#xff0c;近日红魔9 Pro氘锋透明银翼版本开启全款预售&…

Java实现插入排序及其动图演示

插入排序是一种简单直观的排序算法。它的基本思想是将一个待排序的元素插入到已经排序好的序列中的适当位置&#xff0c;从而得到一个新的、元素个数加一的有序序列。 具体的插入排序算法过程如下&#xff1a; 从第一个元素开始&#xff0c;认为第一个元素已经是有序序列。取…

C/C++ STL提供的序列式容器之deque

deque是双向开口的连续内存空间&#xff08;动态将多个连续空间通过指针数组接合在一起&#xff09;&#xff0c;随时可以增加一段新的空间。 deque 的最大任务就是在这些分段的连续空间上&#xff0c;维护其整体连续的假象&#xff0c;并提供随机存取的接口。 特点 1. 一…

风速预测(五)基于Pytorch的EMD-CNN-LSTM模型

目录 前言 1 风速数据EMD分解与可视化 1.1 导入数据 1.2 EMD分解 2 数据集制作与预处理 2.1 先划分数据集&#xff0c;按照8&#xff1a;2划分训练集和测试集 2.2 设置滑动窗口大小为96&#xff0c;制作数据集 3 基于Pytorch的EMD-CNN-LSTM模型预测 3.1 数据加载&…

KMP算法, 什么是KMP算法 ,暴力匹配 ,KMP算法实现

文章目录 KMP算法什么是KMP算法暴力匹配KMP算法实现 KMP算法 什么是KMP算法 KMP是Knuth、Morris和Pratt首字母的缩写&#xff0c;KMP也是由这三位学者发明&#xff08;1977年联合发表论文&#xff09;。 KMP主要应用在字符串的匹配&#xff0c;是一个解决模式串在文本串是否…

OxLint 发布了,Eslint 何去何从?

由于最近的rust在前端领域的崛起&#xff0c;基于rust的前端生态链遭到rust底层重构&#xff0c;最近又爆出OxLint&#xff0c;是一款基于Rust的linter工具Oxlint在国外前端圈引起热烈讨论&#xff0c;很多大佬给出了高度评价&#xff1b;你或许不知道OxLint&#xff0c;相比ES…