机器学习,我们主要学习什么?
机器学习的发展历程
- 1949年:Hebb提出了基于神经心理学的学习机制,开启了机器学习的先河
- 1950年代:机器学习的起源与人工智能的探索紧密相连。例如,1956年,达特茅斯会议标志着人工智能的诞生,机器学习作为其重要分支也开始受到关注
- 1960年代:出现了早期的机器学习算法,如1967年诞生的K最近邻算法(KNN),至今仍在无监督学习领域广泛应用。
- 1970年代:人工智能进入知识工程期,这一阶段的机器学习主要集中在符号学习和逻辑推理上
- 1980年代:机器学习逐渐成为一个独立的学科领域。1980年,第一届机器学习研讨会在美国卡内基梅隆大学举行,同年《策略分析与信息系统》杂志连出三期关于机器学习的专辑。此外,1986年反向传播算法(BP算法)的诞生,为神经网络的发展奠定了基础。
- 1990年代:机器学习进入算法多样化的阶段,出现了多种经典算法,如1995年诞生的支持向量机(SVM)和AdaBoost,这些算法至今仍在许多领域广泛应用。
- 2006年:深度学习的兴起标志着机器学习进入新的阶段。Hinton等人提出了深度信念网络,开启了深度学习的浪潮。
- 2010年代:深度学习在图像识别、语音识别等领域取得了突破性进展,卷积神经网络(CNN)和循环神经网络(RNN)等架构被广泛应用。
- 2010年代末-2020年代:机器学习在多个领域取得广泛应用,如自动驾驶、医疗影像分析、自然语言处理等。同时,新的技术和方法不断涌现,如强化学习、迁移学习、自监督学习等。
- 未来趋势:机器学习将继续朝着更强大的模型、多模态学习、少样本学习等方向发展,同时也会更加注重模型的可解释性和效率。
机器学习涉及的基本术语
1. 基础概念类
- 机器学习(Machine Learning, ML):一种人工智能技术,通过算法使计算机系统能够从数据中学习并做出预测或决策,而无需进行明确的编程。
- 训练(Training):使用数据(训练数据集)来调整模型参数的过程。
- 测试(Testing):使用未见过的数据(测试数据集)来评估模型性能的过程。
- 特征(Feature):用于描述数据的输入变量,例如在图像识别中,像素值可以是特征。
- 标签(Label):目标变量,即模型需要预测的输出值,例如在分类任务中,类别标签。
- 模型(Model):通过学习数据得到的数学结构,用于对新数据进行预测或决策。
- 泛化能力(Generalization):模型对未见过的新数据的预测能力。
2. 数据相关术语
- 数据集(Dataset):用于训练和测试模型的数据集合。
- 训练集(Training Set):用于训练模型的数据。
- 验证集(Validation Set):用于调整模型超参数和评估模型性能的数据。
- 测试集(Test Set):用于最终评估模型性能的数据,模型在训练过程中未见过。
- 数据预处理(Data Preprocessing):在训练模型之前对数据进行清洗、归一化、标准化等处理。
- 特征工程(Feature Engineering):通过选择、转换或创建特征来提高模型性能的过程。
- 过拟合(Overfitting):模型在训练数据上表现很好,但在新数据上表现很差的现象。
- 欠拟合(Underfitting):模型对训练数据的拟合不足,无法捕捉数据中的规律。
3. 算法与模型相关术语
- 监督学习(Supervised Learning):使用带标签的数据训练模型,目标是预测输出标签。
- 无监督学习(Unsupervised Learning):使用无标签的数据训练模型,目标是发现数据中的结构或模式。
- 半监督学习(Semi-Supervised Learning):结合少量带标签数据和大量无标签数据进行训练。
- 强化学习(Reinforcement Learning):通过与环境交互并获得奖励来学习最优策略。
- 回归(Regression):预测连续数值输出的任务。
- 分类(Classification):预测离散类别标签的任务。
- 聚类(Clustering):将数据划分为多个组或簇,使得同一簇内的数据相似度高,不同簇内的数据相似度低。
- 降维(Dimensionality Reduction):减少特征数量,同时保留数据的主要信息,如主成分分析(PCA)。
- 集成学习(Ensemble Learning):通过组合多个模型来提高预测性能,如随机森林、Boosting。
4. 性能评估相关术语
- 准确率(Accuracy):模型预测正确的样本数占总样本数的比例。
- 精确率(Precision):被预测为正的样本中实际为正的比例。
- 召回率(Recall):所有正样本中被正确预测为正的比例。
- F1分数(F1 Score):精确率和召回率的调和平均值,用于综合评估模型性能。
- 混淆矩阵(Confusion Matrix):用于评估分类模型性能的矩阵,包含真正例、假正例、真负例和假负例。
- 均方误差(MSE):回归任务中预测值与真实值之间差异的平方和的平均值。
- AUC-ROC曲线(Area Under the ROC Curve):用于评估二分类模型性能的曲线,AUC值越高,模型性能越好。
- 交叉验证(Cross-Validation):一种评估模型性能的方法,将数据集划分为多个子集,轮流作为验证集和训练集。
5. 深度学习相关术语
- 神经网络(Neural Network):模仿生物神经元结构的计算模型,由多个层组成。
- 深度学习(Deep Learning):使用多层神经网络进行学习的方法,强调模型的深度。
- 卷积神经网络(CNN):一种常用于图像处理的神经网络架构,通过卷积层提取局部特征。
- 循环神经网络(RNN):一种用于处理序列数据的神经网络架构,具有记忆功能。
- 长短期记忆网络(LSTM):一种改进的RNN架构,用于解决梯度消失问题。
- 激活函数(Activation Function):用于引入非线性因素的函数,如ReLU、Sigmoid等。
- 反向传播(Backpropagation):通过计算损失函数的梯度来更新神经网络参数的算法。
- 梯度下降(Gradient Descent):一种优化算法,用于最小化损失函数。
- 学习率(Learning Rate):控制模型参数更新步长的超参数。
6. 其他重要术语
- 超参数(Hyperparameter):模型训练之前需要手动设置的参数,如学习率、迭代次数等。
- 参数(Parameter):模型在训练过程中自动学习的内部变量,如神经网络的权重和偏置。
- 损失函数(Loss Function):衡量模型预测值与真实值之间差异的函数,用于优化模型。
- 正则化(Regularization):用于防止过拟合的技术,如L1正则化和L2正则化。
- 迁移学习(Transfer Learning):将一个模型在某个任务上学到的知识应用到另一个相关任务上的方法。
- 自监督学习(Self-Supervised Learning):一种无监督学习方法,通过自动生成标签来训练模型。
- 强化学习中的奖励(Reward):环境对智能体行为的反馈,用于指导智能体学习最优策略。
机器学习,我们主要学习什么?
1. 数学基础
1.1 线性代数
- 向量和矩阵运算:理解向量、矩阵的加法、乘法、转置等操作,因为这些是处理数据和模型参数的基础。
- 特征值与特征向量:在主成分分析(PCA)和某些优化问题中非常重要。
- 线性变换:理解数据在不同空间中的表示和转换。
1.2 概率论与统计学
- 概率分布:如高斯分布、伯努利分布等,用于描述数据的随机性。
- 贝叶斯定理:在贝叶斯方法和一些机器学习算法中非常重要。
- 统计推断:包括假设检验、置信区间等,用于评估模型的可靠性和性能。
- 期望、方差和协方差:用于描述数据的分布和相关性。
1.3 微积分
- 导数和梯度:用于优化算法,如梯度下降。
- 偏导数和雅可比矩阵:在多变量优化中非常重要。
- 泰勒展开:用于近似复杂函数,如在神经网络的激活函数中。
2. 编程与工具
2.1 编程语言
- Python:目前最主流的机器学习编程语言,具有丰富的库和框架支持,如NumPy、Pandas、Scikit-learn、TensorFlow、PyTorch等。
- R:在统计分析和数据科学领域广泛应用。
- 其他语言:如Java、C++等,虽然在机器学习中不如Python常用,但在某些场景下也有应用。
2.2 数据处理工具
- NumPy:用于高效处理数组和矩阵运算。
- Pandas:用于数据清洗、预处理和分析。
- Matplotlib、Seaborn:用于数据可视化,帮助理解数据分布和模型性能。
- Jupyter Notebook:一个交互式编程环境,方便实验和展示代码。
2.3 机器学习框架
- Scikit-learn:一个功能强大的机器学习库,提供了丰富的算法和工具,适合初学者。
- TensorFlow:由Google开发的深度学习框架,支持大规模分布式训练和复杂模型构建。
- PyTorch:由Facebook开发的深度学习框架,以动态计算图和易用性著称,适合研究和开发。
- Keras:一个高级神经网络API,可以运行在TensorFlow、Caffe等后端之上。
3. 机器学习的核心概念与算法
3.1 核心概念
- 监督学习、无监督学习、半监督学习和强化学习:理解不同学习范式的应用场景和方法。
- 特征工程:如何选择、提取和转换特征,以提高模型性能。
- 模型评估与选择:如何使用交叉验证、性能指标(如准确率、召回率、F1分数、MSE等)来评估模型。
- 过拟合与欠拟合:理解模型的泛化能力,以及如何通过正则化、交叉验证等方法避免过拟合。
3.2 经典算法
- 线性回归和逻辑回归:最基础的预测模型,用于回归和二分类任务。
- 决策树和随机森林:基于树的模型,易于理解和解释,适合分类和回归任务。
- 支持向量机(SVM):一种强大的分类算法,适用于高维数据。
- K最近邻(KNN):一种简单的分类和回归算法,基于相似度计算。
- K均值聚类(K-Means):一种常用的无监督学习算法,用于数据聚类。
- 主成分分析(PCA):一种降维技术,用于减少特征数量并保留数据的主要信息。
- 神经网络与深度学习:包括卷积神经网络(CNN)、循环神经网络(RNN)、长短期记忆网络(LSTM)等,用于处理图像、语音、文本等复杂数据。
4. 深度学习
4.1 神经网络基础
- 感知机:最简单的神经网络模型,用于理解神经元的基本工作原理。
- 多层感知机(MLP):包含隐藏层的神经网络,用于处理非线性问题。
- 激活函数:如ReLU、Sigmoid、Tanh等,用于引入非线性因素。
- 损失函数:如均方误差(MSE)、交叉熵损失等,用于衡量模型的预测误差。
- 优化算法:如梯度下降、随机梯度下降(SGD)、Adam等,用于调整模型参数。
4.2 深度学习架构
- 卷积神经网络(CNN):用于图像处理,通过卷积层和池化层提取图像特征。
- 循环神经网络(RNN)和长短期记忆网络(LSTM):用于序列数据处理,如自然语言处理和时间序列分析。
- Transformer架构:基于自注意力机制的模型,广泛应用于自然语言处理,如BERT、GPT等。
- 生成对抗网络(GAN):由生成器和判别器组成,用于生成新的数据样本,如图像生成。
5. 实践与应用
5.1 数据预处理
- 数据清洗:处理缺失值、异常值和重复值。
- 数据标准化和归一化:将数据转换到统一的尺度,提高模型性能。
- 特征选择与降维:减少特征数量,提高模型效率和可解释性。
5.2 模型训练与调优
- 超参数调整:使用网格搜索、随机搜索或贝叶斯优化等方法调整超参数。
- 模型集成:通过组合多个模型(如Bagging、Boosting)来提高性能。
- 模型部署:将训练好的模型部署到实际应用中,如使用Flask、Django等框架搭建API。
5.3 项目实践
- 参加竞赛:如Kaggle竞赛,通过解决实际问题来提升技能。
- 开源项目贡献:参与开源项目,学习先进的技术和架构。
- 个人项目:从数据收集、预处理、模型训练到结果评估,完整地实现一个机器学习项目。
6. 领域知识与前沿技术
6.1 应用领域
- 计算机视觉:图像识别、目标检测、图像分割等。
- 自然语言处理(NLP):文本分类、情感分析、机器翻译、问答系统等。
- 语音识别:语音转文字、语音命令识别等。
- 推荐系统:基于用户行为和偏好进行个性化推荐。
- 医疗、金融、交通等:机器学习在这些领域的应用也越来越广泛。
6.2 前沿技术
- 强化学习:用于智能体与环境交互的学习方法,如AlphaGo。
- 迁移学习:将预训练模型迁移到新任务上,减少训练成本。
- 自监督学习:无需人工标注数据的学习方法,提高模型的泛化能力。
- 可解释性AI(XAI):研究如何让机器学习模型的决策过程更加透明和可解释。
相关文章:
机器学习,我们主要学习什么?
机器学习的发展历程 机器学习的发展历程,大致分为以下几个阶段: 1. 起源与早期探索(20世纪40年代-60年代) 1949年:Hebb提出了基于神经心理学的学习机制,开启了机器学习的先河1950年代:机器学习的…...
Unreal5从入门到精通之在编辑器中更新 UserWidgets
前言 在虚幻中创建越来越复杂和灵活的 UserWidget 蓝图时,一个问题是它们在编辑器中的外观与它们在游戏中的最终外观可能有很大不同。 库存面板示例 假设你想创建一个通用的库存显示小部件。我们可以在整个 UI 中使用它,无论我们需要在哪里显示某些内容。 标题,描述所显示…...
C语言-----操作符的分类
1. 操作符的分类 •算术操作符: 、- 、 * 、/、% 移位操作符:<< >> 位操作符: & | ^ 赋值操作符: / 、 % 、 、- 、 *、/、 %、 <<、 >>、&、| 、 ^ 单⽬操作符:!、 、- 、 & 、 * 、 、 …...
mac os设置jdk版本
打开环境变量配置文件 sudo vim ~/.bash_profile 设置不同的jdk版本路径 # 设置JAVA_HOME为jdk17路径 export JAVA_HOME$(/usr/libexec/java_home -v 17)# 设置JAVA_HOME为jdk8路径 export JAVA_HOME$(/usr/libexec/java_home -v 1.8) 设置环境变量 # 将jdk加入到环境变量…...
深入理解WebSocket接口:如何使用C++实现行情接口
在现代网络应用中,实时数据传输变得越来越重要。通过WebSocket,我们可以建立一个持久连接,让服务器和客户端之间进行双向通信。这种技术不仅可以提供更快的响应速度,还可以减少不必要的网络流量。本文将详细介绍如何使用C来实现We…...
PWM(脉宽调制)技术详解:从基础到应用实践示例
PWM(脉宽调制)技术详解:从基础到应用实践示例 目录 PWM(脉宽调制)技术详解:从基础到应用实践示例学前思考:一、PWM概述二、PWM的基本原理三、PWM的应用场景四、PWM的硬件配置与使用五、PWM的编程…...
Mybatis的#{}和${}
#{}:预编译语句,用?对参数位置进行一个占位的操作,在数据库生成一个模版,等待后续填充.也可以推测出#在生成模版后的性能是比$快的. ${}:即时语句,提前的吧参数填充进去,在MySQL里就是一个完整的SQL语句. 填充逻辑不同 #{}会给String类型的参数自动的加上双引号,而${}则是直…...
【零基础实战】STM32控制DRV8833电机驱动详解
系列文章目录 1.元件基础 2.电路设计 3.PCB设计 4.元件焊接 5.板子调试 6.程序设计 7.算法学习 8.编写exe 9.检测标准 10.项目举例 11.职业规划 文章目录 一、DRV8833模块简介二、STM32选型建议三、硬件连接详解1. 接线示意图2. 电源注意事项 四、核心控制原理1. PWM调速原…...
AI智能成长系统 | 应用探讨研究
研究背景 在现代家庭中,三岁宝宝的成长环境日益复杂。由于宝宝每天接触的人群多样,包括家庭成员、同龄小朋友以及可能的陌生人,其语言环境也相应地变得复杂多变。这种环境下,宝宝很容易接触到一些不适宜的语言,即俗称…...
java 网络安全感知 网络安全学java
🍅 点击文末小卡片 ,免费获取网络安全全套资料,资料在手,涨薪更快 实验五 java网络编程及安全 实验内容 1.掌握Socket程序的编写;2.掌握密码技术的使用;3.设计安全传输…...
VisionMaster4.4 python脚本 图像处理 转换函数 爱之初体验
最近有接触过一丢丢VM4.3的模块开发. 一直有把python图像处理部分模块移植进来的打算 不过时间不够没来得及折腾.偶尔发现4.4支持py脚本 于是拿来折腾.一下午. 发现4.4支持python脚本,好开心. 首先安装VM4.4 注意一定要是4.4 打开后拖了一个模块. 但是发现import numpy imp…...
Node.js 中的 fs 模块详解
fs(File System)模块是 Node.js 的核心模块之一,用于处理文件系统的操作,包括文件的读取、写入、删除、重命名等。它提供了同步和异步两种操作方式,适用于不同的场景。 1. 前置知识 1.1 文件系统 文件系统是操作系统…...
debezium专栏文章目录
debezium专栏文章目录 第一阶段:基础认知篇 CDC革命:为什么说Debezium改变了数据流动方式? 对比Log-Based/Trigger-Based/Query-Based CDC方案Debezium在数据管道中的战略价值 5分钟部署你的第一个Debezium连接器 使用Docker Compose快速搭…...
python-leetcode 40.二叉树的层序遍历
题目: 给定二叉树的根节点root,返回其节点值得层序遍历(即逐层从左到右访问所有节点) 方法:广度优先搜索 # Definition for a binary tree node. # class TreeNode(object): # def __init__(self, val0, leftNone, rightNon…...
蓝桥杯学习大纲
(致酷德与热爱算法、编程的小伙伴们) 在查阅了相当多的资料后,发现没有那篇博客、文章很符合我们备战蓝桥杯的学习路径。所以,干脆自己整理一篇,欢迎大家补充! 一、蓝桥必备高频考点 我们以此为重点学习…...
小米AX3000T 路由器如何开启 SSH 安装 OpenWRT 系统,不需要降级 v1.0.91 (2025)
小米AX3000T 路由器如何开启 SSH 安装 OpenWRT 系统,不需要降级 v1.0.91 (2025) 本文内容需要你有一定的 Linux 操作基础,最好是程序员那种,英文水平足够用才行。一般人不需要使用这么复杂的路由器操作系统,…...
Debezium 报错:“The db history topic is missing” 的处理方法
Debezium 报错:“The db history topic is missing” 的处理方法 一、引言 在使用 Debezium 进行数据同步时,可能会遇到一个常见的错误:“The db history topic is missing”。这个错误表明 Debezium 无法找到或访问其数据库历史记录主题(db history topic),这通常是由…...
水基试剂,湿式化学,清水,干式化学,干粉,卤烃清洁剂,二氧化碳灭火器UL8检测报告标准讲解:
水基试剂,湿式化学,清水,干式化学,干粉,卤烃清洁剂,二氧化碳灭火器UL检测报告标准讲解: 本政策涵盖的灭火器 水基试剂灭火器 水基试剂灭火器使用水基试剂带走燃烧三要素中的热量要素…...
YOLOv11-ultralytics-8.3.67部分代码阅读笔记-build.py
build.py ultralytics\data\build.py 目录 build.py 1.所需的库和模块 2.class InfiniteDataLoader(dataloader.DataLoader): 3.class _RepeatSampler: 4.def seed_worker(worker_id): 5.def build_yolo_dataset(cfg, img_path, batch, data, mode"train"…...
Windows隐藏窗口/开机自启动
目录 使用Start-Process命令控制窗口状态 设置程序开机自启动 使用Start-Process命令控制窗口状态 隐藏窗口运行程序 使用Start-Process命令时,可以通过-WindowStyle Hidden参数让程序在后台运行,窗口不可见。例如: Start-Process D:\note…...
汽车免拆诊断案例 | 2010 款路虎揽胜车空调偶尔出风异常
故障现象 一辆2010款路虎揽胜车,搭载5.0 L发动机,累计行驶里程约为16万km。车主反映,接通空调开关后,有时出风忽大忽小,有时不出风,有时要等2 min左右才出风;有时两三天出现一次,…...
文件IO(20250217)
1. 文件IO 系统调用Linux内核提供的文件操作接口 1. 打开文件 open 2. 读写文件 read/write 3. 关闭文件 close 1.1 open函数 #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h>int open(const char *pathname, int flags); int ope…...
Mac arm架构使用 Yarn 全局安装 Vue CLI
dgqdgqdeMacBook-Pro spid-admin % vue --version zsh: command not found: vue要使用 Yarn 安装 Vue CLI,你可以执行以下命令: yarn global add vue/cli这个命令会全局安装 Vue CLI,让你可以使用 vue 命令创建、管理 Vue.js 项目。以下是一…...
ES6相关操作(2)
一.Promise Promise是ES6引入的异步编程工具。 语法上Promise是一个构造函数,用于封装异步操作并可以获取操作成功或失败的结果 Promise构造函数:Promise(excutor){} Promise的常用函数:then,catch 实例化Promise对象(创建Promise工具) let data"请求数据"//该数据为…...
成员函数定义后面加const是什么功能:C++中const成员函数的作用
成员函数定义后面加const是什么功能:C中const成员函数的作用 前言C中const成员函数的作用总结 前言 在PX4的代码中的位置控制模块中,有这样一个成员函数 void getAttitudeSetpoint(vehicle_attitude_setpoint_s &attitude_setpoint) const;该函数的…...
DeepSeek智能测试助手:分类+推理+导出一站式工具
前言 测试开发工程师在日常工作中需要处理大量测试文档,并且这些文档需要被高效分类、清洗和管理,同时结合强大的 AI 推理能力(如 DeepSeek 模型)进行智能化处理和分析。为此,我们开发了一款基于 PyQt5 的 GUI 工具&a…...
【嵌入式Linux应用开发基础】进程间通信(3):共享内存
目录 一、共享内存核心概念 1.1. 特点 1.2. 适用场景 二、共享内存原理剖析 三、嵌入式 Linux 中共享内存的使用 3.1. 相关函数介绍 3.2. System V共享内存操作步骤 3.3. 同步机制(示例使用System V信号量) 3.4. POSIX共享内存(现代…...
日语学习-日语知识点小记-构建基础-JLPT-N4N5阶段(10): になります :表示从一种状态转变为另一种状态,“变得……”“成为……”
日语学习-日语知识点小记-构建基础-JLPT-N4&N5阶段(10): になります :表示从一种状态转变为另一种状态,“变得……”“成为……” 1、前言(1)情况说明(2)工程师的信仰2、知识点(1)寒くなりました & 元気になりました(2)何(なに)になりたいですか。(…...
计算机毕业设计Python农产品推荐系统 农产品爬虫 农产品可视化 农产品大数据(源码+LW文档+PPT+讲解)
温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 作者简介:Java领…...
Python HTTP 请求工具类 HttpUtils:简化 HTTP 请求的高效工具
在现代的 Web 开发和 API 集成中,HTTP 请求是最常见的操作之一。无论是获取数据、提交表单,还是与 RESTful API 交互,我们都需要频繁地发送 HTTP 请求。为了简化这些操作,提升代码的可读性和可维护性,我们可以使用一个…...
