一、机器学习简介
1. 概述
机器学习是人工智能的核心领域之一,简单来说,就是让计算机从数据中自动学习规律和模式,而无需为每个具体任务明确编写规则。机器学习是实现人工智能的一种途径。
2. 核心思想:从数据中学习
传统编程是你告诉计算机每一步该怎么做(输入规则+数据 → 输出答案)。而机器学习反过来,你提供答案(数据+期望输出),计算机自己找出其中的规则(模型)。
-
基于规则的学习(传统编程) :通过代码编写规则,让计算机输出答案。

-
基于模型的学习(机器学习) :通过编写机器学习算法,让机器自己学习从历史数据中获得经验、训练模型。

3. 与深度学习、人工智能之间的关系
人工智能、机器学习、深度学习这三个概念常被混淆,它们的关系是包含与被包含:
- 人工智能:最宏大的目标,让机器模拟人类智能。
- 机器学习:实现人工智能的主要途径之一。
- 深度学习:是机器学习的一个子领域,它使用多层神经网络自动从海量数据中提取特征,在图像、语音、自然语言处理等领域取得了突破性成就。
简单来说:深度学习是当前最强大、最热门的机器学习方法,但机器学习本身涵盖更广泛的算法和技术 。

二、机器学习的发展史和应用领域
1. 发展史
1956年夏季,以麦卡赛、明斯基、罗切斯特和申农等为首的一批有远见卓识的年轻科学家在一起聚会,共同研究和探讨用机器模拟智能的一系列有关问题,并首次提出了"人工智能"这一术语,它标志着"人工智能"这门新兴学科的正式诞生。1956年被认为是人工智能元年
1950-1970
符号主义流派:专家系统占主导地位
1950:图灵设计国际象棋程序
1962:IBM Arthur Samuel 的跳棋程序战胜人类高手(人工智能第一次浪潮)
1980-2000
统计主义流派:主要用统计模型解决问题
1993:Vapnik提出SVM
1997:IBM 深蓝战胜卡斯帕罗夫(人工智能第二次浪潮)
2010-2017
神经网络、深度学习流派
2012:AlexNet深度学习的开山之作
2016:Google AlphaGO 战胜李世石(人工智能第三次浪潮)
2017-至今
大规模预训练模型
2017年,自然语言处理NLP的Transformer框架出现
2018年,Bert和GPT的出现
2022年,chatGPT的出现,进入到大规模模型AIGC发展的阶段

2. 应用领域
机器学习早已从学术研究走向生产实践,其应用几乎渗透到各行各业,深刻改变着我们的生活和工作方式。
| 领域 | 典型任务 | 代表应用 |
|---|---|---|
| 计算机视觉 | 检测、分类、分割 | 人脸识别、医疗影像、自动驾驶感知 |
| 自然语言处理 | 翻译、问答、生成 | 机器翻译、ChatGPT、智能客服 |
| 推荐系统 | 个性化排序 | 电商推荐、抖音视频流 |
| 金融风控 | 分类、异常检测 | 信用卡欺诈检测、信用评分 |
| 自动驾驶 | 感知、决策、规划 | Waymo、Tesla FSD |
3. 机器学习发展三要素
- 数据:燃料与基础
没有数据,机器学习就无从谈起。数据的量、质、多样性直接决定了模型能力的上限。 - 算法:引擎与方法论
算法定义了如何从数据中学习规律。更强大的算法能更高效地利用数据和算力。 - 算力:加速器与放大器
足够的计算能力把算法和数据真正转化为可用的模型。算力的提升主要来自硬件和分布式技术。
三者关系:相互促进的正反馈循环
- 更多算力 → 可以训练更大、更深的模型 → 在同等数据下性能更好。
- 更好的算法 → 更高效地利用算力和数据 → 减少对算力的需求,或解锁新能力。
- 更多数据 → 需要更大模型来吸收信息 → 又反过来要求更强算力和更优算法。

4. 机器学习数据术语
| 术语 | 英文 | 解释 |
|---|---|---|
| 样本/实例 | Sample / Instance | 数据集中每一条记录。比如一个用户、一张图片、一笔交易 |
| 特征 | Feature | 描述样本的某个可测量属性。例如,预测房价时的"面积","卧室数量" |
| 标签/目标 | Label / Target | 监督学习中,我们希望模型预测的那个值。例如房价样本中的实际成交价 |
| 特征向量 | Feature Vector | 一个样本的所有特征值组成的向量。机器学习模型的输入通常就是特征向量 |
| 训练集 | Training Set | 用于训练模型的数据,模型从中学习规律 |
| 验证集 | Validation Set | 用于在训练过程中调优超参数、选择模型的数据 |
| 测试集 | Testing Set | 模型训练完成后,用来评估最终泛化能力的"全新"数据 |
5. 机器学习的建模过程
- 获取经验数据,如图像数据、文本数据...
- 数据预处理,如缺失值、异常值处理...
- 特征工程,如特征提取、特征预处理、特征降维、特征选择...
- 模型训练,如线性回归、逻辑回归、决策树...
- 模型预测
- 模型评估,如回归评测指标、分类评测指标、聚类评测指标...

