机器学习:监督学习、无监督学习和强化学习
机器学习(Machine Learning, ML)是人工智能(AI)的一个分支,它使计算机能够从数据中学习,并在没有明确编程的情况下执行任务。机器学习的核心思想是使用算法分析数据,识别模式,并做出预测或决策。
1. 机器学习的主要类别
监督学习、无监督学习和强化学习:算法与应用场景
机器学习主要分为 监督学习(Supervised Learning)、无监督学习(Unsupervised Learning)和强化学习(Reinforcement Learning)。它们在不同任务中有各自适用的算法和应用场景。
1. 监督学习(Supervised Learning)
概念
监督学习是一种基于带标签数据进行训练的机器学习方法。数据集由输入特征(X)和对应的输出标签(Y) 组成,模型通过学习输入到输出的映射关系,在遇到新数据时能够进行预测。
常见算法
算法 | 任务类型 | 适用场景 |
---|---|---|
线性回归(Linear Regression) | 回归 | 房价预测、股票价格预测 |
逻辑回归(Logistic Regression) | 分类 | 垃圾邮件分类、信用卡欺诈检测 |
支持向量机(SVM) | 分类 | 文本分类、人脸识别 |
K 近邻(KNN) | 分类/回归 | 推荐系统、疾病预测 |
决策树(Decision Tree) | 分类/回归 | 客户流失预测、信用评估 |
随机森林(Random Forest) | 分类/回归 | 广告点击预测、风险评估 |
梯度提升树(GBDT, XGBoost, LightGBM) | 分类/回归 | Kaggle 竞赛、搜索排名 |
神经网络(Neural Networks) | 分类/回归 | 图像识别、语音识别 |
应用场景
-
计算机视觉:
- 图像分类(如猫狗识别)
- 物体检测(如自动驾驶)
-
自然语言处理(NLP):
- 语音识别(如 Siri、语音转文字)
- 情感分析(如微博情绪分析)
-
金融风控:
- 信用评分(预测用户是否违约)
- 交易欺诈检测(检测是否存在异常交易)
-
医疗健康:
- 疾病预测(如糖尿病预测)
- 癌症检测(基于医学影像)
-
电子商务:
- 用户购买预测(预测用户是否会购买某件商品)
- 推荐系统(基于用户历史数据推荐商品)
2. 无监督学习(Unsupervised Learning)
概念
无监督学习用于没有标签的数据,主要用于数据模式发现,如数据分类、降维、异常检测等。
常见算法
算法 | 任务类型 | 适用场景 |
---|---|---|
K-means 聚类 | 聚类 | 客户分群、图像分割 |
DBSCAN | 聚类 | 异常检测、地理位置分析 |
层次聚类 | 聚类 | 社交网络分析、基因分析 |
主成分分析(PCA) | 降维 | 高维数据可视化、特征降维 |
t-SNE | 降维 | 图像处理、文本分析 |
自编码器(Autoencoder) | 特征学习 | 异常检测、数据压缩 |
关联规则学习(Apriori, FP-Growth) | 规则挖掘 | 购物篮分析、推荐系统 |
应用场景
-
客户分群
- 电子商务网站根据用户行为对用户进行分群(K-means)
- 银行对客户进行信用分级(层次聚类)
-
异常检测
- 信用卡欺诈检测(基于 Autoencoder)
- 服务器异常流量检测(DBSCAN)
-
推荐系统
- 商品关联推荐(如 Apriori 规则学习)
- 电影推荐(基于用户兴趣聚类)
-
文本分析
- 文本主题建模(LDA 主题模型)
- 新闻分类(基于 K-means 进行文本聚类)
-
数据降维
- PCA 用于降维高维图像数据
- t-SNE 进行数据可视化(如 MNIST 手写数字可视化)
3. 强化学习(Reinforcement Learning, RL)
概念
强化学习是一种基于奖励信号的学习方法,智能体(Agent)在与环境交互时,通过获得奖励或惩罚来优化其策略,以最大化长期回报。
常见算法
算法 | 任务类型 | 适用场景 |
---|---|---|
Q-learning | 值迭代 | 机器人导航、游戏 AI |
SARSA | 值迭代 | 自适应控制 |
深度 Q 网络(DQN) | 值迭代 + 神经网络 | 视频游戏 AI(AlphaGo) |
策略梯度(Policy Gradient) | 策略优化 | 自动驾驶、对话系统 |
近端策略优化(PPO) | 策略优化 | 机器人控制 |
软 Actor-Critic(SAC) | 连续控制 | 机械臂操作 |
A3C | 并行训练 | 复杂环境下的智能体决策 |
应用场景
-
自动驾驶
- 强化学习用于模拟自动驾驶环境,提高无人车决策能力。
-
游戏 AI
- AlphaGo 通过强化学习击败人类围棋选手。
- 强化学习用于训练 AI 玩 Dota 2、星际争霸等游戏。
-
机器人控制
- 机器人通过强化学习学习行走。
- 机械臂通过强化学习优化抓取物体的策略。
-
智能推荐
- 通过强化学习优化推荐系统,例如新闻推荐、视频推荐。
-
金融交易
- 量化交易中强化学习用于优化买卖决策,最大化收益。
对比总结
特性 | 监督学习 | 无监督学习 | 强化学习 |
---|---|---|---|
是否有标签数据 | 是 | 否 | 通过奖励信号学习 |
目标 | 预测或分类 | 发现数据结构 | 通过试错优化策略 |
数据需求 | 大量标注数据 | 未标注数据 | 交互式数据 |
应用场景 | 图像识别、语音识别 | 聚类、异常检测 | 游戏 AI、机器人 |
如何选择适合的机器学习方法?
- 如果有标注数据,并且需要预测具体的值或类别 → 监督学习
- 如果没有标签数据,希望找到数据的结构或模式 → 无监督学习
- 如果任务涉及交互式环境,并且需要通过试错优化策略 → 强化学习
2. 机器学习的核心流程
无论是哪种机器学习方法,一般都遵循以下步骤:
-
数据收集(Data Collection):
- 从数据库、传感器、互联网等收集数据。
-
数据预处理(Data Preprocessing):
- 缺失值处理:填充或删除缺失数据。
- 数据清理:去除异常值,转换数据格式。
- 特征工程:提取关键特征,如标准化、归一化、降维。
-
选择合适的模型(Model Selection):
- 线性回归、决策树、神经网络等,根据问题选择合适的模型。
-
训练模型(Model Training):
- 使用训练数据调整模型参数,使其尽可能拟合数据。
-
模型评估(Model Evaluation):
- 使用测试数据评估模型性能,常见评估指标:
- 回归任务:均方误差(MSE)、R²
- 分类任务:准确率(Accuracy)、F1 分数、ROC 曲线
- 使用测试数据评估模型性能,常见评估指标:
-
模型优化(Model Optimization):
- 超参数调优,如调整学习率、选择不同优化算法(如 Adam、SGD)。
- 交叉验证(Cross Validation)以避免过拟合。
-
部署和预测(Deployment & Prediction):
- 训练好的模型用于新数据预测,如推荐系统、自动驾驶、语音识别等。
3. 机器学习的一些关键概念
(1) 过拟合(Overfitting)和欠拟合(Underfitting)
- 过拟合:模型过度学习训练数据的细节,导致泛化能力差,在新数据上表现不好。
- 欠拟合:模型过于简单,无法学习训练数据中的模式,表现不佳。
解决方案:
- 交叉验证(Cross Validation)
- 正则化(L1/L2 正则)
- 数据增强(Data Augmentation)
- 增加训练数据量
(2) 特征工程(Feature Engineering)
特征工程是提升机器学习模型性能的重要步骤,包括:
- 特征选择(Feature Selection):选择最相关的特征,减少数据维度。
- 特征提取(Feature Extraction):例如从文本中提取关键词。
- 数据变换(Feature Scaling):归一化或标准化数据,如 Min-Max 归一化。
(3) 评价指标
不同任务使用不同的评估指标:
-
回归任务
- 均方误差(MSE)
- 平均绝对误差(MAE)
- R² 评分
-
分类任务
- 准确率(Accuracy):正确分类的样本比例。
- 精确率(Precision):预测为正样本中真正为正的比例。
- 召回率(Recall):真正为正的样本中被正确预测的比例。
- F1 分数(F1-score):Precision 和 Recall 的调和平均数。
- ROC 曲线 & AUC:衡量模型的分类能力。
4. 机器学习的应用
机器学习在许多领域都得到了广泛应用:
(1) 计算机视觉(Computer Vision)
- 目标检测、人脸识别(如 iPhone 的 Face ID)
- 自动驾驶(特斯拉自动驾驶)
(2) 自然语言处理(NLP)
- 机器翻译(Google Translate)
- 语音识别(Siri, Google Assistant)
- 生成式 AI(ChatGPT)
(3) 推荐系统
- 视频推荐(Netflix, YouTube)
- 购物推荐(淘宝、京东)
- 音乐推荐(Spotify)
(4) 金融与医疗
- 诈骗检测(银行信用卡欺诈检测)
- 股票市场预测
- 疾病预测(癌症检测)
5. 机器学习工具与框架
- Python 语言(最常用):Scikit-learn、TensorFlow、PyTorch、XGBoost
- 数据处理工具:Pandas、NumPy
- 可视化工具:Matplotlib、Seaborn
- 深度学习:TensorFlow(Google)、PyTorch(Facebook)
6. 机器学习 vs 深度学习
机器学习和深度学习的区别:
- 机器学习:需要手工设计特征(如特征工程),然后输入模型(如决策树、SVM)。
- 深度学习(Deep Learning):使用神经网络(如 CNN、RNN),能够自动学习特征,特别适用于图像、语音、文本数据。
6.1. 深度学习(Deep Learning, DL)
概念
深度学习是一种基于**人工神经网络(ANN)**的机器学习方法,能够自动学习数据中的特征,并进行分类、回归或生成任务。
特点
- 数据驱动:需要大量数据进行训练
- 静态映射:模型学习的是输入 → 输出的映射关系
- 无交互:训练过程不依赖环境反馈
- 依赖梯度下降:通常使用反向传播 + 梯度下降来优化神经网络参数
常见网络架构
网络类型 | 主要应用 | 例子 |
---|---|---|
卷积神经网络(CNN) | 图像处理 | 人脸识别、目标检测 |
循环神经网络(RNN) | 序列数据 | 语音识别、文本生成 |
长短时记忆网络(LSTM) | 依赖长期上下文的序列数据 | 机器翻译、语音合成 |
变换器(Transformer) | NLP、时间序列 | GPT、BERT、T5 |
生成对抗网络(GAN) | 生成模型 | DeepFake、图像生成 |
自编码器(Autoencoder) | 无监督学习 | 异常检测、数据降维 |
应用场景
- 计算机视觉:图像分类(ResNet)、目标检测(YOLO)
- 自然语言处理:机器翻译(Google Translate)、文本摘要(ChatGPT)
- 语音处理:语音识别(Siri)、语音合成(WaveNet)
- 医学影像:疾病检测(如 CT、X-ray 诊断)
- 金融:股票价格预测、信用风险评估
2. 强化学习(Reinforcement Learning, RL)
概念
强化学习是一种基于奖励反馈的学习方法,智能体(Agent)在环境(Environment)中采取行动(Action),根据获得的奖励(Reward)调整策略(Policy),以最大化长期收益(Cumulative Reward)。
特点
- 探索与试错:智能体通过不断尝试优化策略
- 动态决策:学习的是状态 → 动作的映射关系
- 交互式学习:智能体在环境中不断学习和调整
- 非监督学习:没有明确的标签,而是基于奖励信号进行优化
强化学习核心要素
组件 | 作用 |
---|---|
环境(Environment) | 任务所在的世界,智能体在其中行动 |
智能体(Agent) | 需要学习最佳策略的主体 |
状态(State, s) | 环境的当前状态 |
动作(Action, a) | 智能体可采取的行为 |
奖励(Reward, r) | 反馈,告诉智能体某个动作的好坏 |
策略(Policy, π) | 智能体在不同状态下选择动作的规则 |
值函数(Value Function, V) | 评估某个状态的长期收益 |
Q 函数(Q-value, Q(s,a)) | 评估某个状态下采取特定动作的价值 |
常见强化学习算法
算法 | 主要特点 | 适用场景 |
---|---|---|
Q-learning | 基于值迭代的离线学习 | 游戏、推荐系统 |
SARSA | 基于值迭代的在线学习 | 动态环境控制 |
DQN(深度 Q 网络) | 用 CNN 近似 Q 值函数 | 复杂游戏(如 AlphaGo) |
Policy Gradient | 直接优化策略 | 连续控制(机器人) |
PPO(近端策略优化) | 训练稳定,广泛应用 | 机器人控制、自动驾驶 |
A3C(Actor-Critic) | 并行训练加速 | 复杂环境决策 |
SAC(Soft Actor-Critic) | 适用于连续控制 | 机械臂、无人机 |
应用场景
- 游戏 AI:AlphaGo、Dota 2 AI
- 自动驾驶:学习如何安全驾驶
- 机器人控制:机械臂操作、自动导航
- 金融投资:量化交易、动态资产管理
- 工业优化:智能制造、供应链优化
6.3. 深度学习 vs. 强化学习
维度 | 深度学习(DL) | 强化学习(RL) |
---|---|---|
数据需求 | 需要大量标注数据 | 通过交互生成数据 |
学习方式 | 监督学习/无监督学习 | 试错学习(探索+利用) |
目标 | 学习输入到输出的映射 | 通过环境交互学习最优策略 |
训练方式 | 反向传播 + 梯度下降 | 价值迭代 / 策略优化 |
应用领域 | 计算机视觉、NLP | 游戏 AI、机器人、自适应控制 |
交互性 | 无交互,单次推理 | 需要环境反馈 |
6.4. 深度强化学习(Deep Reinforcement Learning, DRL)
深度学习和强化学习可以结合,形成深度强化学习(DRL),用于更复杂的决策问题。例如:
-
DQN(Deep Q-Network):用 CNN 近似 Q 值函数,玩 Atari 游戏
-
AlphaGo:用神经网络 + 强化学习训练围棋 AI
-
自动驾驶:用深度强化学习优化驾驶策略
-
如果有大量标注数据,任务是预测或分类 → 深度学习
-
如果任务需要交互式学习、优化决策策略 → 强化学习
-
如果任务是智能体在复杂环境中决策 → 深度强化学习
相关文章:
机器学习:监督学习、无监督学习和强化学习
机器学习(Machine Learning, ML)是人工智能(AI)的一个分支,它使计算机能够从数据中学习,并在没有明确编程的情况下执行任务。机器学习的核心思想是使用算法分析数据,识别模式,并做出…...

