机器学习简介

文章目录

  • 引言
  • 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.rhkb.cn/news/107673.html

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

相关文章

VScode 编辑器报错: ‘HelloWorld‘ is declared but its value is never read.

.vue文件被标识红色波浪线;提示: HelloWorld is declared but its value is never read. 问题原因: 因为vue3已经不支持vetur插件。 1、在扩展里面进行搜索Vetur插件,进行禁用或卸载; 2、在 VScode扩展里面搜索并下载…

浅谈大数据智能审计如何助力审计工作

随着互联网大数据的持续发展,大数据审计近年来面对着相等的机遇和挑战。那么,如果利用大数据等相关技术对审计工作作出突出贡献,单位和企业又该从何入手做好大数据审计工作应用,这些都成为每位审计人员将要面临的重要问题。 1. 政…

使用WebDriver采样器将JMeter与Selenium集成

第一步: 在JMeter中添加Selenium / WebDriver插件 第二步: 创建一条测试计划–添加线程组 添加配置元素 - jpgc - WebDriver Sampler 添加配置元素 - jpgc - Chrome Driver Config 并且添加监听器查看结果树 第三步: 下载 chromedriver…

Unity 3D之 利用Vector3 计算移动方向,以及实现位移多少

文章目录 先分析代码,从代码中了解Vector3 moveDirection new Vector3(10f, 0f, 100f);合法吗Vector3 moveDirection new Vector3 (xf,yf,zf)不是用来表示三维坐标的怎么表示在某个方向的位移 先分析代码,从代码中了解 这段代码是一个在游戏开发中常见…

Linux 多线程基础

文章目录 前言一、多线程基础函数1. pthread_create2. pthread_self3. pthread_exit4. pthread_join5. pthread_cancel6. pthread_detach 二、线程间的共享数据三、多线程 &#xff0c;进程对比总结 前言 一、多线程基础函数 1. pthread_create 创建新的线程。 #include <…

数组名和函数名是指针?指针和引用底层一样?

在2023/8/26日晚上&#xff0c;我看到一个所谓“典”的视频&#xff0c;一开始还没太在意&#xff0c;后面想了想发现我貌似也一直犯了以下的错误&#xff0c;而错误的原因在于我在新手阶段学习C/C并不是查阅文档扎好脚步学习的&#xff0c;而是被铺天盖地的新手学习基础教程里…

基于Java+SpringBoot+Vue前后端分离纺织品企业财务管理系统设计和实现

博主介绍&#xff1a;✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专…

uni-app 分不清的全局变量this, uni, $u, vm, uni.$u, this.$u

项目引入了uview,并将uview所有模块指给uniapp全局变量uni uni.$u$u 在登录页面&#xff0c;或者APP.vue打印以下变量&#xff1a; this, uni, $u, vm, uni.$u, this.$u

2023科隆游戏展:虚幻5游戏百花齐放,云渲染助力虚幻5高速渲染

8月23日&#xff0c;欧洲权威级游戏展示会——科隆游戏展拉开帷幕。今年的参展游戏也相当给力&#xff0c;数十款游戏新预告片在展会上公布&#xff0c;其中有不少游戏使用虚幻5引擎制作&#xff0c;开创了游戏开发新纪元。 虚幻5游戏百花齐放&#xff0c;渲染堪比电影级效果 …

2023年国赛 高教社杯数学建模思路 - 案例:随机森林

文章目录 1 什么是随机森林&#xff1f;2 随机深林构造流程3 随机森林的优缺点3.1 优点3.2 缺点 4 随机深林算法实现 建模资料 ## 0 赛题思路 &#xff08;赛题出来以后第一时间在CSDN分享&#xff09; https://blog.csdn.net/dc_sinor?typeblog 1 什么是随机森林&#xff…

2023年国赛 高教社杯数学建模思路 - 案例:粒子群算法