三、机器学习算法的分类
机器学习算法可以从多个角度进行分类,最常用的是按学习范式和按任务类型划分。
1. 按学习范式分类
这是根据训练数据是否有标签、以及学习过程的特点来划分的。
| 范式 | 数据特点 | 目标 | 典型算法 |
|---|---|---|---|
| 监督学习 | 有标签(输入+期望输出) | 学习从输入到输出的映射 | 线性回归、逻辑回归、决策树、随机森林、KNN、神经网络 |
| 无监督学习 | 无标签 | 通过特征的相似性,发现数据内在结构或分布 | K-Means、DBSCAN |
| 半监督学习 | 少量有标签 + 大量无标签 | 通过少量有标签数据训练模型,利用无标签数据提升优化模型的性能 | 自训练、协同训练 |
| 强化学习 | 与环境交互获得奖惩信号 | 通过不断学习反馈,获取最大累计奖励进行一系列决策 | Q-Learning、深度Q网络(DQN)、策略梯度(PPO) |
2. 按任务类型分类
根据算法要解决的问题类型来划分。
| 任务类型 | 目标 | 常见算法 |
|---|---|---|
| 分类(Classification) | 预测离散类别(二分类/多分类) | 逻辑回归、决策树、随机森林、KNN、朴素贝叶斯、神经网络 |
| 回归(Regression) | 预测连续值 | 线性回归、多项式回归、岭回归、Lasso回归、决策树回归、随机森林回归 |
| 聚类(Clustering) | 自动将相似样本归入同一簇 | K-Means、DBSCAN、层次聚类 |
四、特征工程
特征工程(Feature Engineering)是机器学习流程中极其关键、也往往最耗时的一步。简单来说,它是将原始数据转化为能更好地表达问题本质、便于模型学习的特征(通常是数值型向量)的过程 。数据和特征决定了机器学习的上限,而模型和算法只是在逼近这个上限。
1. 为什么需要特征工程?
原始数据(如文本、图像、表格、时间序列)往往不适合直接输入模型,主要存在以下问题:
- 类型不匹配:模型通常要求输入是数值,但原始数据可能有类别、文本、日期等。
- 度量不统一:身高(cm)和体重(kg)可能量级差异巨大,影响基于距离的模型。
- 缺失与噪声:数据收集过程中难免有缺失值、异常值。
- 信息未表达:有用的信号可能隐藏在现有特征的组合或变换中。
- 维度过高:大量冗余或无关特征会拖慢训练、导致过拟合。
特征工程的目的就是清洗、转换、创造合适的特征,让模型更容易学到规律。
2. 特征工程的主要步骤
- 特征提取:从原始数据中提取与任务相关的特征,构成特征向量
- 特征预处理:对特征的缺失值、异常值、重复值进行处理,通过特征缩放统一特征的量纲
- 特征降维:当特征维度极高(如图像、文本)且特征间相关性强时,降维可压缩信息到低维空间
- 特征选择:从众多特征中筛选出最有用的子集,减少过拟合、加速训练、提高可解释性
- 特征组合 :通过已有特征的运算或组合,创建新特征,以表达更复杂的模式
- 算数组合:面积 = 长 × 宽;密度 = 重量 / 体积
- 多项式特征: x 2 , x y , x 3 x^2, xy,x^3 x2,xy,x3等,捕捉非线性关系
- 交叉组合:年龄分箱 × 性别。例如 "20-30岁男性" 作为一个新特征
- 统计聚合:对用户历史行为计算 最大值、最小值、均值、方差、计数等
五、模型拟合问题
机器学习模型拟合问题,核心是描述模型在训练数据上的学习程度与其对新数据的泛化能力之间的矛盾。最经典的两种极端情况是欠拟合 和过拟合 ,两者之间理想的平衡状态称为良好拟合。
1. 欠拟合 (Underfitting)
定义:模型过于简单,连训练数据的基本规律都没学好,在训练集和测试集上都表现差。
表现:
- 训练误差高
- 验证/测试误差也高,且两者接近
类比:考试前只复习了最粗浅的概念,结果无论是平时作业(训练)还是期末考(测试)都做不对。
主要原因:
- 模型过于简单(如线性模型拟合非线性数据)
- 特征太少或特征信息量不足
- 正则化强度过大(把模型"压"得太简单)
- 训练时间不够(对于迭代算法如神经网络、梯度下降)
解决方法:
- 增加模型复杂度:换用更强力的算法(决策树→随机森林,线性→多项式特征)
- 特征工程:增加有用特征、构造交叉特征
- 减少正则化强度(降低 L1/L2 系数)
- 增加训练轮数(如神经网络的 epoch)
- 超参数调优:增大树的最大深度,减少叶节点最小样本数等
2. 过拟合 (Overfitting)
定义:模型过于复杂,死记硬背了训练数据中的噪声和特例,而没有学到一般规律。结果在训练集上表现极好,但在新数据上表现很差。
表现:
- 训练误差很低,甚至为0
- 验证/测试误差却明显高于训练误差(两者差距大)
类比:学生把习题集的答案全部背下来,考试时题目稍微变化就不会做。
主要原因:
- 模型相对于训练数据量过于复杂(参数太多、层数太深、树太深)
- 训练数据太少,或噪声太多
- 特征过多,包含不相关或冗余特征
- 训练时间过长(神经网络训练迭代太多,记住噪声)
解决方法:
- 增加数据量:收集更多样本,或使用数据增强(图像翻转、裁剪、加噪声等)
- 降低模型复杂度:减少网络层数/神经元数,减小树的最大深度,增加叶节点最小样本数
- 正则化 :
- L1/L2 正则化(惩罚大系数)
- Dropout(神经网络)
- 早停(Early stopping):验证集误差不再下降时停止训练
- 特征选择/降维:去掉无关特征,或用 PCA 减少维度
- 集成方法:Bagging(随机森林)、Boosting 本身能减缓过拟合
- 简化特征:减少多项式阶数、减少交叉特征