机器学习基础(Machine Learning,ML)

article/2025/10/14 14:00:19

什么是机器学习

机器学习是人工智能的一个子集,目前已经发展出许多有用的方法,比如支持向量机,回归,决策树,随机森林,强化方法,集成学习,深度学习等,一定程度上可以帮助人们完成一些数据预测,自动化,自动决策,最优化等初步替代脑力的任务。

什么是神经网络

神经网络就是按照一定规则将多个神经元连接起来的网络。
神经网络有三种层:输入层负责接受信息比如一张猫的图片;输出层是计算机对这个输入信息的判断结果,它是不是猫;隐藏层就是对输入信息的传递和加工处理。

大数据、机器学习和数据挖掘的定义

大数据被定义为“超出常用软件工具捕获,管理和处理能力”的数据集。机器学习关心的问题是如何构建计算机程序使用经验自动改进。数据挖掘是从数据中提取模式的特定算法的应用,在数据挖掘中,重点在于算法的应用,而不是算法的本身。

机器学习和数据挖掘的关系

数据挖掘是一个过程,在此过程中机器学习算法被用作提取数据集中的潜在有价值模式的工具

大数据和深度学习的关系

深度学习是一种模拟大脑的行为,可以从所学习对象的机制以及行为等很多相关联的方面进行学习,模仿类型行为以及思维。
深度学习对于⼤数据的发展有帮助。深度学习对于⼤数据技术开发的每⼀个阶段均有帮助,不管是数据的分析还是挖掘还是建模,只有深度学习,这些⼯作才会有可能⼀⼀得到实现。
深度学习转变了解决问题的思维。在深度学习的基础上,要求我们从开始到最后都要基于一个目标,为了优化那个最终目标去进行处理数据以及将数据放到数据应用平台上去,这就是端到端(end to end)。
大数据的深度学习需要一个框架。将大数据通过深度分析变为现实,这就是深度学习和大数据的最直接关系。

机器学习的学习方式——监督学习、非监督学习、半监督学习

监督学习:使⽤已知正确答案的⽰例来训练⽹络。已知数据和其⼀⼀对应的标签,训练⼀个预测模型,将输⼊数据映射到标签的过程。
常⻅应⽤场景:监督式学习的常⻅应⽤场景如分类问题和回归问题。
非监督学习:数据并不被特别标识,适⽤于你具有数据集但⽆标签的情况。学习模型是为了推断出数据的⼀些内在结构。
常⻅应⽤场景:常⻅的应⽤场景包括关联规则的学习以及聚类等。
半监督学习下:输⼊数据部分被标记,部分没有被标记,这种学习模型可以⽤来进⾏预测。
常⻅应⽤场景:应⽤场景包括分类回归,算法包括⼀些对常⽤监督式学习算法的延伸,通过对已标记数据建模,在此基础上,对未标记数据进⾏预测。

分类算法

分类算法回归算法是对真实世界不同建模的⽅法。分类模型是认为模型的输出是离散的,例如⼤⾃然的⽣物被划分为不同的种类,是离散的。回归模型的输出是连续的,例如⼈的⾝⾼变化过程是⼀个连续过程,⽽不是离散的。
在实际建模过程时,采⽤分类模型还是回归模型,取决于你对任务(真实世界)的分析和理解。

- -常见的分类算法

Bayes ⻉叶斯分类法、Decision Tree决策树、SVM⽀持向量机、KNN K近邻、Logistic
Regression逻辑回归、Neural Network神经⽹络、Adaboosting。

逻辑回归

在广义线性模型家族里,如果是二项分布,就是逻辑回归。

- -逻辑回归的适用性

(1)⽤于概率预测。=⽐如根据模型进⽽预测在不同的⾃变量情况下,发⽣某病或某种情况的概率有多⼤。 (2)⽤于分类。实际上跟预测有些类似,也是根据模型,判断某⼈属于某病或属于某种情况的概率有多⼤,也就是看⼀下这个⼈有多⼤的可能性是属于某病。进⾏分类时,仅需要设定⼀个阈值即可,可能性⾼于阈值是⼀类,低于阈值是另⼀类。 (3)寻找危险因素。寻找某⼀疾病的危险因素等。 (4)仅能⽤于线性问题。只有当⽬标和特征是线性关系时,才能⽤逻辑回归。 (5)各特征之间不需要满⾜条件独⽴假设,但各个特征的贡献独⽴计算。

- -生成模型和判别模型的区别