基于vue3和flask开发的前后端管理系统(一):项目启动准备
准备工作 我们需要准备以下工具 vue3:构建前端 tailwind css:样式库vite:快速构建vue项目pinia :vue3 的事件管理器 flask:后端代码Mysql:数据库 heidisql:数据库图形化界面 vscode࿱…...

一、MySQL备份恢复
一、MySQL备份恢复 1.1 MySQL日志管理 数据库中数据丢失或被破坏可能原因 误删除数据库 数据库工作时,意外断电或程序意外终止 由于病毒造成的数据库损坏或丢失 文件系统损坏后,系统进行自检操作 升级数据库时,命令语句不严格 设备故…...

DeepSeek崛起:如何在云端快速部署你的专属AI助手
在2025年春节的科技盛宴上,DeepSeek因其在AI领域的卓越表现成为焦点,其开源的推理模型DeepSeek-R1擅长处理多种复杂任务,支持多语言处理,并通过搜索引擎获取实时信息。DeepSeek因其先进的自然语言处理技术、广泛的知识库和高性价比…...
SQLite Alter 命令详解
SQLite Alter 命令详解 SQLite 是一种轻量级的数据库,广泛用于各种嵌入式系统、移动应用和小型项目。SQLite 的ALTER TABLE命令用于修改已存在的表结构,包括添加、删除或修改列,以及重命名表等操作。本文将详细解析SQLite的ALTER TABLE命令&…...

