机器学习简介

文章目录

  • 引言
  • 1. 从找规律说起
  • 2. 机器学习应用
    • 2.1 有监督学习
    • 2.2 无监督学习
      • 2.2.1 聚类
      • 2.2.2 降维
  • 3. 机器学习一般流程
  • 4. 机器学习常用概念
  • 5. 深度学习简介
    • 5.1 引入 -- 猜数字
    • 5.2 深度学习
      • 5.2.1 隐含层/中间层
      • 5.2.2 随机初始化
      • 5.2.3 损失函数
      • 5.2.4 导数与梯度
      • 5.2.5 梯度下降
      • 5.2.6 优化器
      • 5.2.7 Mini Batch & epoch
      • 5.2.8 深度学习总结
  • 6. 总结

引言

机器学习是人工智能(AI)的一个子领域,专注于使用算法和统计模型使计算机系统能够执行特定任务,而无需使用明确的指令。相反,它依赖于模式和推断。其核心思想是:给予机器大量数据,让机器从这些数据中学习,并逐渐改进它的预测或决策。

1. 从找规律说起

  • 2 4 6 8 ?

  • 机器学习视角
    在这里插入图片描述

  • 找到一个函数y = f(x) 使得 yi = f(xi)

  • 到这个函数后,用于预测其他x对应的y值

  • y = 2 * x

找规律

  • 复杂一点
  • X可以是多个值
  • X:(1,2) (10,20) (34,65) (79,43)
  • Y: 3 30 99 122
  • Y = ∑xi 或 Y = W * X, W=[1,1]
  • [1,1] * [1,2] = 11 + 12 = 3

还能再复杂

  • Y也可以是一个矩阵
  • X可以是多个矩阵
  • Y可以是多个矩阵
  • X可以是不同维度的多个向量
  • Y可以是不同维度的多个向量
  • X可以是多个不同维度矩阵
  • ……

2. 机器学习应用

  • 很多时候,我们有数据,希望找到规律,但规律很复杂,所以希望靠机器来挖掘规律
  • 知道花朵的大小、颜色等信息,来判断花的种类
  • 知道身体血压、血脂等指标,来预测是否患病
  • 知道房屋的大小、位置等信息,来预测房价
  • 知道企业的业务、规模等信息,来预测股价
  • 知道国家的人口、经济发展等信息,预测未来GDP

2.1 有监督学习

  • 核心目标:建立一个模型(函数),来描述输入(X)和输出(Y)之间的映射关系
  • 价值:对于新的输入,通过模型给出预测的输出

有监督学习要点

  1. 需要有一定数量的训练样本
  2. 输入和输出之间有关联关系
  3. 输入和输出可以数值化表示
  4. 任务需要有预测价值

在这里插入图片描述

有监督学习在人工智能中的应用

文本分类任务
输入:文本 输出:类别
关系:文本的内容决定了文本的类别

机器翻译任务
输入:A语种文本 输出:B语种文本
关系:A语种表达的意思,在B语种中有对应的方式

图像识别任务
输入:图像 输出:类别
关系:图中的像素排列,决定了图像的的内容

语音识别任务
输入:音频 输出:文本
关系:声音信号在特定语言中对应特定的文本

2.2 无监督学习

给予机器的数据没有标注信息,通过算法对数据进行一定的自动分析处理,得到一些结论

常见任务:聚类、降维、找特征值等等

2.2.1 聚类

此处可参考我的另一篇文章 K - Means聚类算法
聚类旨在将数据点组织成几个相似的群组或“簇”,这些群组内的成员比与其他群组的成员更相似。

核心概念:

  1. 簇:由相似的数据点组成的一个集合。
  2. 质心:一个簇中所有点的平均值或中心位置。