生成模型:由数据学习联合概率密度分布P(X,Y),然后求出条件概率分布P(Y|X)作为预测的模型,即⽣成模型:P(Y|X)= P(X,Y)/ P(X)(⻉叶斯概率)。典型的⽣成模型有朴素⻉叶斯,隐⻢尔科夫模型等。
举例:利⽤⽣成模型是根据⼭⽺的特征⾸先学习出⼀个⼭⽺的模型,然后根据绵⽺的特征学习出⼀个绵⽺的模型,然后从这只⽺中提取特征,放 到⼭⽺模型中看概率是多少,在放到绵⽺模型中看概率是多少,哪个⼤就是哪个。
判别模型:由数据直接学习决策函数Y=f(X)或者条件概率分布P(Y|X)作为预测的模型,即判别模型。典型的判别模型包括k近邻,感知级,决策树,⽀持向量机等。
举例:要确定⼀个⽺是山羊还是绵⽺,⽤判别模型的⽅法是从历史数据中学习到模型,然后通过提取这只⽺的特征来预测出这只羊是山羊的概率,是绵⽺的概率。
逻辑回归是判别模型, 朴素贝叶斯是⽣成模型,所以⽣成和判别的所有区别它们都有。

什么是代价函数

-为了得到训练逻辑回归模型的参数,需要⼀个代价函数,通过训练代价函数来得到参数。
-⽤于找到最优解的⽬的函数。

- -代价函数的原理

在回归问题中,通过代价函数来求解最优解,常⽤的是平⽅误差代价函数。平方误差代价函数的主要思想就是将实际数据给出的值与拟合出的线的对应值做差,求出拟合出的直线与实 际的差距。在实际应⽤中,为了避免因个别极端数据产⽣的影响,采⽤类似⽅差再取⼆分之⼀的⽅式来减⼩个别数据的影响。
以函数h(x)=A+Bx为例:
想要拟合函数图的离散点,我们需要尽可能找到最优的A和B来使这条直线更能代表所有数据。如何找到最优解呢,这就需要使⽤代价函数来求解,以平⽅误差代价函数为例,假设函数为h(x)=θx。
因此,引出代价函数:
最优解即为代价函数的最小值。

什么是损失函数

损失函数(Loss Function)⼜叫做误差函数,⽤来衡量算法的运⾏情况,估量模型的预测值与真实值的不⼀致程度,是⼀个⾮负实值函数,通常使⽤L( Y , f(x) )来表示。
损失函数越⼩,模型的鲁棒性就越好。损失函数是经验⻛险函数的核⼼部分,也是结构⻛险函数重要组成部分。

一个例子明白什么是梯度下降

假如最开始,我们在⼀座⼤⼭上的某处位置,因为到处都是陌⽣的,不知道下⼭的路,所以只能摸索着根据直觉,⾛⼀步算 ⼀步,在此过程中,每⾛到⼀个位置的时候,都会求解当前位置的梯度,沿着梯度的负⽅向,也就是当前最陡峭的位置向下⾛⼀步,然后继续求解当前位置梯度,向这⼀步所在位置沿着最陡峭最易下⼭的位置⾛⼀步。不断循环求梯度,就这样⼀步步地⾛下去,⼀直⾛到我们觉得已经到了⼭脚。当然这样⾛下去,有可能我们不能⾛到⼭脚,⽽是到了某⼀个局部的⼭势低处。 由此,从上⾯的解释可以看出,梯度下降不⼀定能够找到全局的最优解,有可能是⼀个 局部的最优解。当然,如果损失函数是凸函数,梯度下降法得到的解就⼀定是全局最优解。

机器学习中为什么需要梯度下降

梯度下降是机器学习中常⻅优化算法之⼀,梯度下降法有以下⼏个作⽤:
(1)梯度下降是迭代法的⼀种,可以⽤于求解最⼩⼆乘问题。
(2)在求解机器学习算法的模型参数,即⽆约束优化问题时,主要有梯度下降法(Gradient Descent)和最⼩⼆乘法。
(3)在求解损失函数的最⼩值时,可以通过梯度下降法来⼀步步的迭代求解,得到最⼩化的损失函数和模型参数值。
(4)如果我们需要求解损失函数的最⼤值,可通过梯度上升法来迭代。梯度下降法和梯度上升法可相互转换。
(5)在机器学习中,梯度下降法主要有随机梯度下降法和批量梯度下降法。

梯度下降的核心思想

(1)初始化参数,随机选取取值范围内的任意数;
(2)迭代操作: a)计算当前梯度; b)修改新的变量; c)计算朝最陡的下坡⽅向⾛⼀步; d)判断是否需要终⽌,如否,返回a);
(3)得到全局最优解或者接近全局最优解。

