本章是学习Generarive Learning Model一书的第二章的内容,本章内容就是简单介绍了一下深度学习的内容,以下内容就是对本章介绍的知识点列举一下,若了解的读者可以跳过,因为笔者阅读时,感觉都是深度学习里一些非常简单基础的知识。
本章介绍的内容如下所示:
- Structured and Unstructured Data
- Deep Neural Networks
- Using Keras and TensorFlow build a deep neural network
- Improving the Model
Convolutional Layers
Batch Normalization
Dropout Layers
从以上的内容概要可以看出,介绍的内容都是深度学习里非常基础的知识。如果读者是从深度学习过来的,则无需再看;如果不看则心里不踏实(笔者就是这样),那看看也无妨,因为很简单,读者看完这章大概两个小时,因此看起来还是很快的。
首先介绍了结构性和非结构性的数据,结构性的数据就是平常那种能用一个表格来描述的数据,每个数据为一行,不同的列代表不同的特征。而非结构性数据就是不能用表格形式来表示的数据,例如图像,文本,音频等等。
以下是几个表达很有启发性的句子:
- individual pixels, frequencies, or characters are almost entirely uninformative.(非结构数据种,单个像素、频率或字符几乎完全没有信息)
- The granularity of the data combined with the high degree of spatial dependence destroys the concept of the pixel or character as an informative feature in its own right.(数据的粒度加上高度的空间依赖性破坏了像素或字符本身作为信息特征的概念)
然后介绍了一个最基本结构的神经网络,也用Keras和TensorFlow举例搭建了一个基本的神经网络。因为举的例子是图像分类的任务,前面所举例的模型是将所有的像素点进行一个flatten的操作,但是这样表现并不好。所以然后又提出了几个能够提高模型性能的方法。分别是CNN, BatchNorm以及Dropout,书中介绍的非常简单。并且深度学习种提高模型的性能有各种各样的技巧,读者若感兴趣,可以自行了解。
关于BatchNorm,其提到了如下内容:很多深度学习模型会存在梯度爆炸的现象,而BtachNorm能够在一定程度上解决这个问题;其也提到了协方差偏移covariate shift,这块笔者看的也不是很清楚,以后若详细了解到此问题继续追更。
而关于Dropout,其能够解决过拟合, by ensuring that the network doesn’t become overdependent on certain units or groups of units that.