AI Insight
首发于AI Insight
我的新书介绍:一本深度学习 + TensorFlow的实践项目合集

我的新书介绍:一本深度学习 + TensorFlow的实践项目合集

首先感谢大家还关注这个专栏,前段时间一直在写一本书,题为《21个项目玩转深度学习——基于TensorFlow的实践详解》。

简单地介绍一下,这本书的定位是深度学习+TensorFlow的入门实验书,希望提供一些在TensorFlow下常用的、并且真正能work的实践项目,方便初学者通过动手实验来快速入门。

目前该书已全面上架京东(item.jd.com/12327358.ht),天猫(detail.tmall.com/item.h)、当当(product.dangdang.com/25)价格非常便宜,只需要60块钱。如果不想买书的话也欢迎来star这本书的Github:hzy46/Deep-Learning-21-Examples,全部项目的代码和运行方式已经整理上传了~~

有哪些实践案例

从难易度、实用性、趣味性考量,这本书选择了21个入门的项目,主要有三个大类:

  • CNN、图像相关:包含图像分类目标检测人脸识别风格迁移,同时包含GANcGANCycleGAN等和GAN相关的内容
  • RNN、序列相关:文本生成序列分类训练词嵌入时间序列预测机器翻译等等。
  • 强化学习:主要复现一些基础的算法,如Q LearningSARSADeep Q Learning等。

所有项目都基于TensorFlow大于等于1.4.0的版本,具体案例如下:

一、CNN与计算机视觉:

1、MNIST机器学习入门

基础的MNIST手写数字识别,你懂的。

2、CIFAR-10与ImageNet图像识别

在CIFAR-10(同样也是一个常用数据集,不过和MNIST不同的是它是三通道彩色图像)上训练一个图像识别模型。

3、打造自己的图像识别模型

从零开始,如何在自己的数据集上训练ImageNet模型进行图像识别。

书中提供了一个网上爬取的卫星图像数据集,共有森林、水域、岩石、湿地、冰川、城市六类共6000章图像。你将体验数据转tfrecord => 训练模型 => 调整参数 => 验证正确率 => 导出模型 => 使用导出模型测试单张图片的全过程。

4、Deep Dream

一个比较有趣的图像生成模型,最初由Google公布,可以帮助我们理解卷积神经网络的特征背后的含义。

简单来说,极大化卷积网络某个通道的输出,就可以得到如下所示的展示该通道特征的图片:

5、深度学习中的目标检测

目标检测,计算机视觉经典问题之一。这里以TensorFlow Object Detection API为例,在VOC2009数据集上,训练了一个Faster R-CNN模型,并且导出模型对单张图片进行检测,测试效果如下:

6、人脸检测和人脸识别

人脸检测和识别也是常见的项目。检测和对齐人脸用的是MTCNN,训练人脸模型用的是带有中心损失的CNN。

这章包含的内容有:验证已经训练好的模型的准确率、使用已经训练好的模型进行人脸识别、训练自己的模型。

7、图像风格迁移

神经网络的风格迁移,可以生成比较酷炫的图片,例如:

二、GAN以及它的几个重要变体

8、GAN与DCGAN入门

这章介绍了用GAN和DCGAN的基本原理,并利用DCGAN做了一个动漫人物生成Demo,生成的图片如下所示:

9、pix2pix模型与自动上色技术

使用pix2pix模型将黑白图像转换成彩色图像,这一章有两个实验,分别是将黑白的食物图像和动漫图像转换为彩色图像。

上色效果如下(从左到右依次是,黑白图片、自动上色的图片、真实图片):

10、超分辨率:让图像变得更清晰

使用pix2pix模型,将模糊的图片还原为清晰的图片。

效果如下(从左到右依次为,模糊处理后的图片、清晰化后的图片、真实图片):

11、CycleGAN与非配对图像转换

使用CycleGAN进行图片转换,做了两个实验:苹果变成橘子,男人变成女人。

三、RNN与自然语言处理

12、RNN基本结构与Char RNN文本生成

主要内容为:RNN、LSTM基础结构。介绍了一个比较简单的Char RNN的例子,它文本生成、机器写诗。

写诗示例:

何人无不见,此地自何如。
一夜山边去,江山一夜归。
山风春草色,秋水夜声深。
何事同相见,应知旧子人。
何当不相见,何处见江边。
一叶生云里,春风出竹堂。
何时有相访,不得在君心。

13、序列分类问题详解

一类数列为等差数列,一类数列为随机数列,使用RNN,达到99%的分类准确率。

14、词的向量表示:word2vec与词嵌入

词嵌入在各种自然语言处理问题时经常用到,这章使用Skip-gram方法训练一个词嵌入,并进行简单的可视化。

15、在TensorFlow中进行时间序列预测

用TensorFlow来解决时间序列预测问题,预测方法包括传统的AR模型和LSTM模型。

预测效果如下(红色部分为预测值):

16、神经网络机器翻译技术

这一章会训练一个把英文翻译成中文的模型。

例如,输入英文:It is learned that china has on many occasions previously made known its stand on its relations with the g-8.

可以翻译为中文:据悉,中国曾多次表明同八国集团之间的关系。

使用的代码为TensorFlow NMT。

17、看图说话:将图像转换为文字

给定一张图片:

输出一句描述它的话,如"a man riding a wave on top of a surfboard ."

四、强化学习基础与深度强化学习

18、强化学习入门之Q Learning

借助一个走迷宫问题,来讲解强化学习基础算法 —— Q Learning。

19、强化学习入门之SARSA算法

解决的问题和上一章类似,不过使用的算法是另一种强化学习基础算法SARSA。

20、深度强化学习:Deep Q Learning

训练一个DQN,来玩打砖块游戏。

21、策略梯度(Policy Gradient)算法

训练一个策略梯度网络,来玩Cartpole。

为什么写这本书

去年6月份,电子工业出版社的一位编辑朋友找到我,希望能够帮忙编写一本以项目合集为形式的深度学习入门书。当时没有怎么犹豫就答应下来了,一方面,市面上确实缺少一本这样以实践案例组成的入门书,另一方面,我个人也觉得,实践是入门深度学习的的极佳方式,原因如下:

  • 在学习的初期,这种方式具有趣味感、成就感,比较容易坚持
  • 深度学习需要深厚的数理基础,对于初学者来说不是很友好,另外TensorFlow这个框架也不是很容易学习。使用具体例子来理解更加直观有效。
  • 深度学习更偏向是一门“实验科学”。很多深度学习算法都存在一些无法用理论解释的trick和训练技巧,这些东西如果不是自己去经历一次是很难有直观感受的。

另外,在这个专栏中,我曾经写过很多比较有意思的深度学习实践项目。这本书是在专栏的基础上,添加了更多的项目,整理成册,希望提供一个比较完整的深度学习入门案例合集。

最后

最后大家如果对这本书有兴趣的话,可以猛戳下面的购买链接购买:

也欢迎随时访问本书的Github:hzy46/Deep-Learning-21-Examples 吐槽、提issue,在这里谢谢各位啦,比心!

编辑于 2018-04-11

文章被以下专栏收录