深度学习08-简单卷积网络的例子

在上一节课(07)中,讲了如何为卷积网络构建一个卷积层。今天我们看一个深度CNN的具体示例,顺便练习一下我们上节课所学的标记法。

假设你有一张图片,你想做图片分类或图片识别,把这张图片输入定义为 x ,然后辨别图片中有没有猫,用0或1表示,这是一个分类问题,我们来构建适用于这项任务的卷积神经网络范例。针对这个示例,我用了一张比较小的图片,大小是 39*39*3。这样设定使得计算更简单。所以第0层中的n_H[0](高度)=  n_W[0] (宽度)= 39,即高度和宽度都等于39。n_C[0] = 3,即0层的通道数为3。

假设第一层我们用一个3 * 3的过滤器来提取特征,那么 f [1] = 3,因为过滤器是3 * 3的矩阵。假设使用1的步长(stride),不使用填充(padding),即s[1] = 1,p[1] = 0;使用same卷积,假设有10个过滤器(10 filter)。然后神经网络下一层的激活值为37*37*10(这里10是因为使用了10个过滤器,37来自公式 [(n+2p-f)/ s] + 1,所以输出是37×37)。再然后使用我们之前学的符号,n_H[1] = n_W[1] = 37,n_C[1] = 10。n_C[1]同时也等于第一层的过滤器的数量,因此这(37×37×10)是第一层激活值的维度。

 ps:卷积的三种模式(76条消息) 卷积的三种模式:full, same, valid_陌上小布的博客-CSDN博客_same卷积和valid卷积

深度学习08-简单卷积网络的例子_第1张图片


假设现在还有另外一个卷积层,而且假设这次我们采用的过滤器是5×5的矩阵。所以用符号表示,神经网络下一层的 f[2] =5,步长s[2] = 2,p[2] = 0(没有填充),20个过滤器。那这次输出的维度将是17 * 17 * 20。请注意,因为现在步长使用的是 2,维度收缩更快,大小从37×37减小到17×17,减小了一半还多。因为过滤器是20个,所以现在通道数也是20。17×17×20即激活值 a [2] 的维度。n_H[2] = n_W[2] = 17,n_C[2] = 20(这一层过滤器有20个,20层叠在一起就有20个通道)。

深度学习08-简单卷积网络的例子_第2张图片


 我们来构建最后一个卷积层,假设过滤器还是5×5的矩阵,即f [3] = 5 ,同时步长s[3] = 2,使用40个过滤器(40 filter),没有填充(p = 0)。通过计算最后输出为7×7×40 。到此,把39×39×3作为输入图像,为图像提取了7×7×40个特征(计算出此图像的7×7×40个特征)。最后通常会做的事情是,如果你把这个7×7×40(1960个)个的特征给展开1960个单元,然后扁平化成一个向量输出,然后将其输出到一个logistic回归单元(逻辑回归)或者softmax回归单元。取决于我们是想识图片上有没有猫(二元),或者还是想识别任意的 K 种不同对象(多元)。这就会给出神经网络的最终预测输出。明确一点,最后这一步是处理所有数字,即全部的1960个数字,并展开它们成一个很长的矢量(向量),为了预测最终的输出结果,我们把这个长向量填充到softmax回归函数中。

深度学习08-简单卷积网络的例子_第3张图片


以上就是卷积神经网络的一个典型范例,设计卷积神经网络时,确定这些超参数比较费工夫。要决定过滤器的大小、步幅(stride)、填充(padding)以及使用多少个过滤器。 

而这节课你要掌握的一点是,随着神经网络计算深度不断加深,通常开始时的图像都比较大,例如39*39,高度和宽度在保持不变一阵子后,然后随着网络深度的加深而逐渐减小,在上面的例子里,它从39 ->37 ->17 ->7。而通道数量一般会增加,从3 ->10 ->20 ->40,在许多其它卷积神经网络中,你也可以看到这种趋势。我们在今后会给出更多如何设计(确定)这些参数的指导。

深度学习08-简单卷积网络的例子_第4张图片


 

事实证明,一个典型的卷积神经网络通常有三层。一个是卷积层,通常我们用Conv来标注。上一个例子,我用的就是CONV。还有两种常见的层类型,我们留在后两节课讲。一个称为池(pool)层。最后一个是全连接层,用FC表示。

虽然仅用卷积层也有可能构建出很好的神经网络,但大部分神经网络架构师依然会添加池化层和全连接层。幸运的是,池化层和全连接层比卷积层更容易设计。后两节课我们会快速讲解这两个概念以便你更好的了解神经网络中最常用的这几种层,你就可以利用它们构建更强大的网络了。

再次恭喜你已经掌握了第一个完整的卷积神经网络,本周后几节课,我们会学习如何训练这些卷积神经网络。不过在这之前,我还要简单介绍一下池化层和全连接层。然后再训练这些网络,到时我会用到大家熟悉的反向传播训练方法。那么下节课,我们就先来了解如何构建神经网络的池化层。


自我学习笔记,如有错误,请指正。

参考链接:(78条消息) 1.8 简单卷积网络示例-深度学习第四课《卷积神经网络》-Stanford吴恩达教授_Zhao-Jichao的博客-CSDN博客

你可能感兴趣的:(深度学习笔记,深度学习,神经网络,人工智能)