如何对梯度下降法调优

(1)算法迭代步长选择。 在算法参数初始化时,有时根据经验将步⻓初始化为1。实际取值取决于数据样本。可以从⼤到⼩,多取⼀些值,分别运⾏算法 看迭代效果,如果损失函数在变⼩,则取值有效。如果取值⽆效,说明要增⼤步⻓。但步⻓太⼤,有时会导致迭代速度过快,错过最优解。步⻓太⼩,迭代 速度慢,算法运⾏时间⻓。
(2)参数的初始值选择。 初始值不同,获得的最⼩值也有可能不同,梯度下降有可能得到的是局部最⼩值。如果损失函数是凸函数,则⼀定是最优解。由 于有局部最优解的⻛险,需要多次⽤不同初始值运⾏算法,关键损失函数的最⼩值,选择损失函数最⼩化的初值。
(3)标准化处理。 由于样本不同,特征取值范围也不同,导致迭代速度慢。为了减少特征取值的影响,可对特征数据标准化,使新期望为0,新⽅差为1, 可节省算法运⾏时间。

线性判别分析(LDA)

线性判别分析(Linear Discriminant Analysis,LDA)是⼀种经典的降维⽅法。和主成分分析PCA不考虑样本类别输出的⽆监督降维技术不同,LDA是⼀种监督学习的降维技术,数据集的每个样本有类别输出。

LDA分类思想

  1. 多维空间中,数据处理分类问题较为复杂,LDA算法将多维空间中的数据投影到⼀条直线上,将d维数据转化成1维数据进⾏处理。
  2. 对于训练数据,设法将多维数据投影到⼀条直线上,同类数据的投影点尽可能接近,异类数据点尽可能远离。
  3. 对数据进⾏分类时,将其投影到同样的这条直线上,再根据投影点的位置来确定样本的类别。

LDA思想图解

假设有红、蓝两类数据,这些数据特征均为⼆维,如下图所⽰。我们的⽬标是将这些数据投影到⼀维,让每⼀类相近的数据的投影点尽可能接近,不同类 别数据尽可能远,即图中红⾊和蓝⾊数据中⼼之间的距离尽可能⼤。

PCA思想总结

  1. PCA就是将⾼维的数据通过线性变换投影到低维空间上去。
  2. 投影思想:找出最能够代表原始数据的投影⽅法。被PCA降掉的那些维度只能是那些噪声或是冗余的数据。
  3. 去冗余:去除可以被其他向量代表的线性相关向量,这部分信息量是多余的。
  4. 去噪声,去除较⼩特征值对应的特征向量,特征值的⼤⼩反映了变换后在特征向量⽅向上变换的幅度,幅度越⼤,说明这个⽅向上的元素差异也越 ⼤,要保留。
  5. 对⾓化矩阵,寻找极⼤线性⽆关组,保留较⼤的特征值,去除较⼩特征值,组成⼀个投影矩阵,对原始样本矩阵进⾏投影,得到降维后的新样本矩 阵。
  6. 完成PCA的关键是——协⽅差矩阵。协⽅差矩阵,能同时表现不同维度间的相关性以及各个维度上的⽅差。协⽅差矩阵度量的是维度与维度之间的关 系,⽽⾮样本与样本之间。
  7. 之所以对⾓化,因为对⾓化之后⾮对⾓上的元素都是0,达到去噪声的⽬的。对⾓化后的协⽅差矩阵,对⾓线上较⼩的新⽅差对应的就是那些该去掉 的维度。所以我们只取那些含有较⼤能量(特征值)的维度,其余的就舍掉,即去冗余。

图解PCA核心思想

