机器学习如何入门?AI/ML/DL概念与建模流程全景

机器学习如何入门?AI/ML/DL概念与建模流程全景

关键词:机器学习、人工智能、深度学习、特征工程、scikit-learn


目录


写在前面

前面几个阶段,我们把大模型应用开发的"上层建筑"搭得差不多了:本地部署过 Ollama、写过 Python 调用大模型 API、在 Coze 上编排过工作流、也完整拆解过一个 AI 面试助手项目。但有一个问题始终绕不开------大模型为什么能理解语言?微调到底在调什么?RAG 检索回来的内容凭什么能影响生成结果?

这些问题的答案,全都埋在"大模型核心开发技术"这一层里:NLP 基础任务、机器学习、深度学习、Transformer、BERT、LangChain。从这篇开始,我们往下挖地基,第一站就是机器学习概述------把 AI、ML、DL 三个天天挂在嘴边的词彻底分清,把样本、特征、标签、训练集这些术语一次性讲透,再走一遍完整的建模流程。这些概念后面讲线性回归、Transformer、模型微调时会反复出现,值得先打牢。


一、AI、ML、DL:三个概念到底是什么关系

1 人工智能:让机器"像人一样行动"

人工智能(Artificial Intelligence,AI)的定义可以浓缩成一句话:研究如何构造能"智能行动"的计算系统。注意这里有两个维度:

  • 像人一样思考:模拟人类的推理、决策过程;
  • 像人一样行动:表现出合理的、有目标的行为。

所以 AI 是一个学科/目标,而不是某种具体技术。下棋程序、推荐系统、聊天机器人,只要表现出"智能行为",都算 AI 的研究对象。

2 机器学习:不写规则,让机器自己学

机器学习(Machine Learning,ML)的经典定义来自 Arthur Samuel:

让计算机在没有被明确编程的情况下具备学习能力的研究领域。

对比一下人类和机器识别"车"的过程就清楚了:

  • 人类:看过很多车,归纳出"有四个轮子、有车身、能载人"之类的规律,见到新图片时套用规律判断;
  • 机器学习 :给机器大量带标注的图片,让它从数据中自己归纳规律,见到新数据时输出预测。

关键词是"从数据中学习"------规律不是程序员写死的,而是算法从样本里拟合出来的。

3 深度学习:用多层神经元逼近万物

深度学习(Deep Learning,DL)是机器学习的一个分支,核心思想是仿生:用一层一层的"神经元"组成深度神经网络去模拟人脑处理信息的方式。层数越深,能表达的函数越复杂,这也是"深度"二字的由来。

4 三者的包含关系

一句话记住:机器学习是实现人工智能的一种途径,深度学习是机器学习的一种方法。

复制代码
人工智能(AI)
 └── 机器学习(ML):从数据中学习
      └── 深度学习(DL):用深度神经网络学习

5 基于规则的学习 vs 基于模型的学习

理解了 ML 的定义,再看两种"让程序做预测"的路线对比:

基于规则的学习:程序员凭经验手写 if-else。比如判断邮件是不是垃圾邮件:

python 复制代码
def is_spam_by_rules(subject: str) -> bool:
    # 规则完全由人工维护,命中即判为垃圾邮件
    if "中奖" in subject or "免费领取" in subject:
        return True
    return False

这类方法在简单场景够用,但遇到图像识别、语音识别、自然语言处理这类问题就失效了------以"识别大象"为例,实物大象、雕塑、绘画里的大象千差万别,没人能写出一套穷尽所有情况的规则。

基于模型的学习 :不写规则,写学习算法,让机器从历史数据中自己训练出模型:

python 复制代码
# 伪代码:模型学习路线
# 1. 准备历史数据(输入 + 正确答案)
# 2. 选择算法,让算法从数据中归纳出"模型"
# 3. 用模型对新数据做预测
model = train(algorithm, history_data)   # 训练:数据 → 模型
prediction = model.predict(new_data)     # 预测:模型 → 结果

以预测客服工单处理时长为例:把历史工单的"类型、字数、紧急程度 → 实际处理时长"喂给算法,算法拟合出一条规律(比如 时长 = a×字数 + b×紧急度 + c),其中 a、b、c 就是参数 ,这条规律就是模型。参数通常是未知的,训练的过程就是求解参数的过程。


二、机器学习用在哪?又是怎么发展到今天的

1 应用领域

机器学习早已渗透进日常产品里,随手可举:

