Caffe2 - 入门
PyTorch 与 深度学习 - 入门
Section titled “PyTorch 与 深度学习 - 入门”在过去十年中,深度学习(Deep Learning)彻底改变了机器学习(Machine Learning)领域,在计算机视觉(Computer Vision)、语音识别(Speech Recognition)和自然语言处理(Natural Language Processing, NLP)等领域取得了突破性进展。其应用范围不断扩展到新的领域,展现出卓越的有效性。
从历史上看,Caffe(Convolutional Architecture for Fast Feature Embedding,快速特征嵌入的卷积架构)是由加州大学伯克利分校(UC Berkeley)开发的一个流行的深度学习框架。后来,Facebook 推出了 Caffe2,这是一个旨在提高性能和可伸缩性的演进版本,尤其适用于生产环境。2018 年 3 月,Caffe2 合并到了 PyTorch 中,PyTorch 是另一个领先的深度学习框架,主要由 Facebook 的 AI 研究实验室(FAIR)开发。
本教程重点介绍 PyTorch,它整合了 Caffe2 的优势(例如通过 TorchServe 实现生产部署能力和通过 PyTorch Mobile 实现移动端支持),同时提供了研究人员更喜欢的、更灵活、更符合 Python 习惯的接口。PyTorch 使用 张量(Tensors)(类似于 NumPy 数组但支持 GPU 加速)和 动态计算图(dynamic computation graphs)(允许在运行时改变图结构),使其在构建和实验复杂的模型(如卷积神经网络 CNNs、循环神经网络 RNNs、长短期记忆网络 LSTMs 和 Transformer 等)时更加直观。
PyTorch 使用 CUDA 支持 GPU 上的高性能计算,并提供了优化的内核库。虽然 Caffe2 的独立开发已经停止,但其关于高效部署和网络定义的核心思想影响了 PyTorch 的发展。许多最初使用 Caffe/Caffe2 开发或训练的流行模型在 PyTorch 生态系统中都可随时使用,特别是在 torchvision.models 库中。
在深入了解 PyTorch 的具体细节之前,我们先澄清传统机器学习和深度学习之间的区别,这对于理解在现代框架中创建和使用模型至关重要。
机器学习 vs. 深度学习
Section titled “机器学习 vs. 深度学习”在任何机器学习任务中,特征工程(feature engineering)—— 选择原始数据并将其转换为信息丰富的特征 —— 对于模型性能至关重要。在传统机器学习(例如支持向量机 Support Vector Machines、随机森林 Random Forests)中,这个过程通常需要大量人工投入、领域专业知识和实验。
典型的传统机器学习工作流程包括:输入数据 -> 手动特征提取 -> 模型训练 -> 预测。
深度学习采取了不同的方法。深度神经网络(Deep neural networks)通过分层的方式从数据中自动学习特征。初始层学习简单的特征(如图像中的边缘),而更深层次的层则将这些特征组合起来学习更复杂的模式(如物体部分或纹理)。
典型的深度学习工作流程包括:输入数据 -> 自动特征提取与模型训练(在网络内部) -> 预测。
这种自动特征工程是深度学习的一个关键优势,但它通常需要大量数据才能发挥作用。对于较小的数据集,传统机器学习技术可能仍然更受欢迎或需要仔细调整。然而,在数据充足的情况下,深度学习模型通常能取得更优越的性能,尤其是在涉及非结构化数据(如图像、文本或音频)的复杂任务上。