机器学习基础知识

article/2025/10/14 14:00:15

文章目录

  • 概述
  • 一、机器学习分类
    • 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 Python第三方库


概述

机器学习(Machine Learning, ML) 是使用计算机来彰显数据背后的真实含义,目的是把数据转换成有用的信息。机器学习是一门多领域交叉学科,专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。 它是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域,它主要使用归纳、综合而不是演绎。

一、机器学习分类

1.1 主要任务

  • 分类:将实例数据划分到合适的类别中。 应用实例:猫狗分类(二分类),手写数字的识别(多分类)
  • 回归:主要用于预测数值型数据。 应用实例:股票价格波动的预测,房屋价格的预测等。

1.2 分类方式

机器学习方法种类繁多,最常用的分类方式是根据是否在人类监督下学习分为:监督学习非监督学习深度学习强化学习
在这里插入图片描述

1.3 监督学习

机器学习模型对历史数据进行训练,进而将训练好的模型用于分类或回归,监督学习训练的数据自身带着“标签(label)”,即:每一组特征变量对应的目标变量是确定的。

例如:手写数字的识别项目中,我们已知每一张手写图片对应的数字;股票价格波动的预测项目中,我们已知历史每一时刻对应的股票价格。

1.3.1 判别式模型

假设我们有训练数据 ( X , Y ) (X,Y) (X,Y) X X X是特征集合, Y Y Y是类别标记。这时来了一个新的样本 x x x,我们想要预测它的类别 y y y。监督学习又根据件概率 P ( x ∣ y ) P(x|y) P(xy)作作为新样本的分类。

判别式模型根据训练数据得到分类函数和分界面,然后直接计算条件概率 P ( y ∣ x ) P(y|x) P(yx),我们将最大的 P ( y ∣ x ) P(y|x) P(yx)作为新样本的分类。判别式模型是对条件概率建模,学习不同类别之间的最优边界,无法反映训练数据本身的特性,能力有限,其只能告诉我们分类的类别。

1.3.2 生成式模型

生成式模型一般会对每一个类建立一个模型,有多少个类别,就建立多少个模型。比如说类别标签有{猫,狗,猪},那首先根据猫的特征学习出一个猫的模型,再根据狗的特征学习出狗的模型,之后分别计算新样本 x x x 跟三个类别的联合概率 P ( x , y ) P(x,y) P(x,y) ,然后根据贝叶斯公式: P ( y ∣ x ) = P ( x , y ) p ( x ) P(y|x)=\frac{P(x, y)}{p(x)} P(yx)=p(x)P(x,y)分别计算 P ( y ∣ x ) P(y|x) P(yx),选择三类中最大的 P ( y ∣ x ) P(y|x) P(yx)作为样本的分类。

1.4 无监督学习

在机器学习,无监督学习的目的是在未加标签的数据中,试图找到隐藏的内在性质及规律。无监督学习中,应用最多的是聚类和降维。

1.4.1 聚类

聚类的目的是将数据集中的样本划分为若干个子集(簇),子集之间通常不相交。

例如:根据一个班级每个学生的身高、体重等指标,将学生二分类为胖、瘦。

1.4.2 降维

降维的目的是降低训练特征个数,综合提取有效信息、摒弃无用信息。

1.5 深度学习

深度学习的概念源于人工神经网络的研究,含多个隐藏层的多层感知器就是一种深度学习结构。深度学习通过组合低层特征形成更加抽象的高层表示属性类别或特征,以发现数据的分布式特征表示。研究深度学习的动机在于建立模拟人脑进行分析学习的神经网络,它模仿人脑的机制来解释数据,例如图像,声音和文本等。

1.6 强化学习

强化学习(RL)用于描述和解决智能体(agent)在与环境(environment)的交互过程中通过学习策略以达成回报最大化或实现特定目标的问题 。
强化学习图示


二、机器学习步骤

  1. 收集数据: 收集样本数据
  2. 准备数据: 注意数据的格式
  3. 分析数据: 为了确保数据集中没有垃圾数据;
  4. 训练算法: 如果使用无监督学习算法,由于不存在目标变量值,则可以跳过该步骤
  5. 测试算法: 评估算法效果
  6. 使用算法: 将机器学习算法转为应用程序

三、模型评估指标

3.1 分类问题