2025 聚合易支付完整版PHP网站源码
源码介绍 2025 聚合易支付完整版PHP网站源码 PHP版本:PHP74 源码上传服务器,解压访问域名即可安装 安装完成后一定要设置伪静态 源码里面nginx.txt 就是伪静态 然后复制粘贴到伪静态里面保存即可 部分截图 源码获取 2025 聚合易支付完整版PHP网站源码…...
Android开发Android调web的方法
Android开发Android调web的方法 一般都是web调Android,很少Android调web方法。 我用的是AgentWeb。它内核也是webview。 直接上代码: mAgentWeb.getJsAccessEntrace().quickCallJs("adLookSuccessAndroid",event.getType());它的意思是&am…...
FastGPT 源码:基于 LLM 实现 Rerank (含Prompt)
文章目录 基于 LLM 实现 Rerank函数定义预期输出实现说明使用建议完整 Prompt 基于 LLM 实现 Rerank 下边通过设计 Prompt 让 LLM 实现重排序的功能。 函数定义 class LLMReranker:def __init__(self, llm_client):self.llm llm_clientdef rerank(self, query: str, docume…...

字节跳动发布 Trae AI IDE!支持 DeepSeek R1 V3,AI 编程新时代来了!
3 月 3 日,字节跳动重磅发布国内首款 AI 原生集成开发环境(AI IDE)——Trae 国内版! Trae 不只是一个传统的 IDE,它深度融合 AI,搭载 doubao-1.5-pro 大模型,同时支持DeepSeek R1 & V3&…...

windows下安装Open Web UI
windows下安装openwebui有三种方式,docker,pythonnode.js,整合包. 这里我选择的是第二种,非docker. 非Docker方式安装 1. 安装Python: 下载并安装Python 3.11,建议安装路径中不要包含中文字符,并勾选“Add python 3.11 to Path”选项。 安…...

论文阅读 EEG-Inception
EEG-Inception: A Novel Deep Convolutional Neural Network for Assistive ERP-Based Brain-Computer Interfaces EEG-Inception是第一个集成Inception模块进行ERP检测的模型,它有效地结合了轻型架构中的其他结构,提高了我们方法的性能。 本研究的主要目…...
基于opencv消除图片马赛克
以下是一个基于Python的图片马赛克消除函数实现,结合了图像处理和深度学习方法。由于马赛克消除涉及复杂的图像重建任务,建议根据实际需求选择合适的方法: import cv2 import numpy as np from PIL import Imagedef remove_mosaic(image_pat…...

计算机毕业设计SpringBoot+Vue.js陕西民俗网(源码+文档+PPT+讲解)
温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 作者简介:Java领…...
【算法方法总结·三】滑动窗口的一些技巧和注意事项
【算法方法总结三】滑动窗口的一些技巧和注意事项 【算法方法总结一】二分法的一些技巧和注意事项【算法方法总结二】双指针的一些技巧和注意事项【算法方法总结三】滑动窗口的一些技巧和注意事项 【滑动窗口】 数组的和 随着 右边指针 移动一定是 非递减 的,就是 …...

IO的概念和标准IO函数
作业: 1.使用标准IO函数,实现文件的拷贝 #include <stdio.h>int main(int argc, char *argv[]) {// 检查是否提供了源文件和目标文件if (argc ! 3) {printf("Usage: %s <source_file> <destination_file>\n", argv[0]);re…...

tauri2+typescript+vue+vite+leaflet等的简单联合使用(一)
项目目标 主要的目的是学习tauri。 流程 1、搭建项目 2、简单的在项目使用leaflet 3、打包 准备项目 环境准备 废话不多说,直接开始 需要有准备能运行Rust的环境和Node,对于Rust可以参考下面这位大佬的文章,Node不必细说。 Rust 和…...
【流程图】在 .NET (WPF 或 WinForms) 中实现流程图中的连线算法
在 .NET (WPF 或 WinForms) 中实现流程图中的连线算法,通常涉及 图形绘制 和 路径计算。常见的连线方式包括 直线、折线 和 贝塞尔曲线。以下是几种方法的介绍和示例代码。 1. 直线连接(最简单) 适用场景: 两个节点之间没有障碍…...

IDEA集成DeepSeek,通过离线安装解决无法安装Proxy AI插件问题
文章目录 引言一、安装Proxy AI1.1 在线安装Proxy AI1.2 离线安装Proxy AI 二、Proxy AI中配置DeepSeek2.1 配置本地部署的DeepSeek(Ollama方式)2.2 通过第三方服务商提供的API进行配置 三、效果测试 引言 许多开发者尝试通过安装Proxy AI等插件将AI能力…...
【流行病学】Melodi-Presto因果关联工具
title: “[流行病学] Melodi Presto因果关联工具” date: 2022-12-08 lastmod: 2022-12-08 draft: false tags: [“流行病学”,“因果关联工具”] toc: true autoCollapseToc: true 阅读介绍 Melodi-Presto: A fast and agile tool to explore semantic triples derived from …...

详细分析KeepAlive的基本知识 并缓存路由(附Demo)
目录 前言1. 基本知识2. Demo2.1 基本2.2 拓展2.3 终极 3. 实战 前言 🤟 找工作,来万码优才:👉 #小程序://万码优才/r6rqmzDaXpYkJZF 基本知识推荐阅读:KeepAlive知识点 从实战中学习,源自实战中vue路由的…...

多云管理“拦路虎”:深入解析网络互联、身份同步与成本可视化的技术复杂度
一、引言:多云环境的技术复杂性本质 企业采用多云策略已从技术选型升维至生存刚需。当业务系统分散部署在多个云平台时,基础设施的技术债呈现指数级积累。网络连接、身份认证、成本管理这三大核心挑战相互嵌套:跨云网络构建数据…...
【网络】每天掌握一个Linux命令 - iftop
在Linux系统中,iftop是网络管理的得力助手,能实时监控网络流量、连接情况等,帮助排查网络异常。接下来从多方面详细介绍它。 目录 【网络】每天掌握一个Linux命令 - iftop工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景…...
pam_env.so模块配置解析
在PAM(Pluggable Authentication Modules)配置中, /etc/pam.d/su 文件相关配置含义如下: 配置解析 auth required pam_env.so1. 字段分解 字段值说明模块类型auth认证类模块,负责验证用户身份&am…...
基础测试工具使用经验
背景 vtune,perf, nsight system等基础测试工具,都是用过的,但是没有记录,都逐渐忘了。所以写这篇博客总结记录一下,只要以后发现新的用法,就记得来编辑补充一下 perf 比较基础的用法: 先改这…...
python爬虫:Newspaper3k 的详细使用(好用的新闻网站文章抓取和解析的Python库)
更多内容请见: 爬虫和逆向教程-专栏介绍和目录 文章目录 一、Newspaper3k 概述1.1 Newspaper3k 介绍1.2 主要功能1.3 典型应用场景1.4 安装二、基本用法2.2 提取单篇文章的内容2.2 处理多篇文档三、高级选项3.1 自定义配置3.2 分析文章情感四、实战案例4.1 构建新闻摘要聚合器…...

Java面试专项一-准备篇
一、企业简历筛选规则 一般企业的简历筛选流程:首先由HR先筛选一部分简历后,在将简历给到对应的项目负责人后再进行下一步的操作。 HR如何筛选简历 例如:Boss直聘(招聘方平台) 直接按照条件进行筛选 例如:…...

算法笔记2
1.字符串拼接最好用StringBuilder,不用String 2.创建List<>类型的数组并创建内存 List arr[] new ArrayList[26]; Arrays.setAll(arr, i -> new ArrayList<>()); 3.去掉首尾空格...
高效线程安全的单例模式:Python 中的懒加载与自定义初始化参数
高效线程安全的单例模式:Python 中的懒加载与自定义初始化参数 在软件开发中,单例模式(Singleton Pattern)是一种常见的设计模式,确保一个类仅有一个实例,并提供一个全局访问点。在多线程环境下,实现单例模式时需要注意线程安全问题,以防止多个线程同时创建实例,导致…...

技术栈RabbitMq的介绍和使用
目录 1. 什么是消息队列?2. 消息队列的优点3. RabbitMQ 消息队列概述4. RabbitMQ 安装5. Exchange 四种类型5.1 direct 精准匹配5.2 fanout 广播5.3 topic 正则匹配 6. RabbitMQ 队列模式6.1 简单队列模式6.2 工作队列模式6.3 发布/订阅模式6.4 路由模式6.5 主题模式…...

无人机侦测与反制技术的进展与应用
国家电网无人机侦测与反制技术的进展与应用 引言 随着无人机(无人驾驶飞行器,UAV)技术的快速发展,其在商业、娱乐和军事领域的广泛应用带来了新的安全挑战。特别是对于关键基础设施如电力系统,无人机的“黑飞”&…...