领域 典型应用
用户分析 社交网络画像、影评/商品评论情感分析
搜索引擎 网页、图片、视频、新闻检索排序
信息推荐 新闻、商品、短视频、书籍推荐
图像识别 人脸识别、商品图审核、自动驾驶感知
自然语言处理 机器翻译、摘要生成、智能客服
其他 生物信息分析、多模态内容、AR/VR

做大模型应用开发的人其实天天在"消费"机器学习的成果:RAG 里的检索排序是模型,推荐系统推给你什么文档也是模型。

2 发展史:三次浪潮

AI 的发展不是一条直线,而是三次浪潮叠加:

时间段 主导流派 标志性事件
1950~1970 符号主义(专家系统) 1956 年达特茅斯会议提出"人工智能"术语(AI 元年);1962 年 IBM 跳棋程序战胜人类高手(第一次浪潮)
1980~2000 统计主义(统计模型) 1993 年 Vapnik 提出 SVM;1997 年 IBM 深蓝战胜卡斯帕罗夫(第二次浪潮)
2010~2017 深度学习 2012 年 AlexNet 成为深度学习开山之作;2016 年 AlphaGo 战胜李世石(第三次浪潮)
2017~至今 大规模预训练模型 2017 年 Transformer 出现;2018 年 BERT/GPT 问世;2022 年 ChatGPT 开启 AIGC 时代

注意最后一行------我们做大模型应用开发,正站在"大规模预训练模型"这一段的肩膀上。而 Transformer、BERT 这些内容,正是本阶段后面要拆的主角。

3 数据、算法、算力三要素

机器学习能在这几年爆发,不是单一原因,而是三要素同时到位:

  • 数据:互联网积累了海量标注与未标注数据;
  • 算法:深度网络结构、优化方法不断突破;
  • 算力 :硬件路线分工明确------
    • CPU:擅长调度与复杂逻辑,适合 I/O 密集型任务;
    • GPU:擅长大规模矩阵并行运算,适合计算密集型的模型训练;
    • TPU:专为神经网络张量运算设计的处理器。

这也解释了为什么训练大模型要"抢 GPU"------模型训练的本质就是海量矩阵乘法。


三、绕不开的术语:样本、特征、标签与数据集划分

1 样本、特征、标签分别指什么

用一张"智能客服工单"数据表来理解三个术语:

工单编号 渠道来源 问题类型 用户等级 首次响应时长 是否升级人工
1001 App 退款 VIP 3 分钟
1002 网页 物流 普通 12 分钟
  • 样本(sample):一行数据就是一个样本,多个样本组成数据集,也叫一条"记录";
  • 特征(feature):一列数据就是一个特征(也叫属性),如"渠道来源""问题类型";
  • 标签/目标值(label/target):模型要预测的那一列,这里可以是"是否升级人工"。

特征的本质定义值得记住:特征是从数据中抽取出来的、对预测结果有用的信息。预测工单是否升级时,"问题类型"是有用特征,而"工单编号"这种纯标识列对预测毫无帮助,就不该进模型。

2 为什么要划分训练集和测试集

数据集通常按 8:2 或 7:3 划分成两部分:

  • 训练集(training set):用来训练模型,模型从中学习规律;
  • 测试集(testing set):用来检验模型,评估它对没见过的数据的表现。

为什么必须分开?如果拿训练数据自己考自己,模型哪怕把训练集背得滚瓜烂熟,也可能只是"死记硬背",换个新数据就露馅。测试集模拟的正是"上线后遇到的新数据"。

python 复制代码
from sklearn.model_selection import train_test_split

# features: 特征矩阵(每行一个样本),labels: 目标值
# test_size=0.2 表示 20% 做测试集,random_state 固定随机种子保证可复现
X_train, X_test, y_train, y_test = train_test_split(
    features, labels, test_size=0.2, random_state=42
)

四、算法分类:监督、无监督、半监督、强化学习

1 有监督学习:分类与回归

有监督学习 :训练数据由"特征 + 目标值"组成,即数据带标签,需要人工标注。根据目标值的类型又分两种:

分类(classification):目标值不连续,是离散的类别。

  • 二分类:这封用户反馈是"投诉"还是"咨询";
  • 多分类:工单属于"退款/物流/账号/其他"哪一类。

回归(regression):目标值连续,是一个数值。

  • 预测这张工单的处理时长(分钟);
  • 预测某个 API 的响应延迟(毫秒)。
python 复制代码
# 数学表示:有监督学习
# 训练集 D = {(x1, y1), (x2, y2), ..., (xn, yn)}
# x 是特征向量,y 是标签;目标是学出映射 f,使 f(x) ≈ y

