第四章:机器学习概述
学习目标
- 理解机器学习(ML)的定义与核心思想
- 掌握三种学习类型:监督学习、无监督学习、强化学习
- 理解监督学习的两大任务:分类与回归
- 了解机器学习的完整工作流程
- 认识无监督学习和强化学习的典型算法与应用
前置要求
第三章:AI基础概念(理解AI的基本定义和分类)。
什么是机器学习(ML)?
机器学习(Machine Learning)是AI的核心分支,让计算机从数据中自动学习规律,而不是人工编写所有规则。
传统编程 vs 机器学习
传统编程:人类编写规则 → 计算机执行 → 输出结果
机器学习:计算机从数据中学习规则 → 自动改进 → 输出结果
例如:要识别垃圾邮件——
传统方式:程序员手动编写"如果邮件包含'中奖'、'免费'等关键词则标记为垃圾"
ML方式:给模型10万封已标记的邮件,模型自动学习垃圾邮件的特征模式
机器学习的三种类型
| 类型 | 特点 | 数据 | 应用场景 |
|---|---|---|---|
| 监督学习 | 有标签数据,告诉机器正确答案 | 有标签(输入+答案) | 图像分类、垃圾邮件识别、预测房价 |
| 无监督学习 | 无标签数据,让机器自己发现规律 | 无标签(只有输入) | 用户分群、数据降维、异常检测 |
| 强化学习 | 通过试错获得奖励,学习最优策略 | 环境反馈(奖励/惩罚) | 游戏AI、自动驾驶、机器人控制 |
监督学习详解
监督学习是最常见的机器学习方式。就像老师教学生:老师给题目和答案,学生通过对比学习。
监督学习的两大任务:
- 分类(Classification):预测离散类别,如"是/否"、"猫/狗"
- 回归(Regression):预测连续数值,如房价、温度
监督学习的应用实例
垃圾邮件识别(分类任务):
• 训练数据:10万封邮件(标记"垃圾"或"正常")
• 模型学习:垃圾邮件的特征(关键词、发件人)
• 应用:新邮件自动判断是否垃圾
房价预测(回归任务):
• 训练数据:历史房价(面积、位置、房价)
• 模型学习:面积/位置与房价的关系
• 应用:输入房屋信息,预测房价
无监督学习详解
无监督学习(Unsupervised Learning)是让机器在没有标签的数据中自己发现规律和结构。就像让学生在没有老师指导的情况下自己探索知识。
为什么叫"无监督"?
监督学习:有老师告诉对错(有标签)
无监督学习:没有老师,机器自己探索(无标签)
数据只有输入,没有标准答案。机器的任务是找出数据内部的规律。
无监督学习的主要任务
1. 聚类(Clustering)——自动分组
聚类是把相似的数据自动归为一组,发现数据中的自然分组。
聚类的通俗理解
想象你有一堆照片,不知道分类。聚类算法会自动:
• 把人物照片放在一起
• 把风景照片放在一起
• 把动物照片放在一起
机器不知道什么是"人物"、"风景",但它能发现照片之间的相似性,自动分组。
K-Means聚类算法示例
K-Means是最简单常用的聚类算法,下面用Python演示其基本用法:
from sklearn.cluster import KMeans
import numpy as np
# 生成模拟数据:两组二维点
np.random.seed(42)
data = np.concatenate([
np.random.randn(50, 2) + np.array([0, 0]), # 第一组,中心在(0,0)
np.random.randn(50, 2) + np.array([5, 5]), # 第二组,中心在(5,5)
])
# 使用K-Means聚类,指定分为2组
kmeans = KMeans(n_clusters=2, random_state=42, n_init=10)
labels = kmeans.fit_predict(data)
# 查看聚类结果
print("每个数据点的分组标签:", labels[:10])
print("聚类中心坐标:", kmeans.cluster_centers_)
# 输出示例:
# 每个数据点的分组标签: [1 1 1 1 1 1 1 1 1 1]
# 聚类中心坐标: [[4.93 4.88] [-0.12 0.05]]
2. 降维(Dimensionality Reduction)——简化数据
降维是把高维数据压缩到低维,保留关键信息,去掉冗余。
什么是高维数据?
每个数据点有很多属性(维度):
• 用户数据:年龄、性别、收入、职业、爱好...(几十个维度)
• 图像:每个像素是一个维度(一张图片可能有上万个维度)
维度太多的问题:计算复杂、信息冗余、难以可视化
降维解决这个问题:保留核心信息,压缩到少数维度。
常见降维算法
| 算法 | 原理 | 应用 |
|---|---|---|
| PCA(主成分分析) | 找到数据变化最大的方向,投影到这些方向 | 数据压缩、可视化、去噪 |
| t-SNE | 保持局部相似性,用于可视化 | 高维数据可视化展示 |
| UMAP | 比t-SNE更快,保持全局结构 | 大规模数据可视化 |
3. 异常检测(Anomaly Detection)——发现异常
异常检测是找出与正常数据明显不同的异常数据。
异常检测的价值
• 欺诈检测:发现异常交易行为(银行卡盗刷)
• 故障预警:发现设备运行的异常状态
• 入侵检测:发现网络异常流量攻击
• 数据清洗:发现数据中的错误异常值
强化学习详解
强化学习(Reinforcement Learning)是让AI通过不断尝试和反馈来学习最优策略。就像训练宠物:表现好给奖励,表现差不奖励,逐渐学会正确行为。
类比理解
训练狗狗:
• 狗坐下 → 给零食(奖励) → 狗记住坐下能得零食
• 狗乱跑 → 不给零食(无奖励) → 狗知道乱跑没好处
• 多次尝试后 → 狗学会"听到指令就坐下"
强化学习就是这个原理:AI尝试各种行为,根据奖励反馈调整策略。
强化学习的核心概念
状态(State)
当前环境的情况
(如:游戏中角色的位置)
动作(Action)
AI能做的事情
(如:向上、向下、攻击)
奖励(Reward)
行为好坏的反馈
(如:得分、扣分)
策略(Policy)
在什么状态做什么动作
(AI学到的决策规则)
强化学习的循环过程
探索与利用的平衡
探索 vs 利用
探索:尝试新的、未知的行为
• 好处:可能发现更好的方法
• 风险:可能暂时表现不好
利用:使用已知的最佳行为
• 好处:稳定获得好结果
• 风险:错过更好的方法
好的强化学习需要平衡两者:既探索新可能,又利用已知最优。
常见强化学习算法
| 算法 | 原理 | 应用 |
|---|---|---|
| Q-Learning | 建立表格记录每个(状态,动作)的预期奖励 | 简单环境、游戏AI |
| DQN | 用神经网络代替Q表,处理复杂环境 | Atari游戏、复杂游戏 |
| Policy Gradient | 直接优化动作策略,不是估计奖励值 | 连续动作空间、机器人 |
| PPO | 限制策略更新幅度,训练稳定 | ChatGPT的RLHF训练 |
AlphaGo的突破
AlphaGo的学习过程:
1. 监督学习:学习人类高手棋谱
2. 强化学习:自我对弈,探索更好的策略
3. 发现人类未知的招法,超越人类水平
这是强化学习的经典成功案例。
机器学习的完整流程
一个完整的机器学习项目通常包含以下步骤:
| 步骤 | 说明 | 关键工具/方法 |
|---|---|---|
| 数据收集 | 获取训练所需的数据 | 数据库查询、爬虫、公开数据集 |
| 数据预处理 | 清洗、标准化、处理缺失值 | Pandas、NumPy |
| 特征工程 | 选择和构造有用的特征 | 领域知识、统计分析 |
| 模型选择 | 选择合适的算法 | 根据任务类型和数据特点 |
| 模型训练 | 用数据训练模型参数 | Scikit-learn、PyTorch、TensorFlow |
| 模型评估 | 测试模型性能 | 准确率、F1分数、交叉验证 |
| 部署上线 | 将模型投入实际使用 | Flask、Docker、云服务 |
本章小结
- 机器学习是AI的核心分支,核心思想是让计算机从数据中自动学习规律,而非人工编写所有规则。
- 监督学习需要带标签的数据,分为分类(预测类别)和回归(预测数值)两大任务。
- 无监督学习在没有标签的数据中发现规律,主要任务包括聚类、降维和异常检测。
- 强化学习通过"试错+奖励"的方式学习最优策略,核心概念包括状态、动作、奖励和策略。
- 完整的机器学习流程包括:数据收集 → 预处理 → 特征工程 → 模型选择 → 训练 → 评估 → 部署。
练习题
-
以下哪个是监督学习的典型任务?
A. 将新闻按主题自动分组
B. 根据房屋特征预测房价
C. 发现信用卡交易的异常模式
D. 通过自我对弈学会下围棋答案:B。预测房价是回归任务,属于监督学习。A是无监督学习(聚类),C是无监督学习(异常检测),D是强化学习。
-
在强化学习中,"探索"和"利用"分别指什么?
A. 探索是寻找新数据,利用是使用旧数据
B. 探索是尝试未知行为,利用是使用已知最佳行为
C. 探索是增加模型参数,利用是减少模型参数
D. 探索是训练模型,利用是评估模型答案:B。探索指尝试新的、未知的行为以发现更好的策略;利用指使用已知的最佳行为以获得稳定回报。
-
机器学习完整流程的正确顺序是?
A. 模型选择 → 数据收集 → 特征工程 → 训练 → 评估
B. 数据收集 → 预处理 → 特征工程 → 模型选择 → 训练 → 评估
C. 数据收集 → 模型选择 → 训练 → 预处理 → 评估
D. 特征工程 → 数据收集 → 模型选择 → 训练 → 预处理答案:B。正确的流程是先收集数据,再预处理,然后特征工程,接着选择模型,训练,最后评估。