主要方法:

  1. K-均值聚类:预先设定要形成的簇的数量(K),然后迭代地将每个数据点分配给最近的质心,并重新计算质心。
  2. 层次聚类:形成一个由层次组成的树状图。它可以从每个数据点为一个簇开始,然后合并最相近的簇,或者开始时将所有点视为一个簇,然后逐渐分裂。
  3. DBSCAN:基于密度的聚类方法,它将高密度的区域划分为簇,并可以识别并忽略噪音点。
  4. GMM (高斯混合模型):假设所有数据由几个高斯分布组成,并使用期望最大化来估计这些分布。
    在这里插入图片描述

2.2.2 降维

此处可参考我的另一篇文章 PCA主成分分析

降维是机器学习和数据分析中的一个重要概念,它涉及将数据从高维空间转换到低维空间,同时尽量保留数据的重要信息或结构。降维通常用于数据可视化、性能优化、噪声消减以及避免“维度的诅咒”。

维度的诅咒:
随着维度的增加,数据的稀疏性增加,导致需要更多的数据来进行有效的学习,这使得高维数据变得难以处理。

常用的降维方法:

  1. 主成分分析(PCA):
  • 通过正交变换将一组可能相关的变量转换为一组线性不相关的变量,这些不相关的变量称为“主成分”。
  • 第一个主成分解释了原始数据中的最大方差,每个后续的成分都有尽可能小的方差。
  • PCA 是线性方法,可能不适合捕捉非线性关系。
  1. 线性判别分析(LDA):
  • 监督学习的降维技术,与PCA类似,但同时考虑类别信息。
  • 目标是最大化类间方差并最小化类内方差,以提高类的可分性。
  1. t-SNE (t-分布随机邻域嵌入):
  • 用于高维数据的可视化。
  • 通过概率分布将相似的对象映射到相似的位置,尤其适合捕捉数据中的复杂结构。
  1. 自编码器:
  • 是深度学习模型,通过尝试复制其输入来学习数据的有效表示。
  • 编码器部分将输入压缩到低维表示,解码器部分尝试从这个表示中重构输入。
  1. 奇异值分解(SVD):
  • 用于矩阵分解。
  • 可用于PCA的实现,也常用于推荐系统。

为什么要降维:

  1. 速度与存储:减少计算量和存储需求。
  2. 可视化:更容易地将高维数据映射到2D或3D,以进行可视化。
  3. 噪声减少:通过消除不重要的特征来减少噪声。
  4. 避免过拟合:减少特征的数量可以帮助模型避免过拟合。

3. 机器学习一般流程

在这里插入图片描述

4. 机器学习常用概念

  1. 训练集
    用于模型训练的训练数据集合
  2. 验证集
    对于每种任务一般都有多种算法可以选择,一般会使用验证集验证用于对比不同算法的效果差异
  3. 测试集
    最终用于评判算法模型效果的数据集合
  4. K折交叉验证(K fold cross validation)
    初始采样分割成K个子样本,一个单独的子样本被保留作为验证模型的数据,其他K-1个样本用来训练。交叉验证重复K次,每个子样本验证一次,平均K次的结果
  5. 过拟合
    模型失去了泛化能力。如果模型在训练集和验证集上都有很好的表现,但在测试集上表现很差,一般认为是发生了过拟合
  6. 欠拟合
    模型没能建立起合理的输入输出之间的映射。当输入训练集中的样本时,预测结果与标注结果依然相差很大

评价指标
为了评价算法效果的好坏,需要找到一种评价模型效果的计算指标。不同的任务会使用不同的评价指标。常用的评价指标有:

  1. 准确率
  2. 召回率
  3. F1值
  4. TopK
  5. BLEU…

回归问题
预测值为数值型(连续值)。如预测房价。

分类问题
预测值为类别(离散值)或在类别上的概率的分布。

  1. 特征
    模型输入需要数值化,对于较为抽象的输入,如声音,文字,情绪等信息,需要将其转化为数值,才能输入模型。转化后的输入,被称作特征。
  2. 特征工程
    筛选哪些信息值得(以特征的形式)输入模型,以及应当以何种形式输入的工作过程。对于机器学习而言非常重要。模型的输入,决定了模型能力的上限。

