第 2 课
← 返回系列列表

机器学习与深度学习入门

AI For Everyone — 给所有人的 AI 课

监督学习、无监督学习、神经网络的可视化理解。

机器学习与深度学习入门

课程简介

监督学习、无监督学习、神经网络的可视化理解。

🎬 本课程视频:AI For Everyone — 给所有人的 AI 课


机器学习与深度学习入门:从原理到直观理解

一、机器学习不是什么?

在深入之前,我们先澄清一个误解:机器学习不是"教"计算机做事情,而是让计算机自己从例子中"学"会做事情。

传统编程是:程序员编写规则(IF 温度 > 30 THEN 开启空调),输入数据,得到输出。机器学习是:程序员提供大量例子(输入数据 + 期望输出),计算机自己发现规则。所以准确地说,机器学习是"从样例中自动发现模式"的技术。

二、监督学习(Supervised Learning)

监督学习是目前最成功、应用最广的机器学习范式。它的核心公式:给定一组输入-输出对(标注数据),学习一个从输入到输出的映射函数。

训练过程分为三步:
1. 准备训练集:收集大量输入数据及其对应的正确输出。例如:10000 张标注了"猫"或"狗"的图片。
2. 选择模型并训练:用训练数据"教"模型。模型内部有数百万个参数,训练过程就是不断调整这些参数,使得模型的预测输出越来越接近真实输出。
3. 评估与使用:用未见过的测试数据评估模型效果,满意后部署到生产环境。

监督学习的两大子任务:

分类(Classification)——预测类别。二分类:垃圾邮件检测(是/否)。多分类:手写数字识别(0-9)、水果种类识别(苹果/香蕉/橘子)。代表算法:逻辑回归、决策树、随机森林、支持向量机、神经网络。

回归(Regression)——预测连续数值。房价预测、股票价格预测、气温预测。代表算法:线性回归、岭回归、神经网络。

三、无监督学习(Unsupervised Learning)

无监督学习的训练数据没有标签——只有输入 X,没有输出 Y。模型需要自己从数据中发现结构。

聚类(Clustering):将相似的数据点自动分组。应用场景:客户分群(将用户按购买行为分组)、新闻自动分类、图像分割。代表算法:K-Means、DBSCAN、层次聚类。

降维(Dimensionality Reduction):将高维数据映射到低维空间。应用场景:数据可视化(将 100 维数据降到 2 维或 3 维以便可视化)、特征压缩、噪声过滤。代表算法:PCA、t-SNE、UMAP。

异常检测(Anomaly Detection):找出与大多数数据不同的点。应用场景:信用卡欺诈检测、工业设备故障预警、网络安全入侵检测。

四、神经网络的直观理解

神经网络的名字来源于它受生物神经系统启发,但不要把它当成"人造大脑"。更准确地说,它是一个非常灵活、表达能力极强的数学函数。

单个神经元

一个神经元的核心运算:接收多个输入信号,每个信号有权重,对输入加权求和后加上偏置项,再通过一个非线性激活函数输出。

激活函数的作用是引入非线性。如果没有激活函数,无论堆叠多少层神经网络,本质上都是线性变换的叠加——表达能力有限。常见的激活函数包括 ReLU(f(x) = max(0, x))、Sigmoid(输出 0 到 1 之间,适合二分类输出层)和 Tanh(输出 -1 到 1 之间)。

神经网络的三个核心要素

深度(层数):从几层到数百层。理论上层数越多表达能力越强,但训练难度也越大。
宽度(每层神经元数):从几十到数千。决定每一层能学习到的特征丰富程度。
连接方式:全连接、卷积、循环、注意力等。不同的连接方式适合不同类型的数据。

直观理解层次化特征学习

神经网络最强大的特性是层次化特征学习。以图像识别为例:
第一层:检测边缘和颜色块——最基础的视觉元素。
第二层:组合边缘检测出形状——圆形、方形、特定纹理。
第三层:组合形状检测出物体部件——眼睛、鼻子、轮子、窗户。
第四层:组合部件检测出完整物体——人脸、汽车、房屋。
越深的网络层,学习到的概念越抽象。

五、训练过程的关键概念

