AI
人工智能(Artificial Intelligence, AI)是一个宏大的概念,它指的是让机器像人类一样思考、学习和行动的科学。不过,在实际应用中,AI 主要分为两个截然不同的概念:
- ANI(弱人工智能),专门针对某个特定任务设计的 AI。它只能做一件事,而且做得非常好
- AGI(强人工智能),它拥有跨领域的学习、理解、推理和解决问题的能力,可以用来做任何事情,甚至可能超过人类
AI 如何工作?从传统编程到机器学习
为了理解 AI 的核心,可以将其与传统的编程方式进行对比,假设想编写一个程序来识别照片中的人脸:
- 传统编程:需要编写非常详细、硬编码的规则。比如,“如果看到一个圆形的物体,上方有两只眼睛,下方有一个嘴巴,就把它标记为人脸。”必须穷尽所有可能性,考虑到不同的角度、光线、面部表情等。这个过程极其复杂,且几乎不可能完美实现
- 机器学习: 这种方法完全不同,不需要编写规则,而是向程序提供大量的例子。给它数百万张照片,并告诉它:“这张是人脸,这张不是。”然后,机器学习算法会自己从这些带标签的数据中摸索出一套规则,来判断输入是人脸还是非人脸。这套由机器自己“学”出来的规则,通常比人工编写的规则要好得多,也更具通用性。
机器学习的两个核心阶段
这个过程包含两个重要阶段:
- 训练阶段(Training phase):这是 AI 的“学习”时期,就像教孩子认字一样,你将大量的带标签数据(比如“这张图是猫”)喂给一个模型。在这一阶段,模型会反复调整内部参数,不断学习数据与答案之间的映射关系。它会尝试不同的规则,然后根据每次的错误程度进行微调,直到输出的结果越来越接近我们期望的答案。这个过程计算量很大,可能持续几毫秒到几天
- 推理阶段 (Inference Phase):这是 AI 的“应用”时期,一旦模型训练完成,它就能对全新的、未见过的数据快速做出预测。这个阶段计算量较小,因为模型无需再学习,只需将学到的规则应用到新的输入上
这种通过带标签的样例来逐步减小模型输出误差的学习方法,被称为监督式学习(Supervised Learning),绝大多数深度学习算法都属于这个范畴
深度学习、神经网络与数据
深度学习和神经网络
深度学习(Deep Learning)和神经网络(Neural Networks)这两个词经常可以互换使用,它们是目前推动 AI 飞速发展的主要技术
可以把神经网络想象成一个庞大而复杂的计算网络,由许多“神经元”连接而成。每个神经元负责进行一个简单的计算,并将结果传递给下一个神经元。这些神经元被组织成多层,从输入层、多个隐藏层,再到输出层。这就是为什么它被称为“深度”学习——因为它的层数很多
它的“魔力”在于:只需要给它大量的输入和对应的输出,它就会自己搞清楚中间的计算过程。例如,在人脸识别任务中,输入一张照片的像素值,并告诉它这是“人脸”。不需要关心隐藏层是如何工作的,神经网络会自己学习从像素到“人脸”的复杂映射关系
数据:AI 的“燃料”
对于一个机器学习模型来说,数据是至关重要的。数据就像是 AI 的食物,没有足够的数据,再强大的模型也无法发挥作用
数据集(Dataset)通常由一组输入和对应的输出组成。例如,如果想训练一个 AI 来预测房价,数据集可能包含房子的“大小”、“卧室数量”(输入)和对应的“价格”(输出)。数据的质量和数量直接决定了 AI 模型的表现:
- 数据多多益善:通常,数据量越大,模型的泛化能力越强,预测也越准确
- 数据质量决定上限:如果数据本身存在错误或不准确,AI 也会学到错误的规律,导致输出结果不可靠。因此,数据清理和预处理是 AI 项目中非常重要的一步
比如有个想要给某个房子定价,可能会收集以下数据:
大小(平米) | 卧室数量 | 价格(1000 人民币) |
---|---|---|
90 | 2 | 612 |
110 | 3 | 752 |
129 | 3 | 876 |
200 | 4 | 153 |
现在,互联网上有很多开放的数据集可供下载和使用
优化 AI 的核心机制
训练一个 AI 模型,就像让它在一个复杂的山谷里找到最低点。这个最低点就是模型的最佳状态,也就是误差最小的时候。这个过程离不开以下几个关键概念:
- 损失函数(Loss Function)
- 梯度下降(Gradient Descent)
- 优化器(Optimizer)
损失函数
损失函数是衡量模型“犯了多少错误”的工具,它计算模型的预测值和真实值之间的差异。想象在玩一个扔飞镖的游戏,目标是红心。损失函数就像是一个计分板,它会量化每一支飞镖离红心的距离。距离越远,分数(损失值)越高。我们的目标就是通过调整模型的参数,让这个“损失值”变得尽可能小
不同的任务使用不同的损失函数:
- 回归任务:均方误差(MSE),预测连续值,如房价。
- 分类任务:交叉熵(Cross-Entropy Loss),用于多分类问题,如垃圾邮件
梯度下降
梯度下降是一种优化算法,它的作用就是帮助模型找到损失函数的“最低点”。想象在一个浓雾弥漫的山坡上,想要走到山谷的最低处。看不到整个山谷的全貌,但每一步都可以感受到地面的坡度。梯度下降的核心思想就是:沿着坡度最陡峭的方向下坡。每走一小步,就调整一次方向,直到最终到达谷底。它会不断调整模型的参数(比如神经网络中神经元之间的权重),每次调整都保证损失值会下降,从而逐步接近最优解
为了提高效率,梯度下降有几种变体:
- 批量梯度下降(Batch Gradient Descent):每走一步都看清整个山坡(使用所有训练数据),准确但速度慢
- 随机梯度下降(Stochastic Gradient Descent, SGD):每走一步只看脚下的一小块地方(使用一个样本)。速度快但方向不稳定
- 小批量梯度下降(Mini-batch Gradient Descent):综合了前两者的优点,每次看一部分地方(使用一小批次数据),这是实际应用中最常见的方法。
优化器
优化器是实现梯度下降的具体策略,它决定了模型如何根据梯度(坡度)来更新参数。如果说梯度下降告诉你“往下坡走”,那么优化器则告诉你“怎么下坡”。是小步慢跑,还是大步流星?是遇到平坦地带加速,还是遇到陡峭地带放慢脚步?优化器提供了更智能的更新策略,旨在让训练更快、更稳定,并避免陷入局部最优解。
常见的优化器有:
- Adam:一种非常流行的自适应学习率优化器,它能为每个参数动态调整“步长”
- RMSprop:另一种常用的自适应优化器,在处理非平稳目标时表现良好
走火入魔:过拟合与欠拟合
在训练 AI 模型时,有两个常见的陷阱需要避免:
- 欠拟合(Underfitting):模型过于简单,甚至无法从训练数据中学习到基本的规律。模型在训练集和测试集上的表现都很差
- 过拟合(Overfitting):模型“死记硬背”了训练集中的每一个样本,包括其中的噪声和异常值,但没有学到数据背后的普遍规律,模型在训练集上表现完美,但在新的、未见过的数据(测试集)上表现急剧下降,就像一个学生,只会背书本上的例题,遇到稍微改动过的题目就完全不会做
机器学习模型的最终目标是泛化,即能够对新的未知数据做出准确的预测或判断。过拟合的模型失去了泛化能力,它仅仅是“记住”了训练数据,而不是“理解”了数据背后的模式。因此,一个过拟合的模型在实际应用中是不可靠的,会做出错误的预测。有多种技术可以减轻或防止过拟合:
- 增加训练数据量 (More Data): 这是最直接有效的方法。更多的数据可以帮助模型学到更真实的模式,而不是噪声。
- 简化模型 (Simplify Model): 使用更简单的模型结构,减少参数数量。例如,减少神经网络的层数或每层的神经元数量。
- 正则化 (Regularization): 在损失函数中添加一个惩罚项,以限制模型的复杂度。常见的正则化方法包括 L1 正则化(Lasso)和 L2 正则化(Ridge)。
- 提前停止 (Early Stopping): 在训练过程中监控验证集的性能,当验证集性能不再提升时,提前停止训练。
- 数据增强 (Data Augmentation): 通过对训练数据进行随机变换(如旋转、缩放、翻转等)来增加训练样本的多样性,从而提高模型的泛化能力。
- Dropout: 在训练过程中随机丢弃一部分神经元,以减少模型对特定神经元的依赖,从而提高泛化能力。
- 交叉验证 (Cross-Validation): 例如 k 折交叉验证,将训练数据分成 k 份,轮流将一份作为验证集,其余 k-1 份作为训练集进行训练和评估。这能更可靠地评估模型的泛化能力,并帮助选择合适的超参数。
- 特征选择/降维 (Feature Selection/Dimensionality Reduction): 移除与任务无关或冗余的特征,降低数据维度,减少模型需要学习的复杂性。
其他重要的机器学习技术
除了以深度学习为核心的神经网络,还有许多其他优秀的机器学习算法,它们在处理非感知数据(如表格数据)时表现出色:
- 朴素贝叶斯分类器(naive Bayes classifier):一种基于概率的分类算法,简单高效
- 逻辑回归 (Logistic Regression):一种广泛使用的线性分类算法,简单且灵活
- 决策树 (Decision Tree):结构类似流程图,非常直观且易于理解。它通过一系列“是/否”问题来对数据进行分类或预测
机器学习流程与基础设施
一个完整的机器学习项目通常遵循以下流程:收集数据 -> 清理数据 -> 训练模型 -> 评估模型 -> 部署模型
为了简化复杂的开发过程,许多团队开发了强大的机器学习框架,其中最主流的是:
- PyTorch:由 Meta (Facebook) 开发,以其灵活性和易用性受到研究人员的青睐
- TensorFlow:由 Google 开发,功能强大且生态系统成熟
GPU (Graphics Processing Unit) 原本是为处理电脑图形而设计的。但由于其大规模并行计算的特性,它被证明非常适合处理大型神经网络所需的复杂数学运算,因此成为了训练 AI 模型的首选硬件