2 无监督学习:没有标签怎么学

无监督学习 :输入数据没有标签,算法根据样本之间的相似性做聚类,发现数据内部的结构和关系。

典型场景:把海量用户反馈自动聚成若干簇,运营再看每一簇在抱怨什么------不需要事先定义类别。

python 复制代码
# 数学表示:无监督学习
# 训练集 D = {x1, x2, ..., xn},没有 y
# 目标是发现数据自身的结构(聚类、降维、密度估计等)

和监督学习的本质区别就一条:有没有人告诉模型"正确答案"

3 半监督学习:少量标注撬动大量数据

标注数据很贵,未标注数据很便宜------半监督学习就是为这个矛盾设计的:

  1. 让专家标注少量数据,训练出一个初始模型;
  2. 用该模型去预测大量未标注数据;
  3. 将预测结果与专家意见对比校验,迭代改善模型。

效果:大幅降低标注成本。大模型时代常见的"用大模型给数据打伪标签再训练小模型",思路上与半监督学习一脉相承。

4 强化学习:靠奖励试错出策略

强化学习(Reinforcement Learning)不依赖标注数据,而是让智能体在试错中学策略。四个核心要素:

  • Agent(智能体):做决策的主体;
  • 环境(Environment):智能体所处的世界状态;
  • 行动(Action):智能体可执行的动作;
  • 奖励(Reward):环境对行动的反馈。

Agent 的目标是让累计奖励最大。经典里程碑是 AlphaGo,如今也广泛用于游戏 AI、机器人控制、无人驾驶。

一个直观类比:小孩学走路------小孩是 agent,地面是环境,迈步是行动,走稳了几步得到奖励(正反馈),摔倒了没有奖励,反复试错后学会走路。后面讲大模型对齐时会遇到的 RLHF(基于人类反馈的强化学习),正是这个思想的延伸。


五、机器学习建模流程的五个步骤

无论做什么任务,建模流程都可以抽象成同一条流水线:

复制代码
获取数据 → 数据基本处理 → 特征工程 → 模型训练 → 模型评估 → (上线预测)
步骤 做什么 说明
1 获取数据 收集图像、文本、表格等与任务相关的数据 数据质量决定上限
2 数据基本处理 缺失值处理、异常值处理 清洗"脏数据"
3 特征工程 特征提取、预处理、降维等 耗时耗力最多的环节
4 模型训练 选算法(线性回归、逻辑回归、决策树、GBDT...)训练模型 按任务类型选算法
5 模型评估 用回归/分类/聚类评测指标检验效果 效果好则上线,不好则回到前面迭代

两点经验:

  1. 特征工程和数据处理通常占整个项目最多的时间和精力,真正"调模型"反而是小头;
  2. 评估不通过不是失败,而是回到数据或特征环节迭代的信号------建模是个循环,不是单行道。

六、特征工程:为什么说它决定模型上限

1 特征工程是什么

先明确"特征"的两个视角:

  • 从数据集角度:一列一列的数据就是特征;
  • 从模型训练角度:对预测结果有用的属性才是特征。

特征工程(Feature Engineering)的定义:利用专业背景知识和技巧处理数据,让机器学习算法效果达到最好的过程

业界有句流传很广的话:

"Coming up with features is difficult, time-consuming, requires expert knowledge. Applied machine learning is basically feature engineering."

(构造特征困难、耗时、需要专业知识;应用机器学习基本上就是特征工程。)

由此引出一个重要结论:数据和特征决定了机器学习的上限,模型和算法只是逼近这个上限。

2 特征提取

从原始数据中提取与任务相关的特征,构成特征向量。关键在于:文本、图片这类非行列形式的原始数据,要先转换成行列结构------一旦转成表格形态,每一列就是特征。

比如把一段用户反馈文本提取成特征:

python 复制代码
# 从原始文本中提取对"是否投诉"预测有用的特征
raw_text = "快递三天没到,客服也联系不上,太失望了"

features = {
    "text_length": len(raw_text),          # 文本长度
    "has_neg_word": "失望" in raw_text,     # 是否含负面情绪词
    "mentions_logistics": "快递" in raw_text  # 是否涉及物流主题
}

3 特征预处理

不同特征的量纲(单位、取值范围)差异巨大:比如"处理时长"以分钟计(0~几百),"用户等级"只是 1~5 的整数。量纲差异会让某些特征对模型影响过大、某些几乎被忽略。