5. 深度学习简介

5.1 引入 – 猜数字

A: 我现在心里想了一个0-100之间的整数,你猜一下?
B: 60。
A: 低了。
B:80。
A:低了。
B:90。
A:高了
B:88。
A:对了!

  • 假如0~100内,A选取的数字是88
  • 在0~1000内,A选取的数字是888
  • 那么在0~10000内选取呢?
  • 可以认为,A先生选取数字是有规律的,这个规律与他选取范围的上限有关
  • 构建模型预测A心里想的数字
  • 模型输入:A给出的上限数值
  • 模型输出:A心里想的数值

首先B随便猜一个数 ----模型随机初始化
模型函数 :Y = k * x (此样本x = 100)
此例子中B选择的初始k值为0.6
计算B的猜测与真正答案的差距 ----计算loss
损失函数 = sign(y_true – y_pred)
A告诉B偏大或偏小 ----得到loss值
B调整了自己的“模型参数” ----反向传播
参数调整幅度依照B自定的策略 ----优化器&学习率
重复以上过程
最终B的猜测与A的答案一致 ----loss = 0

  • 想要快速获得正确的模型,AB可以有哪些可以优化的地方?
  • 1.随机初始化。
  • 假如B一开始选择的k值为88,则直接loss=0
  • NLP中的预训练模型实际上就是对随机初始化的技术优化
  • 2.优化损失函数
  • 假如损失函数为loss = y_true – y_pred
  • 即当B猜测60的时候,A告知低了28
  • 3.B调整参数的策略
  • B采取二分法调整,50 -> 75 -> 88
  • 4.调整模型结构
  • 不同模型能够拟合不同的数据集

5.2 深度学习

人工神经网络(Artificial Neural Networks,简称ANNs),也简称为神经网络(NN)。它是一种模仿动物神经网络行为特征,进行分布式并行信息处理的算法数学模型。
在这里插入图片描述

5.2.1 隐含层/中间层

神经网络模型输入层和输出层之间的部分
隐含层可以有不同的结构:
RNN
CNN
DNN
LSTM
Transformer
在这里插入图片描述

5.2.2 随机初始化

  • 隐含层中会含有很多的权重矩阵,这些矩阵需要有初始值,才能进行运算
  • 初始值的选取会影响最终的结果
  • 一般情况下,模型会采取随机初始化,但参数会在一定范围内
  • 在使用预训练模型一类的策略时,随机初始值被训练好的参数代替

5.2.3 损失函数

  • 损失函数(loss function或cost function)用来计算模型的预测值与真实值之间的误差。
  • 模型训练的目标一般是依靠训练数据来调整模型参数,使得损失函数到达最小值。
  • 损失函数有很多,选择合理的损失函数是模型训练的必要条件。

5.2.4 导数与梯度

导数表示函数曲线上的切线斜率。 除了切线的斜率,导数还表示函数在该点的变化率。
在这里插入图片描述

5.2.5 梯度下降

  • 梯度告诉我们函数向哪个方向增长最快,那么他的反方向,就是下降最快的方向
  • 梯度下降的目的是找到函数的极小值
  • 为什么要找到函数的极小值?
    因为我们最终的目标是损失函数值最小

5.2.6 优化器

  • 知道走的方向,还需要知道走多远
  • 如一步走太大,就可能错过最小值,如果一步走太小,又可能困在某个局部低点无法离开
  • 学习率(learning rate),动量(Momentum)都是优化器相关的概念
    在这里插入图片描述

5.2.7 Mini Batch & epoch

  • 一次训练数据集的一小部分,而不是整个训练集,或单条数据
  • 它可以使内存较小、不能同时训练整个数据集的电脑也可以训练模型。
  • 它是一个可调节的参数,会对最终结果造成影响
  • 不能太大,因为太大了会速度很慢。 也不能太小,太小了以后可能算法永远不会收敛。
  • 我们将遍历一次所有样本的行为叫做一个 epoch

