由Keras之父弗朗索瓦·肖莱(François Chollet)撰写,张亮翻译,人民邮电出版社出版。全书分为两大部分:深度学习基础和深度学习实践,共9章。本书旨在帮助读者从零开始学习深度学习,并通过大量代码示例和实践案例掌握其应用。
第一部分:深度学习基础
第1章:什么是深度学习
人工智能、机器学习与深度学习:介绍了人工智能的发展历程,机器学习的基本概念,以及深度学习的兴起和重要性。
深度学习的进展:讨论了深度学习在图像识别、语音转录等领域的突破性进展。
深度学习的大众化:强调了深度学习技术的普及和易于上手的特点。
第2章:神经网络的数学基础
神经网络的介绍:通过一个简单的神经网络示例,介绍了张量、张量运算、梯度下降等基本概念。
张量与张量运算:详细讲解了张量的定义、属性、操作(如逐元素运算、广播、点积等)。
神经网络的学习机制:解释了神经网络如何通过梯度下降和反向传播进行学习。
第3章:神经网络入门
Keras简介:介绍了Keras框架及其与TensorFlow、Theano和CNTK的关系。
建立深度学习工作站:提供了在本地或云端建立深度学习环境的指南。
基本示例:通过电影评论分类、新闻分类和房价预测三个示例,展示了如何使用Keras构建和训练神经网络。
第4章:机器学习基础
机器学习的四个分支:介绍了监督学习、无监督学习、自监督学习和强化学习。
评估机器学习模型:讲解了训练集、验证集和测试集的划分,以及如何评估模型性能。
数据预处理和特征工程:讨论了数据标准化、特征提取等重要步骤。
过拟合与欠拟合:介绍了减小网络大小、添加权重正则化和dropout正则化等方法来解决过拟合问题。
第二部分:深度学习实践
第5章:深度学习用于计算机视觉
卷积神经网络(ConvNet):介绍了卷积神经网络的基本概念、卷积运算和最大池化运算。
在小型数据集上训练卷积神经网络:通过猫狗图像分类的示例,讲解了从头开始训练卷积神经网络的方法。
使用预训练的卷积神经网络:介绍了特征提取和微调模型的方法,以及如何使用VGG16等预训练模型。
卷积神经网络的可视化:展示了如何可视化卷积神经网络的中间激活、过滤器和类激活热力图。
第6章:深度学习用于文本和序列
处理文本数据:介绍了单词和字符的one-hot编码、词嵌入等文本向量化方法。
循环神经网络(RNN):讲解了RNN的基本概念、LSTM和GRU层的使用。
一维卷积神经网络:介绍了如何使用一维卷积神经网络处理序列数据。
温度预测问题:通过一个时间序列预测的示例,展示了如何应用循环神经网络和一维卷积神经网络。
第7章:高级的深度学习最佳实践
Keras函数式API:介绍了如何使用Keras的函数式API构建更复杂的模型。
使用回调函数和TensorBoard:讲解了如何使用Keras回调函数和TensorBoard来监控和调试模型。
模型性能优化:介绍了超参数优化、模型集成等高级技术。
第8章:生成式深度学习
第9章:总结
重点内容回顾:总结了全书的核心概念和方法。
深度学习的局限性:讨论了深度学习的局限性,如模型拟人化的风险、局部泛化与极端泛化等问题。
深度学习的未来:展望了深度学习的未来发展方向,如模型即程序、超越反向传播等。
如何保持对最新进展的了解:提供了通过Kaggle竞赛、arXiv论文和Keras生态系统来了解深度学习最新进展的方法。
实践案例与代码示例
- 案例 1:IMDB 情感分析
python
运行
from keras.datasets import imdb
from keras.preprocessing import sequence
(x_train, y_train),(x_test, y_test)= imdb.load_data(num_words=10000)
x_train = sequence.pad_sequences(x_train, maxlen=500)
model = Sequential()
model.add(Embedding(10000,128, input_length=500))
model.add(LSTM(32))
model.add(Dense(1, activation='sigmoid'))
model.compile(optimizer='rmsprop'
, loss='binary_crossentropy', metrics=['acc'])
model.fit(x_train, y_train, epochs=10, batch_size=128, validation_split=0.2)
- 案例 2:猫狗图像分类(迁移学习)
python
运行
from keras.applications import VGG16
conv_base = VGG16(weights='imagenet', include_top=False, input_shape=(150,150,3))
model = Sequential()
model.add(conv_base)
model.add(Flatten())
model.add(Dense(256, activation=
'relu'))
model.add(Dense(1, activation='sigmoid'))
conv_base.trainable =False# 冻结卷积基
model.compile(optimizer='rmsprop', loss='binary_crossentropy', metrics=['acc'])
学习路径与建议
- 入门阶段
- 掌握 Keras 基础模型(Sequential)与张量运算,完成 MNIST 手写识别、IMDB 情感分析等基础案例。
- 进阶阶段
- 深入函数式 API,实践多模态输入、多输出模型,学习 RNN 与 CNN 的混合架构。
- 研究预训练模型(如 VGG、ResNet)的迁移学习,理解特征提取与微调策略。
- 高级阶段
- 探索生成式模型(GAN、VAE)与强化学习,参与 Kaggle 竞赛提升实战能力。
- 关注前沿技术(如 Transformer、自监督学习),阅读 arXiv 论文跟踪领域进展。
附录
关注微信公众号“人工智能产业链union”回复关键字“AI加油站09”获取下载地址。
【AI加油站】第八部:《模式识别(第四版)-模式识别与机器学习》(附下载)