PCA可解决训练数据中存在数据特征过多或特征累赘的问题。核⼼思想是将m维特征映射到n维(n < m),这n维形成主元,是重构出来最能代表原始数据的正交特征。
假设数据集是m个n维,如果 n = 2,需要降维到 n` = 1,现在想找到某⼀维度⽅向代表这两个维度的数据。下图有u1、u2两个向量⽅向,由于u1的样本点到这个直线的距离⾜够近;样本点在这个直线上的投影能尽可能的分开。所以u1可以更好代表原始数据集。

降维的必要性

  1. 多重共线性和预测变量之间相互关联。多重共线性会导致解空间的不稳定,从⽽可能导致结果的不连贯。
  2. ⾼维空间本⾝具有稀疏性。⼀维正态分布有68%的值落于正负标准差之间,⽽在⼗维空间上只有2%。
  3. 过多的变量,对查找规律造成冗余⿇烦。
  4. 仅在变量层⾯上分析可能会忽略变量之间的潜在联系。例如⼏个预测变量可能落⼊仅反映数据某⼀⽅⾯特征的⼀个组内。

降维的目的

  1. 减少预测变量的个数。
  2. 确保这些变量是相互独⽴的。
  3. 提供⼀个框架来解释结果。相关特征,特别是重要特征更能在数据中明确的显⽰出来;如果只有两维或者三维的话,更便于可视化展⽰。
  4. 数据在低维下更容易处理、更容易使⽤。
  5. 去除数据噪声。
  6. 降低算法运算开销。

http://chatgpt.dhexx.cn/article/Jf6LbC25.shtml

相关文章

机器学习基础

一、机器学习概述 1.1 人工智能概述 1.人工智能起源&#xff1f; 图灵测试、达特茅斯会议 2.人工智能的3个阶段 1980年代是正式形成期 1990-2010年代是蓬勃发展期 2012年之后是深度学习期 3.人工智能、机器学习和深度学习之间的关系 机器学习是人工智能实现的一个途径; 深度学…

机器学习基础知识

文章目录 概述一、机器学习分类1.1 主要任务1.2 分类方式1.3 监督学习1.3.1 判别式模型1.3.2 生成式模型 1.4 无监督学习1.4.1 聚类1.4.2 降维 1.5 深度学习1.6 强化学习 二、机器学习步骤三、模型评估指标3.1 分类问题3.2 回归问题 四、机器学习预备知识4.1 数学基础4.2 Pytho…

机器学习之基础知识(全)

目录 1.机器学习概述 1.1 人工智能概述 1.1.1 人工智能使用场景 1.1.2 人工智能小案例 1.2 人工智能发展历程 1.2.1 图灵测试 1.2.2 发展历程 1.2.3 小结 1.3 人工智能主要分支 1.3.1 人工智能、机器学习和深度学习 1.3.2 主要分支介绍 1.3.3 人工智能发展必备三要…

C3D Learning Spatiotemporal Features with 3D Convolutional Networks

Learning Spatiotemporal Features with 3D Convolutional Networks Abstract 摘要主要介绍在大规模有监督的视频数据集下训练出了一种简单且高效的三维卷积神经网络的方法来学习时空特征。且此发现具有三重的效果&#xff1a; 1&#xff09;相比较于二维&#xff0c;三维卷积…

C3D网络笔记

C3D网络 论文链接 论文翻译 该论文发现&#xff1a; 1、3D ConvNets比2D ConvNets更适用于时空特征的学习&#xff1b; 2、对于3D ConvNet而言&#xff0c;在所有层使用333的小卷积核效果最好&#xff1b; 3、我们通过简单的线性分类器学到的特征名为C3D(Convolutional 3D…

《Action Recognition》-Learning Spatiotemporal Features with 3D Convolutional Networks(C3D)

《Action Recognition》-Learning Spatiotemporal Features with 3D Convolutional Networks(C3D) 目录 《Action Recognition》-Learning Spatiotemporal Features with 3D Convolutional Networks(C3D)ContributionsFrameworkResultConclusion Contributions We experimenta…

使用C3D的一些问题(2)

使用C3D的resume功能时&#xff0c;报错RuntimeError: expected device cpu but got device cuda:0 报错位置在optimizer.step()。原因是optimizer加载参数时,tensor默认在CPU上&#xff0c;故需将所有的tensor都放到GPU上。 解决方案&#xff1a; 在这一段代码后面加入 for st…

3D卷积入门 | 多论文笔记 | R2D C3D P3D MCx R(2+1)D

文章转自微信公众号&#xff1a;【机器学习炼丹术】。有问题或者需要加入粉丝交流群可以私信作者~ 文章目录 0 前言1 R2D2 C3D2.1 R3D 3 P3D4 MCx5 R(21)D 【前前沿】&#xff1a;某一次和粉丝交流的时候&#xff0c;收获一句话&#xff1a; 人点亮技能书&#xff0c;不是一次…

基于pytorch实现的视频分类——C3D模型论文复现

最近在学习视频分类任务&#xff0c;想要跑通一个更换数据集用到自己的课题上。 看到了这篇文章及代码 论文链接&#xff1a;http://vlg.cs.dartmouth.edu/c3d/c3d_video.pdf 代码链接&#xff1a;https://github.com/jfzhang95/pytorch-video-recognition 贴一下学习这个代…

我的一些视觉工具(1)之动作预测--逐行详解C3D代码(Pytorch)

该博客主要参考这个工程提供的代码 我们在他们代码的基础之上进行魔改 当然了&#xff0c;既然要魔改人家的数据&#xff0c;肯定要先把人家的思路看明白。 对于3D神经网络来讲&#xff0c;好多小伙伴最关心的肯定还是数据的喂入方法和数据集的格式喽。 下第一个部分就是详细第…

C3D-network论文笔记

前几天一直在看Faster-Rcnn源码和YOLOv3&#xff08;C语言&#xff09;源码&#xff0c;感觉时间浪费了不少&#xff0c;但是一个都没有看懂&#xff0c;总结出一句话就是&#xff1a;这TM写的是个啥&#xff1f;我为啥一个都看不懂&#xff0c;原理理解是一回事&#xff0c;看…

c3d代码

##c3d代码 原文链接&#xff1a;https://blog.csdn.net/ZJRN1027/article/details/80199248 cross_entropy_mean tf.reduce_mean( tf.nn.sparse_softmax_cross_entropy_with_logits(labelslabels,logitslogit) ) tf.summary.scalar( name_scope ‘_cross_entropy’, cross_en…

【C3D代码运行步骤】

1. 克隆或者下载项目 方法一&#xff1a;在github上直接下载项目&#xff1a;项目地址 方法二&#xff1a;使用git克隆&#xff08;推荐&#xff09;,相关内容参考Git的安装及github远程仓库ssh连接 git clone https://github.com/Niki173/C3D.git https://github.com/jfzhan…

行为识别C3D代码(pytorch)实现过程及常见错误

行为识别C3D代码(pytorch)实现过程及常见错误 1.C3D网络代码 C3D&#xff08;pytorch&#xff09;实现代码链接&#xff1a; C3D代码 2.C3D代码复现过程 &#xff08;1&#xff09;环境版本要求 pytorch&#xff1a;3.5及以上 opencv&#xff1a;3.4.2&#xff08;我是这样…

C3D的视频分类

很久之前做了C3D的视频分类&#xff0c;现在详细把整个项目的细节描述一下。 首先介绍一下C3D&#xff1a;对于一段视频来说&#xff0c;它是连续的帧图像叠加起来的&#xff0c;所以可以考虑在生成通道图像的时候&#xff0c;把多帧图像叠加的特性讨论进去。 一个视频段输入&…

C3D源码解读(基于3D卷积的动作识别)

UCF数据集下载地址:https://www.crcv.ucf.edu/data/UCF101.php 1.推理效果与项目配置 执行inference.py&#xff0c;需要指定3个参数&#xff0c;第一个是标签文件地址&#xff0c;存储了各个标签的含义&#xff0c;第二个是权重文件地址&#xff0c;第三个是要进行推理的视频…

C3D代码总结(Pytorch)

C3D代码总结&#xff08;Pytorch&#xff09; github&#xff1a;https://github.com/Niki173/C3D 介绍数据介绍文件介绍具体操作流程运行结果 介绍&#xff1a; 本次C3D模型用的是pytorch框架&#xff0c;我们在UCF101和HMDB51数据集上训练这些模型&#xff0c;本次实验以U…

C3D论文笔记

论文链接&#xff1a;http://vlg.cs.dartmouth.edu/c3d/c3d_video.pdf 代码链接&#xff1a;https://github.com/jfzhang95/pytorch-video-recognition 1. C3D是什么&#xff1f; C3D&#xff0c;全称Convolutional 3D&#xff0c;即3D卷积。3D卷积方法是把视频划分成很多固定…

C3D网络介绍

1. 模型简介 C3D模型广泛用于3D视觉任务。C3D网络的构造类似于常见的2D卷积网&#xff0c;主要区别在于C3D使用像卷积3D这样的3D操作&#xff0c;而2D卷积网则是通常的2D架构。要了解有关C3D网络的更多信息&#xff0c;您可以阅读原始论文学习3D卷积网络的时空特征。 3D卷积图…

视频分析模型(行为识别):C3D

C3D 文章目录 C3D1. 简介1.1 背景1.2 C3D特点1.3 视频描述符1.4 C3D的结果 2. 架构2.1 工作流程2.2 网络结构2.3 3D卷积和池化2.4 kernel 的时间深度 3. 可视化3.1 特征图3.2 特征嵌入 4. 应用场景4.1 动作识别4.2 动作相似度标注4.3 场景和目标识别4.4 运行时间分析 1. 简介 …