Deeping Learning学习与感悟——《深度学习工程师》_4

前言

在如今人工智能大热的时代,博主在前年暑假自学了网易云课堂上吴恩达教授讲授的《深度学习工程师》微专业课程,如今将具体的学习内容与课堂笔记记录下来,供小伙伴们一起学习交流,ヽ(✿゚▽゚)ノ~

四、04.卷积神经网络

在这里插入图片描述

1. 卷积运算:

如果把最右边的矩阵当成图像,它是这个样子。在中间有段亮一点的区域,对应检查到这个 6×6 图像中间的垂直边缘。从垂直边缘检测中可以得到的启发是,因为我们使用 3×3 的矩阵(过滤器),所以垂直边缘是一个 3×3 的区域,左边是明亮的像素,中间的并不需要考虑,右边是深色像素。在这个 6×6图像的中间部分,明亮的像素在左边,深色的像素在右边,就被视为一个垂直边缘,卷积运算提供了一个方便的方法来发现图像中的垂直边缘。
在这里插入图片描述
在这里插入图片描述

2. 更多边缘检测:

在这里插入图片描述

3. Padding:

在这里插入图片描述
在这里插入图片描述

  • 至于选择填充多少像素,通常有两个选择,分别叫做 Valid 卷积和 Same 卷积Valid卷积意味着不填充,这样的话,如果你有一个𝑛 × 𝑛的图像,用一个𝑓 × 𝑓的过滤器卷积,它将会给你一个(𝑛 − 𝑓 + 1)× (𝑛 − 𝑓 + 1)维的输出。

  • 另一个经常被用到的填充方法叫做 Same 卷积,那意味你填充后,你的输出大小和输入大小是一样的。根据这个公式𝑛 − 𝑓 + 1,当你填充𝑝个像素点,𝑛就变成了𝑛 + 2𝑝,最后公式变为𝑛 + 2𝑝 − 𝑓 + 1。因此如果你有一个𝑛 × 𝑛的图像,用𝑝个像素填充边缘,输出的大小就是这样的(𝑛 + 2𝑝 − 𝑓 + 1) × (𝑛 + 2𝑝 − 𝑓 + 1)。如果你想让𝑛 + 2𝑝 − 𝑓 + 1 = 𝑛的话,使得输出和输入大小相等,如果你用这个等式求解𝑝,那么𝑝 = (𝑓 − 1)/2。

4. Stride:

在这里插入图片描述

总结一下维度情况,如果你有一个𝑛 × 𝑛的矩阵或者𝑛 × 𝑛的图像,与一个𝑓 × 𝑓的矩阵卷积,或者说𝑓 × 𝑓的过滤器。Padding 是𝑝,步幅为𝑠输出尺寸就是这样:
在这里插入图片描述

5. 三维卷积:

在这里插入图片描述
在这里插入图片描述
总结一下维度,如果你有一个𝑛 × 𝑛 × 𝑛𝑐(通道数)的输入图像,在这个例子中就是 6×6×3,这里的𝑛𝑐就是通道数目,然后卷积上一个f×f× 𝑛𝑐,这个例子中是 3×3×3,按照惯例,这个(前一个𝑛𝑐)和这个(后一个𝑛𝑐)必须数值相同。然后你就得到了(𝑛 − 𝑓 + 1)× (𝑛 − 𝑓 + 1)× 𝑛𝑐′,这里𝑛𝑐′其实就是下一层的通道数,它就是你用的过滤器的个数。

6.池化层:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
总结一下,池化的超级参数包括过滤器大小𝑓和步幅𝑠
常用的参数值为𝑓 = 2, 𝑠 = 2,应用频率非常高,其效果相当于高度和宽度缩减一半。最大池化时,往往很少用到超参数 padding,当然也有例外的情况,我们下周会讲。大部分情况下,最大池化很少用 padding。目前𝑝最常用的值是 0,即𝑝 = 0。需要注意的一点是,池化过程中没有需要学习的参数。

7. 卷积神经网络示例

在这里插入图片描述

需要注意的是,人们在计算神经网络有多少层时,通常只统计具有权重和参数的层。因为池化层没有权重和参数,只有一些超参数。这里,我们把 CONV1 和 POOL1 共同作为一个卷积,并标记为 Layer1。
在这里插入图片描述
有几点要注意:

  1. 第一,池化层和最大池化层没有参数;
  2. 第二,卷积层的参数相对较少,其实许多参数都存在于神经网络的全连接层。
  3. 第三,观察可发现,随着神经网络的加深,激活值尺寸会逐渐变小,如果激活值尺寸下降太快,也会影响神经网络性能。
  4. 除此之外,还有一点需要注意:
    人们在计算神经网络有多少层时,通常只统计具有权重和参数的层。因为池化层没有权重和参数,只有一些超参数。这里,我们把 CONV1和POOL1共同作为一个卷积,并标记为Layer1。

8. 为什么使用卷积

在这里插入图片描述
在这里插入图片描述

  • 最后,我们把这些层整合起来,看看如何训练这些网络。

比如我们要构建一个猫咪检测器,我们有下面这个标记训练集,𝑥表示一张图片,𝑦是二进制标记或某个重要标记。我们选定了一个卷积神经网络,输入图片,增加卷积层和池化层,然后添加全连接层,最后输出一个softmax,即𝑦。卷积层和全连接层有不同的参数𝑤和偏差𝑏,我们可以用任何参数集合来定义代价函数。一个类似于我们之前讲过的那种代价函数,并随机初始化其参数𝑤和𝑏,代价函数 𝐽 等于神经网络对整个训练集的预测的损失总和再除以 𝑚 (即 Cost 𝐽 =在这里插入图片描述 )。所以训练神经网络,你要做的就是使用梯度下降法,或其它算法,例如 Momentum 梯度下降法,含 RMSProp 或其它因子的梯度下降来优化神经网络中所有参数,以减少代价函数𝐽的值。通过上述操作你可以构建一个高效的猫咪检测器或其它检测器。

结语:

第四周的《卷积神经网络》,主要的收获是了解了卷积的基本概念,以及padding、stride、池化层等等相关概念……
通过这一周的学习开始对卷积神经网络有了一个比较清晰的认识和了解,同时也初步掌握了卷积神经网络相关的概念和卷积神经网络的计算方式!
,期待下一周的学习,冲鸭!!!

注:附上课程链接:深度学习工程师:吴恩达给你的人工智能第一课
对人工智能,深度学习等感兴趣的小伙伴可以去听一听,网易云课堂完全免费的微专业,学习周期大概为5周,内容质量超级棒,强烈推荐!!!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章