Skip to content

机器学习的通用工作流程

人工智能(Artificial Intelligence, AI)是一个快速发展的领域,机器学习(Machine Learning, ML)和深度学习(Deep Learning, DL)是其关键组成部分。深度学习是机器学习的一个专门子集,而机器学习又是人工智能的一个子集。这可以被视为一系列同心圆,AI 是最外层,ML 在其内部,DL 处于核心。

机器学习使计算机能够从数据中学习,并在特定任务上提高性能,而无需为每个情况进行显式编程。它涉及能够识别模式、进行预测并适应新数据的算法。关键范例包括:

  • 监督学习(Supervised Learning):从标记数据中学习,算法被提供输入-输出对。
  • 无监督学习(Unsupervised Learning):从未标记数据中学习,算法必须找到隐藏的模式或内在结构。

深度学习是机器学习的一个子领域,它使用具有多个层(因此称为“深度”)的人工神经网络(Artificial Neural Networks, ANNs)。这些网络的灵感来自人脑的结构和功能。深度学习在从大型数据集中学习复杂模式方面表现出色,特别是在图像识别、自然语言处理和语音合成等领域。

深度学习模型,尤其是在监督学习下训练时,学习数据的分层表示。网络中的每一层都将其输入转换为略微更抽象和更复合的表示。整个过程通常涉及以下关键阶段:

一个典型的深度学习项目工作流程包括以下步骤:

  • 定义问题并收集数据:清晰地阐述目标,并收集相关、高质量的数据集。这包括理解数据来源、格式以及初步的预处理需求。
  • 准备和预处理数据:清理数据,处理缺失值,执行特征缩放或归一化,并将其分割为训练集(training set)、验证集(validation set)和测试集(test set)。对于图像或文本,这可能涉及调整大小、数据增强(augmentation)或标记化(tokenization)等转换。
  • 选择模型架构:选择一个合适的神经网络架构(例如,用于图像的 CNN,用于序列的 RNN/Transformer,用于表格数据的简单 MLP)或设计一个自定义架构。
  • 选择损失函数和优化器:定义如何衡量模型的性能(损失函数,例如 CrossEntropyLoss, MSELoss),以及如何更新其参数(优化器,例如 Adam, SGD)。
  • 训练模型:将训练数据输入模型,计算损失,并使用优化器通过反向传播(backpropagation)调整模型的权重。监控验证集上的性能以防止过拟合(overfitting),并调整超参数(hyperparameters)。
  • 评估模型:使用适当的指标(例如准确率(accuracy)、精确率(precision)、召回率(recall)、F1 分数、均方误差(Mean Squared Error))评估训练好的模型在未见过测试集上的性能。
  • 调整超参数(迭代):如果性能不令人满意,重新审视之前的步骤,调整超参数(例如学习率(learning rate)、层数、批大小(batch size)),甚至重新考虑模型架构或数据预处理技术。
  • 部署和监控:一旦满意,将模型部署到预期的应用中。持续监控其在实际世界中的表现,并根据需要使用新数据进行再训练。

PyTorch 是一个强大的开源库,它提供灵活的工具,有助于完成整个工作流程,包括数据加载、模型定义、训练和部署。