梯度下降:训练神经网络的核心算法。想象你在山顶想走到山谷——你环顾四周找到最陡的下坡方向,迈一步,再环顾四周找到新的最陡方向,再迈一步。梯度下降做的就是这个事情:计算损失函数关于每个参数的"坡度"(梯度),然后朝坡底方向迈一小步(更新参数)。学习率决定这一步迈多大——太大可能跳过最优解,太小收敛太慢。

过拟合:模型在训练数据上表现极好,但在新数据上表现很差——它"背"下了训练数据而非学到了通用规律。好比学生只背了考题答案却没有理解知识点,换了一套题就考砸了。

防止过拟合的常用方法:正则化(在损失函数中增加对复杂模型的惩罚项)、Dropout(训练时随机丢弃部分神经元)、早停法(在验证集上性能不再提升时停止训练)、增加训练数据。

六、总结

机器学习的核心是从数据中自动发现模式。监督学习(有标签数据)、无监督学习(无标签数据)和神经网络(层次化特征学习)构成了现代 AI 的三大支柱。理解这些基础概念是进入 AI 世界的第一步。

七、经典机器学习算法详解

7.1 线性回归

线性回归是最基础的回归算法。它假设输出是输入的线性组合加上误差项:y = w₁x₁ + w₂x₂ + ... + wₙxₙ + b。训练目标是最小化预测值和真实值之间的均方误差(MSE)。

训练通过最小二乘法或梯度下降求解。线性回归虽然简单,但理解它是理解更复杂模型(逻辑回归、神经网络的基础层)的起点。

7.2 逻辑回归

名字叫"回归",实际用于分类。核心思想是把线性回归的输出通过 Sigmoid 函数映射到 0 到 1 之间的概率值。预测概率大于 0.5 判为正类,小于 0.5 判为负类。

逻辑回归的优势:输出可以解释为概率(并非所有分类器都能输出概率)、训练速度快、正则化版本可以有效防止过拟合。

7.3 决策树与随机森林

决策树通过一系列 if-else 规则对数据进行分类或回归。每个节点判断一个特征,每个分支对应判断结果,叶子节点给出预测。决策树的优势是可解释性强——你可以把整棵树画出来理解模型做了什么决策。

随机森林由多棵决策树组成,每棵树在随机抽样的数据子集和特征子集上训练。预测时对所有树的输出做投票(分类)或平均(回归)。随机森林通过集成学习大幅降低单棵决策树的过拟合风险。

7.4 支持向量机(SVM)

SVM 的核心思想是在不同类别的数据之间找到一个"最大间隔"的分隔面。SVM 在数据量不大、特征维度高的场景下表现出色,但训练数据量很大时计算开销较大。

7.5 K 近邻(KNN)

最简单的机器学习算法之一:预测新样本时,找它的 K 个最近邻居,用邻居的标签投票决定新样本的类别。KNN 不需要训练过程,但预测时需要计算新样本与所有训练样本的距离——当训练集很大时预测速度很慢。

八、训练神经网络的实际问题

在实际训练神经网络时,你会遇到一系列需要解决的问题:

  1. 梯度消失/爆炸:层数很深时,梯度在反向传播过程中可能指数级衰减或增长。解决方法包括使用 ReLU 激活函数、Batch Normalization、残差连接(ResNet)

  2. 学习率调优:学习率太小收敛太慢,太大可能不收敛。实用做法是使用学习率调度器(Learning Rate Scheduler)——训练初期大学习率快速下降,后期小学习率精细调优

  3. 过拟合:模型在训练集上表现好但在验证集上表现差。解决方法包括增加数据量、正则化、Dropout、早停

  4. 数据不平衡:正负样本比例悬殊(如欺诈检测中正样本仅占 1%)。解决方法包括重采样(过采样少数类或欠采样多数类)、加权损失函数、使用 AUC 而非准确率评估

  5. 超参调优:网格搜索(Grid Search)遍历所有参数组合、随机搜索(Random Search)随机采样、贝叶斯优化利用过往结果指导搜索方向。对于深度学习,学习率可能是最重要的单一超参数

九、评估指标详解

不同任务使用不同的评估指标:
- 分类任务:准确率(Accuracy)、精确率(Precision)、召回率(Recall)、F1 分数、AUC-ROC
- 回归任务:均方误差(MSE)、平均绝对误差(MAE)、R² 分数
- 排序任务:NDCG、MAP、MRR

