后记
1966 年,麻省理工学院教授西摩-帕帕特(Seymour Papert)为他的学生发起了一个暑期项目。这个项目的最终目标是通过将图像中的物体与已知物体的词汇进行匹配来命名这些物体。他很有帮助地将任务分解成几个子项目,并希望学生们能在几个月内完成。可以说,帕帕特博士有点低估了问题的复杂性。
本书一开始,我们就研究了像全连接神经网络这样的天真机器学习方法,这些方法并没有利用图像的特殊性。在第 2 章中,通过尝试这些简单的方法,我们学会了如何读取图像,以及如何使用机器学习模型进行训练、评估和预测。
然后,在第 3 章中,我们介绍了许多创新概念--卷积滤波器、最大池化层、跳转连接、模块、挤压激活等--这些概念使现代机器学习模型能够很好地从图像中提取信息。实际上,实现这些模型需要使用内置的 Keras 模型或 TensorFlow Hub 层。我们还详细介绍了迁移学习和微调。
在第 4 章中,我们探讨了 如何使用第 3 章中介绍的计算机视觉模型来解决计算机视觉中两个 更基本的问题:物体检测和图像分割。
本书接下来的几章深入介绍了创建生产计算机视觉机器学习模型所涉及的各个阶段:
-
在第 5 章中,我们介绍了如何以高效的机器学习格式创建数据集。我们还讨论了创建标签以及为模型评估和超参数调整保留独立数据集的可用选项。
-
在第 6 章中,我们深入探讨了预处理和防止训练服务偏差的问题。预处理可以在
tf.data输入管道、Keras 层、tf.transform中完成,也可以混合使用这些方法。我们介绍了每种方法的实现细节和优缺点。 -
在第 7 章中,我们讨论了模型训练,包括如何在 GPU 和工作者之间分配训练。
-
在第 8 章中,我们探讨了如何监控和评估模型。我们还研究了如何进行抽样评估,以诊断出模型中的不公平和偏差。
-
在第 9 章中,我们讨论了部署模型的可用选项。我们实现了批量、流式和边缘预测。我们能够在本地和网络上调用模型。
-
在第 10 章中,我们向你展示了如何将所有这些步骤整合到机器学习管道中。 我们还尝试了一种无代码图像分类系统,以利用机器学习的不断民主化。
在第 11 章中,我们将视角扩大到 图像分类之外。我们探讨了如何利用计算机视觉的基本构件来解决各种问题,包括计数、姿势检测和其他用例。最后,在第 12 章中,我们探讨了如何生成图像和标题。
在本书中,所讨论的概念、模型和流程都附有在 GitHub 中的实现。我们强烈建议您不仅要阅读本书,还要通过代码进行操作和尝试。学习机器学习的最佳方式就是动手实践。
计算机视觉正处于一个激动人心的阶段。 在帕帕特博士向他的学生们提出这个问题 50 多年后的今天,我们终于可以用两个月的时间完成图像分类项目了!我们祝愿你们在应用这项技术改善人类生活方面取得巨大成功,并希望使用计算机视觉技术解决现实世界的问题能给你们带来和我们一样多的快乐。