特征预处理就是把不同单位的特征转换到同一范围内(标准化、归一化),使各特征对模型的影响趋于一致。

4 特征降维

把原始数据的维度降低。降维会丢失部分信息,因此要保证主要信息被保留;降维后的数据会发生变化(不再对应原始含义),但保留了最主要的结构。典型代表是 PCA(主成分分析)。

5 特征选择

特征很多,但与任务真正相关的往往只是其中一个子集。特征选择就是按某些指标挑出重要特征 ------注意它与降维的关键区别:特征选择不改变原始数据,只是"挑";降维则会"变"。

6 特征组合

把多个特征合并成一个新特征,通常通过加法、乘法完成。比如把"问题类型"和"用户等级"交叉组合,可能比单独使用任何一个都更能预测"是否升级人工"。

用一张表收尾:

手段 做什么 是否改变原始数据
特征提取 从无到有构造特征向量 ---
特征预处理 统一量纲(标准化/归一化) 数值缩放
特征降维 压缩维度、保留主信息
特征选择 挑选重要特征子集
特征组合 多特征合并为一个 生成新特征

七、模型拟合问题:欠拟合、过拟合与泛化

1 三种拟合状态

**拟合(fitting)**用来描述模型对样本点的贴合程度,共三种状态:

状态 训练集表现 测试集表现
欠拟合(under-fitting) 很差 也很差
正好拟合 也好
过拟合(over-fitting) 很好 很差

一个经典比喻:教机器认天鹅。

  • 欠拟合:机器学到的天鹅特征太少(比如只知道"会飞"),区分标准太粗糙,识别不准;
  • 过拟合:训练图片全是白天鹅,机器把"白色"也当成天鹅的必要特征,结果见到黑天鹅就不认识了。

2 产生原因与处理策略

欠拟合的原因 :模型过于简单。处理思路是增加模型复杂度------增加特征、换更强的模型。

过拟合的原因:模型过于复杂、数据不纯(噪声多)、训练数据太少。处理策略:

  • 正则化:给模型加约束,惩罚过大的参数;
  • 数据增强/扩充:增加训练数据量、清洗脏数据;
  • 特征降维/特征选择:减少模型可"死记"的细节;
  • 早停(early stopping):训练过程中监控测试集表现,开始变差就停止;
  • 交叉验证:更可靠地评估泛化能力。

最后两个概念:

  • 泛化(Generalization):模型在新数据集(非训练数据)上的表现能力------我们训练模型,最终要的就是泛化,而不是训练集上的高分;
  • 奥卡姆剃刀原则 :给定两个泛化误差相同的模型,较简单的模型更可取

八、开发环境:scikit-learn 快速上手

Python 生态里做传统机器学习的首选是 scikit-learn

  1. 简单高效的数据挖掘与分析工具;
  2. API 风格统一(fit/predict/transform),可在各种环境中复用;
  3. 建立在 NumPy、SciPy、matplotlib 之上;
  4. 开源、BSD 许可证,可商业使用。

安装与验证:

bash 复制代码
pip install scikit-learn
python 复制代码
import sklearn

# 打印版本号,确认安装成功(本文写作时最新稳定版为 1.x)
print(sklearn.__version__)

scikit-learn 覆盖了本篇提到的几乎所有环节:train_test_split 做数据集划分,StandardScaler 做特征预处理,PCA 做降维,各种回归/分类/聚类算法一应俱全。后面的线性回归实战就会直接用它。


常见问题

Q1:AI、ML、DL 三个词能混着用吗?

不能。AI 是目标(让机器表现出智能),ML 是实现 AI 的一条途径(从数据中学习),DL 是 ML 的一个分支(深度神经网络)。说"我在做深度学习"一定是在做机器学习,但说"我在做机器学习"未必用了深度学习------传统算法如 SVM、决策树同样属于 ML。

Q2:分类和回归到底怎么一眼区分?

看目标值:离散类别是分类,连续数值是回归。"这封反馈是不是投诉"是二分类,"处理时长是多少分钟"是回归。容易混淆的是"预测用户等级"------等级虽然用数字表示,但本质是离散类别,仍属于分类问题。

Q3:特征降维和特征选择都是"减少特征",有什么区别?

特征选择是 :从原有特征里选出重要的子集,数据本身不变,选出来的每一维都有明确业务含义;特征降维是:把原始数据投影到新的低维空间,新维度往往没有直观含义,但保留了主要信息。实践中通常先做特征选择去掉明显无用的列,再考虑是否需要降维。

