



资源介绍
—— 构建、训练和部署端到端的机器学习和深度学习管道
主要内容概览
全书分为 4 个部分,共 14 章,涵盖机器学习基础、算法实现、高级示例及生产部署等内容。
第一部分:机器学习概述
机器学习基础与线性代数
介绍机器学习基本概念,包括监督学习(分类、回归)和无监督学习(聚类)。
讲解线性代数核心概念(标量、向量、矩阵、张量)及基本运算(元素级操作、点积、转置等),并展示 Eigen、xtensor、Blaze 等 C++ 库的实现。
通过线性回归示例,演示如何使用不同库求解回归问题。
数据处理
介绍如何解析 CSV、JSON、HDF5 等数据格式到 C++ 数据结构,涉及 Fast-CPP-CSV-Parser、nlohmann-json、HighFive 等库。
讲解如何初始化矩阵和张量对象,以及使用 OpenCV 和 Dlib 处理图像,包括缩放、裁剪、颜色空间转换等。
阐述数据归一化技术(标准化、最小 - 最大归一化等)及在各库中的实现。
性能评估与模型选择
介绍回归(MSE、RMSE、MAE、R² 等)和分类(准确率、精确率、召回率、F1 分数、AUC-ROC 等)的性能指标。
分析偏差和方差特性,讲解过拟合和欠拟合问题及正则化(L1、L2)等解决方法。
介绍网格搜索和交叉验证技术,展示如何使用 mlpack、Optuna、Dlib 等工具进行模型超参数选择。
第二部分:机器学习算法
聚类
讲解聚类中常用的距离度量(欧氏距离、曼哈顿距离等)。
介绍各类聚类算法(基于划分、层次、密度、模型等),并展示 mlpack 和 Dlib 库的实现示例,如 K-means、DBSCAN 等。
异常检测
探讨异常检测的应用场景和学习方法,包括统计测试、局部离群因子、孤立森林、单类 SVM 等。
展示不同 C++ 库(Dlib、mlpack 等)在异常检测中的使用。
降维
概述特征选择和降维方法,介绍线性方法(PCA、SVD、LDA 等)和非线性方法(核 PCA、Isomap、t-SNE 等)。
展示 Dlib、Tapkee 等库的降维实现。
分类
介绍分类方法(逻辑回归、KRR、SVM、kNN 等)及多类分类策略。
展示 mlpack、Dlib、Flashlight 等库的分类实现示例。
推荐系统
概述推荐系统算法(非个性化推荐、基于内容、协同过滤等)。
讲解协同过滤方法,展示使用 Eigen 和 mlpack 实现基于项目的协同过滤示例。
集成学习
介绍集成学习概述,包括 bagging、梯度提升、stacking、随机森林等方法。
展示 Dlib 和 mlpack 库中集成学习的实现。
第三部分:高级示例
用于图像分类的神经网络
介绍神经网络基础(神经元、感知器、反向传播、损失函数、激活函数等)及卷积神经网络(卷积操作、池化、感受野等)。
展示 Dlib、mlpack、Flashlight 库构建神经网络的示例,以及 LeNet 架构用于图像分类。
使用 BERT 和迁移学习进行情感分析
介绍 Transformer 架构(编码器、解码器、分词等)。
展示使用 BERT 进行情感分析的示例,包括模型导出、分词器实现、数据集加载、模型训练等。
第四部分:生产和部署挑战
模型导出与导入
介绍 C++ 库(Dlib、Flashlight、mlpack、PyTorch)中的模型序列化 API。
讲解 ONNX 格式,展示使用 ResNet 架构进行图像分类及加载 ONNX 模型的示例。
机器学习实验跟踪与可视化
介绍实验跟踪和可视化系统(TensorBoard、MLflow)。
展示使用 MLflow 的 REST API 进行实验跟踪,包括日志记录、参数跟踪等。
在移动平台部署模型
介绍在 Android 平台开发目标检测的技术要求和流程,包括 PyTorch 移动版本、TorchScript、Android Studio 项目配置等。
展示 Kotlin 和原生 C++ 部分的项目实现。
附录与资源
包含技术要求、库的安装和配置说明,以及示例代码的 GitHub 仓库链接。
提供进一步阅读的资源,如相关论文、库文档等。
该书通过丰富的示例和代码,帮助读者掌握使用 C++ 进行机器学习的关键技术,从基础概念到实际部署,适合作为 C++ 机器学习开发的实用指南。