卷积神经网络

  • 深度学习与人工智能、机器学习的关系
  • 卷积神经网络基础
  • 边缘检测
  • 垂直过滤器和水平过滤器
  • Padding
  • Valid and Same convolutions(卷积方法)
  • 卷积步长 S(Strided convoluton)
  • Summary of convolution
  • RGB卷积(三维)
  • 单层卷积神经网络
  • Summary of notation
  • 简单卷积网络示例
  • Pooling 池化层
  • Max pooling
  • Average pooling
  • Fully connected 全连接层
  • Neural network example:
  • Why convolutions 为什么选用卷积
  • Gradient descent 梯度下降法


深度学习与人工智能、机器学习的关系

跑卷积神经网络对电脑要求 卷积神经网络训练时间_卷积


深度学习并非是2012年才出现,早在1989年就已经设计出了世界上第一个真正意义上的卷积神经网络,直到2012年才重回研究者的视野。

深度学习是一种可以通过学习人类预先提供的训练数据与标签,通过自我学习训练样本和标签来对网络卷积层中的参数进行不断调整,自主学习输入和输出之间的潜在规律,达到预测效果的网络。

卷积神经网络基础

边缘检测

  • 用卷积运算实现垂直边缘检测示例

左边6*6的矩阵代表左亮右暗的图片,实际像素会更大

中间3*3代表垂直过滤器(filter,或者叫卷积核)

右边是经垂直过滤器处理后的新图片。在这张图片中很明显能看到中间的一条线,这就是垂直边缘,当左边图片像素变大到1000*1000时,就能很清晰的表明左图的垂直边缘(Vertical edge)

垂直过滤器和水平过滤器

跑卷积神经网络对电脑要求 卷积神经网络训练时间_神经网络_02


如果将中间一行的 1 & -1 变为 2 & -2,就成为了sobel filter,其实大可将这些数字都看成参数,再使用反向传播求得各种不同过滤器的参数。(反向传播我也还没看到那去,下面应该会讲到)

Padding

待解决的问题
1.图像在卷积后越缩越小
2.图像边缘的大部分信息丢失
解决方法——padding(填充像素)

Valid and Same convolutions(卷积方法)
  • 无Padding
    “Valid” s :n * n (卷积*) f * f ==》 n-f+1
    尺寸说明: 原图 过滤器 输出
  • 有Padding,使一致
    “Same” s:n+2p * n+2p (卷积*) f * f ==》 n+2p-f+1
    =》 p = (f-1) / 2 (f一般为奇数)
    尺寸说明: 原图 过滤器 输出
卷积步长 S(Strided convoluton)

卷积时过滤器每次移动的步数
公式变为 (n+2p-f) / s +1 :商不为整数就向下取整

Summary of convolution

跑卷积神经网络对电脑要求 卷积神经网络训练时间_跑卷积神经网络对电脑要求_03


数学家更习惯叫这个操作为互相关(Cross-correlation),即需要镜像过滤器矩阵后再相乘。但在机器学习领域不需要镜像操作也能有相同的效果,且简化了代码。

RGB卷积(三维)

  • 三维输出成一维,3 * 3 * 3 = 27个数相加
  • 跑卷积神经网络对电脑要求 卷积神经网络训练时间_深度学习_04

  • 多重过滤器,过滤不同的特征(p=0,s=1)
  • 跑卷积神经网络对电脑要求 卷积神经网络训练时间_神经网络_05

单层卷积神经网络

具体做法是运用线性函数,再加上偏差,然后应用激活函数Relu最后通过神经网络的一层,把一个6x6x3的维度a[0]演化为一个4x4x2的维度a[1],这就是卷积神经网络的一层。

Practice:

跑卷积神经网络对电脑要求 卷积神经网络训练时间_卷积_06


解:

3x3x3+1(偏差b)=28

28*10=280

所以无论图片怎么变,参数始终只有280个。

Summary of notation

跑卷积神经网络对电脑要求 卷积神经网络训练时间_神经网络_07


理解某一层卷积层的工作原理就可以叠加起来理解深度卷积。

简单卷积网络示例

跑卷积神经网络对电脑要求 卷积神经网络训练时间_深度学习_08


从上示例一层一层构建卷积层,最终输出了 7 * 7 * 40 = 1960个特征,各参数在上节有说明。

跑卷积神经网络对电脑要求 卷积神经网络训练时间_cnn_09


最后是将这1960个特征平整化为一个长向量填充到softmax回归函数中 (下接全连接层,这也是学了后面才知道的)

跑卷积神经网络对电脑要求 卷积神经网络训练时间_卷积_10


卷积神经网络不仅有卷积层,还有池化层全连接层

Pooling 池化层

  • Hyperparameters: f = 2 , s = 2(常用超级参数,效果相当于高宽缩减一半)
  • 没有权重和参数,所以常常和卷积层共计一个Layer。

Max pooling

跑卷积神经网络对电脑要求 卷积神经网络训练时间_神经网络_11


依次是9、2、6、3 。

Average pooling

跑卷积神经网络对电脑要求 卷积神经网络训练时间_深度学习_12

Fully connected 全连接层

Neural network example:

跑卷积神经网络对电脑要求 卷积神经网络训练时间_跑卷积神经网络对电脑要求_13


FC3就是全连接层,因为Layer2平整化的400个神经元跟FC3中的120个神经元是全连接的,是“简单卷积网络示例”这一节中的例子的扩充

Example 试着自己算一算~~

跑卷积神经网络对电脑要求 卷积神经网络训练时间_神经网络_14

Why convolutions 为什么选用卷积

  • Parameter sharing 参数共享
    A feature detector (such as a verticaledge detector) that’s useful in one part of the image is probablyuseful in another part of the image.
    1.在输入图片的不同区域使用同样的参数以提取特征
    2.即使减少参数,也能获得相同量的输出
  • Sparsity of connections 联系稀疏性
    In each layer, each output valuedepends only on a small number of inputs.

神经网络可以通过这两种机制减少参数以预防过度拟合。

  • 此外卷积层还具有平移不变的属性,即横移几个像素点图像仍然清晰。

Gradient descent 梯度下降法

跑卷积神经网络对电脑要求 卷积神经网络训练时间_跑卷积神经网络对电脑要求_15

今天的学习就到这里啦,看完记得要复习一下,前面不少备注都是学完后面的再加上去的,温故而知新!