Q4:训练集准确率 99%,上线就翻车,问题出在哪?

十有八九是过拟合:模型把训练数据背下来了,泛化能力差。先检查数据量是否太少、特征是否过多过杂,再考虑正则化、交叉验证和早停。记住本篇的判断标准------训练集很好、测试集很差,就是过拟合


和 AI 大模型开发的关系

机器学习概述里的概念,在大模型应用开发中几乎处处复用。

场景一:RAG 检索质量评估------本质是分类问题

判断"检索回来的文档片段与用户问题是否相关",就是一个二分类任务,样本、特征、标签一一对应:

python 复制代码
# RAG 相关性标注数据(有监督学习的样本)
samples = [
    # 特征 x:问题与片段的组合;标签 y:1 相关 / 0 不相关
    {"question": "如何申请退款", "chunk": "退款入口在订单详情页...", "label": 1},
    {"question": "如何申请退款", "chunk": "物流时效说明...", "label": 0},
]
# 训练出的分类器可作为 RAG 的 rerank/过滤模型

场景二:智能客服意图识别------特征工程决定上限

把用户消息映射到"退款/物流/咨询/投诉"意图,是典型的多分类;而"提取哪些特征"直接决定效果:

python 复制代码
def extract_intent_features(text: str) -> dict:
    # 特征提取:从原始文本构造对意图分类有用的特征
    return {
        "length": len(text),                          # 文本长度
        "has_order_id": "订单号" in text,              # 是否提及订单
        "negative_score": sum(w in text for w in ["失望", "投诉", "差评"]),  # 负面情绪强度
    }

场景三:大模型微调数据的半监督思路

高质量人工标注贵,常见做法是先用大模型给海量数据打"伪标签",人工只校验少量样本------这正是半监督学习"少量标注 + 模型扩展"的思想在 LLM 时代的翻版。

场景四:RLHF 对齐------强化学习的直接应用

ChatGPT 类产品用 RLHF 让回答更符合人类偏好:模型是 agent,生成回答是行动,人类偏好打分是奖励。理解了本篇强化学习的四要素(agent、环境、行动、奖励),后面讲对齐技术时就不会陌生。

总结

这篇把机器学习的"地图"完整铺开了一遍:

  • 概念层:AI 是目标,ML 是途径,DL 是方法,三者层层包含;机器学习的本质是"从数据中学习"而非手写规则;
  • 术语层:一行是样本、一列是特征、要预测的那列是标签;训练集学规律、测试集验泛化;
  • 分类层:有监督(分类/回归)、无监督(聚类)、半监督、强化学习,区别在于"数据有没有标签、反馈以什么形式给";
  • 流程层:获取数据 → 数据处理 → 特征工程 → 模型训练 → 模型评估,其中特征工程耗时最多、决定上限;
  • 风险层:欠拟合源于模型太简单,过拟合源于模型太复杂/数据太少太脏,一切优化都服务于泛化能力。

下一篇进入第一个具体算法------线性回归,看"从数据中拟合出 y = ax + b"这件事在数学和代码上到底怎么落地。


#机器学习 #人工智能 #深度学习 #特征工程 #scikit-learn

相关推荐
花花鱼1 小时前
TinyML Agent:MCU 上的微型智能体,AI 智能体下沉的底层实现
人工智能·单片机·嵌入式硬件
tech讯息1 小时前
商业化内容生产适用企业级视频生成模型云平台推荐|从模型生成至审核分发全链路 AWS 选型方案
人工智能·音视频·aws
独码侠1 小时前
FunASR 语音识别本地部署实录(下):34 分钟录音实测,踩过的坑、上线前要补的事
人工智能·语音识别
没落之王1 小时前
易学使者郑氏正脉郑冰推演马航事件
大数据·人工智能·算法·机器学习·可用性测试
wy_hhxx1 小时前
AI Agent & Harness Engineering 笔记
人工智能·笔记
yuhulkjv3351 小时前
Grok鸿蒙版导出word格式的终极解法:AI导出鸭如何重构AI内容到文档的最后一公里
人工智能·ai·word·harmonyos·ai导出鸭
ONEYAC唯样1 小时前
2026年中国电子元器件进出口全景分析:AI时代下的供应链重构与产业机会
人工智能
aneasystone本尊1 小时前
学习 Headroom 的输出 token 优化
人工智能
武子康1 小时前
给 Pi 增加能力时,应该写 Prompt、Skill、Tool 还是 Extension?
人工智能·llm·agent