文章目录 1 什么是粒子群算法&#xff1f;2 举个例子3 还是一个例子算法流程算法实现建模资料 # 0 赛题思路 &#xff08;赛题出来以后第一时间在CSDN分享&#xff09; https://blog.csdn.net/dc_sinor?typeblog 1 什么是粒子群算法&#xff1f; 粒子群算法&#xff08;Pa…

陕西广电 HG6341C FiberHome烽火 光猫获取超级密码 改桥接模式 提升网速

光猫默认的路由模式实测在100M宽带下只能跑到60M左右&#xff0c;只有改成桥接模式才能跑满&#xff0c;不损失性能。但是改桥接需要给运营商打电话&#xff0c;有的时候不想麻烦他们&#xff0c;这时获取超级密码进行更改就是一个不错的选择了 分析 之前写了一篇HGU B2 光猫的…

基于海洋捕食者算法优化的BP神经网络(预测应用) - 附代码

基于海洋捕食者算法优化的BP神经网络&#xff08;预测应用&#xff09; - 附代码 文章目录 基于海洋捕食者算法优化的BP神经网络&#xff08;预测应用&#xff09; - 附代码1.数据介绍2.海洋捕食者优化BP神经网络2.1 BP神经网络参数设置2.2 海洋捕食者算法应用 4.测试结果&…

PCI9054入门1:硬件引脚定义、时序、FPGA端驱动源码

文章目录 1&#xff1a;PCI9054的FPGA侧&#xff08;local侧引脚定义&#xff09;2&#xff1a;PCI9054的C模式下的读写时序3&#xff1a;FPGA代码部分具体代码&#xff1a; 1&#xff1a;PCI9054的FPGA侧&#xff08;local侧引脚定义&#xff09; 而PCI9054的本地总线端的主要…

【python】jupyter notebook导出pdf和pdf不显示中文问题

文章目录 写在前面1. 使用jupyter notebook导出pdf1.1 安装Pandoc1.2 安装MiKTex1.3 示例导出pdf 2. 中文显示问题2.1 显示中文问题示例2.2 解决办法1&#xff1a;修改tex2.3 解决办法2&#xff1a;修改内置文件 写在前面 使用jupyter notebook导出pdf时&#xff0c;出现了一些…

KVM创建虚拟机可访问外网+可使用Xshell等工具连接

创建虚拟机时使用桥接网络模块即可&#xff0c;如下&#xff1a; 1、创建一个存储卷(虚拟机的磁盘) 2、创建虚拟机时选择网络 3、系统安装完成后配置固定IP地址 vi /etc/sysconfig/network-scripts/ifcfg-eth0ONBOOTyes BOOTPROTOstatic IPADDR16.32.15.60 GATEWAY16.32.15.2…

统计学补充概念-13-逻辑回归

概念 逻辑回归&#xff08;Logistic Regression&#xff09;实际上是一种用于解决分类问题的统计学习方法&#xff0c;尽管其名称中带有"回归"一词&#xff0c;但它主要用于处理分类任务。逻辑回归用于预测一个事件发生的概率&#xff0c;并将其映射到一个特定的输出…

QtWidgets和QtQuick融合(QML与C++融合)

先放一个界面效果吧&#xff01; 说明&#xff1a;该演示程序为一个App管理程序&#xff0c;可以将多个App进行吸入管理。 &#xff08;动画中的RedRect为一个带有QSplashScreen的独立应用程序&#xff09; 左侧边栏用的是QQuickView进行.qml文件的加载&#xff08;即QtQuick…

寻找注册配置中心最佳评测官,赢取丰厚奖品 | 测评开启,开发者请速速集结

评测前请点击文末链接&#xff0c;领取 MSE-Nacos 免费试用&#xff0c;再启动评测。 注册配置中心 MSE-Nacos (以下简称 MSE-Nacos)&#xff0c;即 Nacos 的企业版&#xff0c;开箱即用的 Nacos 云服务&#xff0c;对 Nacos 内核进行企业级稳定性加固&#xff0c;故障自动检测…