1.视频网站:mooc慕课https://mooc.study.163.com/university/deeplearning_ai#/c
2.详细笔记网站(中文):http://www.ai-start.com/dl2017/
3.github课件+作业+答案:https://github.com/stormstone/deeplearning.ai
2.2 经典网络 Classic networks
这节课,我们来学习几个经典的NN结构,分别是LeNet-5、AlexNet和VGGNet,开始吧。
1、LeNet-5
首先看看LeNet-5的网络结构。
1-1、LetNet-5网络结构
如上图。假设你有一张32×32×1的图片,LeNet-5可以识别图中的手写数字,比如像这样手写数字7。LeNet-5是针对灰度图片训练的,所以图片的大小只有32×32×1。
实际上LeNet-5的结构和我们上周讲的最后一个范例非常相似,使用6个5×5的过滤器,步幅为1。由于使用了6个过滤器,步幅为1,padding为0,输出结果为28×28×6((32+2x0-28)/1+1),图像尺寸从32×32缩小到28×28。
然后进行池化操作,在这篇论文写成的那个年代,人们更喜欢使用平均池化,而现在我们可能用最大池化更多一些。在这个例子中,我们进行平均池化,过滤器的宽度为2,步幅为2,图像的尺寸,高度和宽度都缩小了2倍,输出结果是一个14×14×6的图像。我觉得这张图片应该不是完全按照比例绘制的,如果严格按照比例绘制,新图像的尺寸应该刚好是原图像的一半。
接下来是卷积层,我们用一组16个5×5的过滤器,新的输出结果有16个通道。LeNet-5的论文是在1998年撰写的,当时人们并不使用padding,或者说总是使用valid卷积,这就是为什么每进行一次卷积,图像的高度和宽度都会缩小,所以图像从14到14缩小到了10×10。
然后又是池化层,高度和宽度再缩小一半,输出一个5×5×16的图像。将所有数字相乘,乘积是400。
下一层是全连接层,在全连接层中,有400个节点,每个节点有120个神经元,这里已经有了一个全连接层。但有时还会从这400个节点中抽取一部分节点构建另一个全连接层,就像这样,有2个全连接层。
最后一步就是利用这84个特征得到最后的输出,我们还可以在这里再加一个节点用来预测的值,有10个可能的值,对应识别0-9这10个数字。在现在的版本中则使用softmax函数输出十种分类结果,而在当时,LeNet-5网络在输出层使用了另外一种,现在已经很少用到的分类器。
相比现代版本,这里得到的NN会小一些,只有约6万个参数。而现在,我们经常看到含有一千万到一亿个参数的NN,比这大1000倍的NN也不在少数。
不管怎样,如果我们从左往右看,随着网络越来越深,图像的高度 n H n_H nH和宽度 n W n_W n