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

前言

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

四、04.卷积神经网络

Deeping Learning学习与感悟——《深度学习工程师》_4_第1张图片

1. 卷积运算:

如果把最右边的矩阵当成图像,它是这个样子。在中间有段亮一点的区域,对应检查到这个 6×6 图像中间的垂直边缘。从垂直边缘检测中可以得到的启发是,因为我们使用 3×3 的矩阵(过滤器),所以垂直边缘是一个 3×3 的区域,左边是明亮的像素,中间的并不需要考虑,右边是深色像素。在这个 6×6图像的中间部分,明亮的像素在左边,深色的像素在右边,就被视为一个垂直边缘,卷积运算提供了一个方便的方法来发现图像中的垂直边缘。
Deeping Learning学习与感悟——《深度学习工程师》_4_第2张图片
Deeping Learning学习与感悟——《深度学习工程师》_4_第3张图片

2. 更多边缘检测:

Deeping Learning学习与感悟——《深度学习工程师》_4_第4张图片

3. Padding:

Deeping Learning学习与感悟——《深度学习工程师》_4_第5张图片
Deeping Learning学习与感悟——《深度学习工程师》_4_第6张图片

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

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

4. Stride:

Deeping Learning学习与感悟——《深度学习工程师》_4_第7张图片

总结一下维度情况,如果你有一个 × 的矩阵或者 × 的图像,与一个 × 的矩阵卷积,或者说 × 的过滤器。Padding 是,步幅为输出尺寸就是这样:
Deeping Learning学习与感悟——《深度学习工程师》_4_第8张图片

5. 三维卷积:

Deeping Learning学习与感悟——《深度学习工程师》_4_第9张图片
Deeping Learning学习与感悟——《深度学习工程师》_4_第10张图片
总结一下维度,如果你有一个 × × (通道数)的输入图像,在这个例子中就是 6×6×3,这里的就是通道数目,然后卷积上一个f×f× ,这个例子中是 3×3×3,按照惯例,这个(前一个)和这个(后一个)必须数值相同。然后你就得到了( − + 1)× ( − + 1)× ′,这里′其实就是下一层的通道数,它就是你用的过滤器的个数。

6.池化层:

Deeping Learning学习与感悟——《深度学习工程师》_4_第11张图片
Deeping Learning学习与感悟——《深度学习工程师》_4_第12张图片
Deeping Learning学习与感悟——《深度学习工程师》_4_第13张图片
总结一下,池化的超级参数包括过滤器大小和步幅
常用的参数值为 = 2, = 2,应用频率非常高,其效果相当于高度和宽度缩减一半。最大池化时,往往很少用到超参数 padding,当然也有例外的情况,我们下周会讲。大部分情况下,最大池化很少用 padding。目前最常用的值是 0,即 = 0。需要注意的一点是,池化过程中没有需要学习的参数。

7. 卷积神经网络示例

Deeping Learning学习与感悟——《深度学习工程师》_4_第14张图片

需要注意的是,人们在计算神经网络有多少层时,通常只统计具有权重和参数的层。因为池化层没有权重和参数,只有一些超参数。这里,我们把 CONV1 和 POOL1 共同作为一个卷积,并标记为 Layer1。
Deeping Learning学习与感悟——《深度学习工程师》_4_第15张图片
有几点要注意:

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

8. 为什么使用卷积

Deeping Learning学习与感悟——《深度学习工程师》_4_第16张图片
Deeping Learning学习与感悟——《深度学习工程师》_4_第17张图片

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

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

结语:

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

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

你可能感兴趣的:(学习感悟,深度学习,deep,learning,卷积神经网络,卷积)