5.2.8 深度学习总结

在这里插入图片描述

  • 训练迭代进行 模型训练好后把参数保存即可用于对新样本的预测
  • 要点:
  • 模型结构选择
  • 初始化方式选择
  • 损失函数选择
  • 优化器选择
  • 样本质量数量

6. 总结

  • 机器学习的本质,是从已知的数据中寻找规律,用来预测未知的样本
  • 深度学习是机器学习的一种方法
  • 度学习的基本思想,是先建立模型,并将模型权重随机初始化,之后将训练样本输入模型,可以得到模型预测值。使用模型预测值和真实标签可以计算loss。通过loss可以计算梯度,调整权重参数。简而言之,“先蒙后调”

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

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

相关文章

协议的分层结构

1.1TCP/IP 协议 为了使各种不同的计算机之间可以互联,ARPANet指定了一套计算机通信协议,即TCP/IP 协议(族). 注意TCP /IP 协议族指的不只是这两个协议 而是很多协议, 只要联网的都使用TCP/IP协议族 为了减少 协议设计的复杂度 ,大…

【Nginx】Nginx 简介

Ngnix 特点 模块化设计:良好的扩展性,可以通过模块方式进行功能扩展。高可靠性:主控进程和 worker 是同步实现的,一个 worker 出现问题,会立刻启动另一个 worker。内存消耗低:一万个长连接(kee…

Php“牵手”淘宝商品销量数据采集方法,淘宝API接口申请指南

淘宝天猫商品销量接口 API 是开放平台提供的一种 API 接口,它可以帮助开发者获取商品的详细信息,包括商品的标题、描述、图片,月销量,总销量等信息。在电商平台的开发中,销量接口API是非常常用的 API,因此本…

什么是遗传算法(Genetic Algorithm,简称 GA)?

目录 一、遗传算法介绍二、遗传算法应用场景三、遗传算法具体案列1、求解旅行商问题(TSP 问题)2、求解一个矩阵中的最大值3、基于遗传算法的图像压缩方法 四、遗传算法重要意义五、生物进化与遗传算法之间的关系 一、遗传算法介绍 遗传算法(…

天润融通「微藤大语言模型平台2.0」以知识驱动企业高速增长

8月23日,天润融通(又称“天润云”,2167.HK),正式发布「微藤大语言模型平台2.0」。 “大模型企业知识企业知识工程”。 “不能有效记录和管理知识的企业是不能持续进步的。在企业的生产流程中,相比于其他场景&#xff0…

【网络安全】防火墙知识点全面图解(二)

本系列文章包含: 【网络安全】防火墙知识点全面图解(一)【网络安全】防火墙知识点全面图解(二) 防火墙知识点全面图解(二) 21、路由器的访问控制列表是什么样的?22、防火墙的安全策…

情人节定制:HTML5 Canvas全屏七夕爱心表白特效

❤️ 前言 “这个世界乱糟糟的而你干干净净可以悬在我心上做太阳和月亮。”,七夕节表白日,你要错过吗?如果你言辞不善,羞于开口的话,可以使用 html5 canvas 制作浪漫的七夕爱心表白动画特效,全屏的爱心和…

【无标题】idea 中 SpringBoot 点击运行没反应,按钮成灰色

问题描述 在使用 Spring Boot 开发项目时,可能会遇到一个问题:点击运行按钮后,控制台没有任何输出,项目界面也没有显示。这种情况可能是由多种原因导致的,本文将介绍一些常见的解决方法。 解决方法 首先看下Groovy插…

AndroidStudio升级后总是Read Time Out的解决办法

AndroidStudio升级后在gradle的时候总是Time out,遇到过多次,总结一下解决办法 1、gradle下载超时 在工程目录../gradle/wrapper/gradle-wrapper.properties中找到gradle版本的下载链接,如下图: 将其复制到迅雷里下载&#xff0…

⛳ Java 网络编程

目录 ⛳ Java 网络编程🎨 一、TCP / IP 协议👣 二、IP 和 端口号🎁 三、TCP 网络层编程🎨 3.1、Socket⭐ 3.2、基于Socket的TCP编程 🏭 四、UDP网络编程🐾 五、URL编程 ⛳ Java 网络编程 🎨 一…

JavaSE 数组

定义: int []arr; int arr[]; 初始化 // 完整格式 int arr[] new int[]{1, 2, 3}; // 简单格式 int arr[] {1, 2, 3}; 数组的元素访问、遍历 按照下标访问即可。数组的长度函数为 arr.length()。idea快速生成遍历的方法:数组名.fori 静态初始化 &a…

MySQL-Centos下MySQL5.7安装教程

MySQL安装教程 一,卸载MySQL二,安装MySQL三,mysql登录四,修改配置文件 一,卸载MySQL 1.如果你的机器上mysqld服务器还在运行,那么第一步就是要停掉服务。 systemctl stop mysqld;2.查看系统中安装的关于m…

智慧城市能实现嘛?数字孪生又在其中扮演什么角色?

数字孪生智慧城市是将数字孪生技术与城市智能化相结合的新兴概念,旨在通过实时数字模拟城市运行,优化城市管理与服务,创造更智能、高效、可持续的城市环境。 在智慧城市中,数字孪生技术可以实时收集、分析城市各个方面的数据&…

solidity0.8.0的应用案例13:数字签名及应用:NFT白名单

以太坊中的数字签名ECDSA,以及如何利用它发放NFT白名单 代码中的ECDSA库由OpenZeppelin的同名库简化而成。 数字签名 如果你用过opensea交易NFT,对签名就不会陌生。下图是小狐狸(metamask)钱包进行签名时弹出的窗口,它可以证明你拥有私钥的同时不需要对外公布私钥。 …

使用 SQLStudio 进行数据库管理并通过 Docker Compose 进行部署

在现代软件开发中,数据库管理是一个至关重要的环节。SQLStudio 是一个强大的工具,可以帮助开发人员轻松管理数据库,现在改名成SQLynx,我们用的是旧的镜像,本文还是用SQLStudio这个名称。同时,使用 Docker C…

服务器基础

基础 介绍 可以理解为企业级的电脑,比个人使用的电脑具备更强的配置、性能、可靠性及稳定性。设计工艺和器件全部采用企业级设计,保障7*24小时稳定运行。 演进历史 处理性能 外观 发展方向 分类 按外形分类 按高度分类 按应用分类 按综合能力分类…

css-选择器、常见样式、标签分类

CSS CSS简介 层叠样式表(英文全称:Cascading Style Sheets)是一种用来表现HTML(标准通用标记语言的一个应用)或XML(标准通用标记语言的一个子集)等文件样式的计算机语言。CSS不仅可以静态地修饰网页,还可…

ubuntu18.04复现yolo v8之CUDA与pytorch版本问题以及多CUDA版本安装及切换

最近在复现yolo v8的程序,特记录一下过程 环境:ubuntu18.04ros melodic 小知识:GPU并行计算能力高于CPU—B站UP主说的 Ubuntu可以安装多个版本的CUDA。如果某个程序的Pyorch需要不同版本的CUDA,不必删除之前的CUDA,…

选择排序:用C语言打造高效的排序算法

本篇博客会讲解如何使用C语言实现选择排序。 下面我来画图讲解选择排序的思路。 假设有一个数组,其初始状态如下,我们想把这个数组排成升序。 首先我们标明范围,即[begin, end],一开始begin(b)和end(e)分别表示数组的第一个位置…

【数据结构】实现栈和队列

目录 一、栈1.栈的概念及结构(1)栈的概念(2)栈的结构 2.栈的实现(1)类型和函数的声明(2)初始化栈(3)销毁(4)入栈(5&#x…