十、从理论到实践:学习路线图

学完了机器学习的基础概念,接下来该怎么走?这里提供一条经过验证的实践路线:

  1. 动手实现经典算法:不要只调库,亲手用 NumPy 实现线性回归、逻辑回归、KNN。这能帮你建立对算法本质的直觉理解。

  2. 用 scikit-learn 做项目:在经典数据集(Iris、Titanic、房价预测)上实践完整 ML 流程——数据处理、训练、评估、调参。

  3. 学习 PyTorch:从简单的全连接网络开始,逐步过渡到 CNN(图像)、RNN(序列)、Transformer(文本)。

  4. 参加竞赛:Kaggle 上的 beginner-friendly 竞赛是最好的实战练习——你不仅能应用所学,还能学习他人的优秀方案。

  5. 工作实战:把 ML 应用到实际业务问题中。从简单分类任务开始——垃圾邮件检测、用户流失预测——这些经典问题有成熟方案,适合作为第一个实践项目。

记住:学习 ML 没有捷径。数学基础是必要条件,动手实践是充分条件,持续跟进是必要条件。三者缺一不可。

十一、完整机器学习项目的工作流

一个完整的机器学习项目从问题定义到部署上线包含以下步骤:

第一步:问题定义——明确业务目标和技术目标。分类还是回归?评估指标是什么?精度优先还是召回率优先?什么样的错误是可接受的?与业务方对齐预期是最重要的一步。

第二步:数据获取与探索——收集所需数据,用 EDA(探索性数据分析)理解数据结构。查看缺失值分布、识别异常值、分析特征之间的相关性。可视化在这一步中发挥重要作用。

第三步:数据预处理——处理缺失值(删除或填充)、编码分类变量(One-Hot Encoding 或 Label Encoding)、特征缩放(标准化或归一化)、处理不平衡数据。数据预处理的质量直接影响模型效果。

第四步:特征工程——创建新特征、组合现有特征、选择最重要的特征。好的特征工程有时比好的模型更能提升效果。这一步需要业务理解和创造力的结合。

第五步:模型训练与选择——从简单模型开始(线性回归、逻辑回归),建立基准效果。然后尝试更复杂的模型(决策树、随机森林、梯度提升)。使用交叉验证评估模型稳定性。

第六步:超参数调优——使用网格搜索、随机搜索或贝叶斯优化找到最佳超参数。注意:调优要在验证集上进行,而不是在测试集上——否则会造成信息泄露。

第七步:模型评估——在独立的测试集上评估最终模型。使用多个评估指标全面衡量。混淆矩阵、ROC 曲线、精度-召回率曲线——不同的可视化从不同的角度展示模型效果。

第八步:模型部署与监控——将模型部署到生产环境,配置推理服务,建立效果监控。监控不仅是监控模型是否正常工作,更重要的是监控模型效果是否随时间退化——数据漂移和概念漂移是 ML 系统特有的挑战。

十二、常见机器学习误区

初学者在学习和使用 ML 时常犯以下错误:

数据泄漏——在训练集中混入了本不应该在训练时获得的信息。例如:用未来的数据预测当前、在特征中包含目标变量的间接信息、在切分数据前做特征缩放。数据泄漏会导致模型在测试集上表现异常好但在线上表现差。

过拟合验证集——多次在同一个验证集上评估和调参后,验证集已经失去了作为「未知数据」的代表性。解决方案是使用多折交叉验证或保留一个独立的测试集只在最终评估时使用一次。

忽视数据质量——把大量时间花在模型调参上,却不愿意花时间清洗数据和理解数据分布。实际上,好的数据比好的模型更重要。Garbage In, Garbage Out。

指标选择不当——在不平衡数据集上使用准确率作为评估指标。例如:99% 的负样本和 1% 的正样本,一个永远预测「负」的模型也有 99% 的准确率。这种情况下应该使用精度、召回率或 AUC 等指标。

忽视简单基线——直接使用复杂模型而不先建立简单基线。一个线性回归或逻辑回归基线能帮你判断复杂模型是否真的有价值。如果简单模型就已经达到了可接受的性能,可能不需要复杂的深度学习方案。

延伸阅读

← 什么是人工智能 AI 的商业价值 →