混淆矩阵是能够比较全面的反映模型的性能,从混淆矩阵能够衍生出很多的指标来。
在这里插入图片描述
1. 查准率(精准率)
P r e c i s i o n = T P T P + F P Precision = \frac{TP}{TP+FP} Precision=TP+FPTP
2. 查全率(召回率)
R e c a l l = T P T P + F N Recall = \frac{TP}{TP+FN} Recall=TP+FNTP
3. 正确率(准确率)
A c c u r a c y = T P + T N T P + F P + T N + F N Accuracy = \frac{TP+TN}{TP+FP+TN+FN} Accuracy=TP+FP+TN+FNTP+TN
4. F值(F1-scores)
F 1 − s c o r e = 2 R e c a l l ∗ P r e c i s i o n R e c a l l + P r e c i s i o n F1-score = \frac{2Recall*Precision}{Recall + Precision} F1score=Recall+Precision2RecallPrecision

3.2 回归问题

1.平均绝对误差(MAE)
M A E = 1 N ∑ i = 1 N ∣ y i − y i ′ ∣ MAE = \frac{1}{N}\sum_{i=1}^{N}|y_{i} - y_{i}^{'}| MAE=N1i=1Nyiyi
2.均方误差(MSE)
M S E = 1 N ∑ i = 1 N ∣ y i − y i ′ ∣ 2 MSE = \frac{1}{N}\sum_{i=1}^{N}{|y_{i} - y_{i}^{'}|}^2 MSE=N1i=1Nyiyi2
3.拟合优度(R2)
R 2 = 1 − ∑ i = 1 N ( y i − y i ′ ) 2 ∑ i = 1 N ( y i − y ‾ ) 2 R^2 = 1-\frac{\sum_{i=1}^{N}{(y_{i} - y_{i}^{'})}^2}{\sum_{i=1}^{N}{(y_{i} - \overline{y})}^2} R2=1i=1N(yiy)2i=1N(yiyi)2


四、机器学习预备知识

4.1 数学基础

  • 微积分
  • 概率论
  • 线性代数

4.2 Python第三方库

  • 数据分析库:Numpy、Pandas
  • 科学函数库:Scipy
  • 绘图工具库:Matplotlib
  • 机器学习库:scikit-learn、xgboost、lightgbm
  • 深度学习库:tensorflow2.0、pytorch、keras、caffe

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

相关文章

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

目录 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 摘要主要介绍在大规模有监督的视频数据集下训练出了一种简单且高效的三维卷积神经网络的方法来学习时空特征。且此发现具有三重的效果: 1)相比较于二维,三维卷积…

C3D网络笔记

C3D网络 论文链接 论文翻译 该论文发现: 1、3D ConvNets比2D ConvNets更适用于时空特征的学习; 2、对于3D ConvNet而言,在所有层使用333的小卷积核效果最好; 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功能时,报错RuntimeError: expected device cpu but got device cuda:0 报错位置在optimizer.step()。原因是optimizer加载参数时,tensor默认在CPU上,故需将所有的tensor都放到GPU上。 解决方案: 在这一段代码后面加入 for st…

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

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

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

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

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

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

C3D-network论文笔记

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

c3d代码

##c3d代码 原文链接: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. 克隆或者下载项目 方法一:在github上直接下载项目:项目地址 方法二:使用git克隆(推荐),相关内容参考Git的安装及github远程仓库ssh连接 git clone https://github.com/Niki173/C3D.git https://github.com/jfzhan…

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

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

C3D的视频分类

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

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

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

C3D代码总结(Pytorch)

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

C3D论文笔记

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

C3D网络介绍

1. 模型简介 C3D模型广泛用于3D视觉任务。C3D网络的构造类似于常见的2D卷积网,主要区别在于C3D使用像卷积3D这样的3D操作,而2D卷积网则是通常的2D架构。要了解有关C3D网络的更多信息,您可以阅读原始论文学习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. 简介 …

C3D论文精读

论文地址:https://vlg.cs.dartmouth.edu/c3d/c3d_video.pdf Abstract 作者的研究结果有三个方面: 1)与二维相比,三维卷积网更适合时空特征学习;2)所有层具有333的小卷积核的同构架构是3D卷积网的最佳架构之一;3)学习到的特征&am…

基于C3D网络的视频分析与动作识别

卷积神经网络(CNN)被广泛应用于计算机视觉中,包括分类、检测、分割等任务。这些任务一般都是针对图像进行的,使用的是二维卷积(即卷积核的维度为二维)。而对于基于视频分析的问题,2D convolutio…