在过去的几年中,人工智能和深度学习是一个不断被提及的话题,最令大众熟知的恐怕就是AlphaGo与柯洁、李世乭的围棋大战了。而最近,人工智能OpenAI Five 在DOTA 2 的比赛中击败了世界冠军OG,人工智能的发展总会给人带来惊喜。除了上述“大事件”,人工智能和深度学习早就深入我们的生活当中,比如无人驾驶汽车、人脸识别,或者订外卖时App 给我们做的推荐。
在经历了互联网、移动互联网的浪潮之后,可以说现在我们已经步入了人工智能的时代。我第一次接触机器学习和深度学习时就被深深地吸引了,感觉自己就像一块海绵被投入到大海里,看书、看视频、看源码,学习新的知识使我感到非常兴奋。相信此刻的你也跟当年学习的我的状态是一样的吧,本书将我对深度学习的理解、从开源社区学到的知识分享给大家,希望能为你的学习提供一些帮助。
本书以案例的形式,讲解各种深度学习理论和相应场景的实践,包含TensorFlow 1.x 和TensorFlow2.0 的代码实现。全书共分10 章。第1章讲解了卷积神经网络理论知识,第2 章讲解了如何进行CIFAR-100 图像分类实践。第3 章介绍了循环神经网络(RNN 和LSTM),以及在彩票预测和古诗生成上的实践。在第3章的最后,介绍了Seq2Seq、Transformer 和BERT 模型。第4章以电影推荐系统为例,分享了推荐系统的实现。第5章介绍了广告点击率预测。第6章讲解了人脸识别的实践,包含使用OpenCV、dlib 和MTCNN 进行人脸检测,使用dlib、FaceNet 和VGG16等方式提取人脸特征,然后讨论了比较人脸特征的几种方式。最后,使用上述技术实现了一个在视频中找人的应用。第7 章分析了AlphaGo 和AlphaZero 的论文原文,讲解了蒙特卡罗树搜索(MCTS)和神经网络的结构,并且通过实现中国象棋复现了AlphaZero。第8章介绍了OCR 在汉字识别上的应用,并且讲解了BiLSTM 的多种类型,最后实现了一个端到端的汉字识别网络。第9章介绍了DQN 算法,用于玩Flappy Bird。然后介绍了OpenAI Baselines 和Gym 的用法,并用于玩“超级马里奥”。最后介绍了OpenAI 提出的具有好奇心的强化学习算法。第10章讲解了生成对抗网络(GAN)及衍生的变种DCGAN、WGAN 和WGAN-GP 算法,用于人脸生成的实践。最后介绍了PG-GAN 和TL-GAN 的理论。
限于篇幅,以及作者能力有限,书中难免有错漏之处,本书仅仅是将作者掌握的知识做了总结与分享。当然,这些知识不属于我个人,首先要感谢那些工作在人工智能第一线的科学家们,是他们将研究成果公布出来,让大家可以阅读论文和博客。更要感谢开源社区的贡献者们,使我们可以阅读源码参考学习。还要感谢同样喜欢技术分享的人们,我所能做的跟他们一样,就是将分享的“火炬”继续传递下去。书中在引用时都会给出引用的出处,在这里一并表示感谢。
写作本书的过程,是对自己所学知识的一次梳理,回过头来重新审视自己对某些知识的理解,又是一次成长。同时,写作的过程又是孤独的、寂寞的,有时觉得自己就像在山洞里练剑一样。感谢我的妻子对我的理解和支持,在写作期间,她在国内带着孩子,听从了我“在交稿前不要来打扰”的安排。最要感谢的是我的妈妈,是她培养了我学习与钻研的习惯。最后还要感谢电子工业出版社的郑柳洁和葛娜老师,她们对本书的出版和编辑提供了很多专业性的指导和帮助,没有她们的付出,本书无法与大家见面。
希望本书的内容能够为你提供帮助,权当抛砖引玉,为你的深度学习知识打下基础。
程世东