本书由 Keras 之父、现任 Google 人工智能研究员的弗朗索瓦 • 肖莱(François Chollet)执笔,详尽介绍了用 Python 和 Keras 进行深度学习的探索实践,涉及计算机视觉、自然语言处理、生成式模型等应用。书中包含 30 多个代码示例,步骤讲解详细透彻。由于本书立足于人工智能的可达性和大众化,读者无须具备机器学习相关背景知识即可展开阅读。在学习完本书后,读者将具备搭建自己的深度学习环境、建立图像识别模型、生成图像和文字等能力。本书适合从事大数据及机器学习领域工作,并对深度学习感兴趣的各类读者。 你拿起这本书的时候,可能已经知道深度学习近年来在人工智能领域所取得的非凡进展。在图像识别和语音转录的任务上,五年前的模型还几乎无法使用,如今的模型的表现已经超越了人类。这种突飞猛进的影响几乎蔓延到所有行业。但是,想要将深度学习技术部署到它能解决的所有问题上,就需要让尽可能多的人接触这门技术,其中包括非专家,即既不是研究人员也不是研究生的那些人。想要让深度学习充分发挥其全部潜能,就需要彻底推广给大众。 2015 年 3 月,我发布了 Keras 深度学习框架的第一版,当时还没有想过人工智能的大众化。我在机器学习领域已经做了多年的研究,创造 Keras 是为了帮我自己做实验。但在 2015—2016 年,数万名新人进入了深度学习领域,其中很多人都选择了 Keras,因为它是最容易上手的框架(现在仍然是)。看到大量新人以意想不到的强大方式使用 Keras,我开始密切关注人工智能的可达性和大众化。我意识到,这些技术传播得越广,就会变得越有用、越有价值。可达性很快成为 Keras 开发过程中的一个明确目标,在短短几年内,Keras 开发者社区已经在这方面取得了了不起的成就。我们让数万人掌握了深度学习,他们反过来用这些技术来解决那些重要的问题,而我们是最近才知道这些问题的。你手里拿的这本书,也是为了让尽可能多的人能够使用深度学习而写的。Keras 一直需要一个配套教程,同时涵盖深度学习的基础知识、Keras 使用模式以及深度学习的最佳实践。本书是我尽最大努力制作的这么一本教程。本书的重点是用尽可能容易理解的方式来介绍深度学习背后的概念及其实现。我这么做没有贬低任何事情的意思,我坚信深度学习中没有难以理解的东西。希望本书对你有价值,能够帮助构建智能应用程序并解决那些对你很重要的问题。 本书是为那些想要从零开始探索深度学习的人或想要拓展对深度学习的理解的人而写的。无论是在职的机器学习工程师、软件开发者还是大学生,都会在本书中找到有价值的内容。本书是对深度学习的实践探索,避免使用数学符号,尽量用代码片段来解释定量概念,帮你建立关于机器学习和深度学习核心思想的直觉。书中包含 30 多个代码示例,有详细的注释、实用的建议和简单的解释。知道这些你就可以开始用深度学习来解决具体问题了。全书代码示例都使用 Python 深度学习框架 Keras,并用 TensorFlow 作为后端引擎。Keras 是最受欢迎且发展最快的深度学习框架之一,被广泛推荐为上手深度学习的最佳工具。读完本书后,你将会充分理解什么是深度学习、什么时候该用深度学习,以及它的局限性。你将学到解决机器学习问题的标准工作流程,还会知道如何解决常见问题。你将能够使用 Keras 来解决从计算机视觉到自然语言处理等许多现实世界的问题,包括图像识别、时间序列预测、情感分析、图像和文字生成等。 本书的目标读者是那些具有 Python 编程经验,并且想要开始上手机器学习和深度学习的人。但本书对以下这些读者也都很有价值。 如果你是熟悉机器学习的数据科学家,你将通过本书全面掌握深度学习及其实践。深度学习是机器学习中发展最快、最重要的子领域。 如果你是想要上手 Keras 框架的深度学习专家,你会发现本书是市面上最棒的 Keras 速成教程。 如果你是研究深度学习的研究生,你会发现本书是对你所受教育的实践补充,有助于你培养关于深度神经网络的直觉,还可以让你熟悉重要的最佳实践。有技术背景的人,即使不经常编程,也会发现本书介绍的深度学习基本概念和高级概念非常有用。使用 Keras 需要具有一定的 Python 编程水平。另外,熟悉 Numpy 库也会有所帮助,但并不是必需的。你不需要具有机器学习或深度学习方面的经验,本书包含从头学习所需的必要基础知识。你也不需要具有高等数学背景,掌握高中水平的数学知识应该足以看懂本书内容。 本书分为两部分。如果你之前没有关于机器学习的经验,我强烈建议你先读完第一部分,然后再阅读第二部分。我们会从简单示例讲起,然后再依次介绍越来越先进的技术。第一部分是对深度学习的介绍,给出了一些背景和定义,还解释了上手机器学习和神经网络需要掌握的所有概念。 第 1 章介绍人工智能、机器学习和深度学习的重要背景知识。 第 2 章介绍从事深度学习必须了解的基本概念:张量、张量运算、梯度下降和反向传播。这一章还给出了本书第一个可用的神经网络示例。 第 3 章包括上手神经网络所需要了解的全部内容:Keras 简介,它是我们的首选深度学习框架;建立自己的工作站的指南;三个基本代码示例以及详细解释。读完这一章,你将能够训练简单的神经网络来处理分类任务和回归任务,你还将充分了解训练过程背后发生的事情。 第 4 章介绍标准的机器学习工作流程。你还会了解常见的陷阱及其解决方案。第二部分将深入介绍深度学习在计算机视觉和自然语言处理中的实际应用。这一部分给出了许多示例,对于在现实世界的实践中遇到的深度学习问题,你可以用这些示例作为解决问题的模板。 第 5 章介绍了一系列实用的计算机视觉示例,重点放在图像分类。 第 6 章介绍了处理序列数据(比如文本和时间序列)的实用技术。 第 7 章介绍了构建最先进深度学习模型的高级技术。 第 8 章介绍了生成式模型,即能够创造图像和文本的深度学习模型,它有时会产生令人惊讶的艺术效果。 第 9 章将帮你巩固在本书学到的知识,还会探讨深度学习的局限性及其未来的可能性。