本课主要讲解了卷积神经网络的基础知识,包括卷积层基础(卷积核、Padding、Stride),卷积神经网络的基础:卷积层、池化层、全连接层。
主要知识点
- 卷积核: 过滤器,各元素相乘再相加
- nxn * fxf -> (n-f+1)x(n-f+1)
- Padding: nxn * fxf –> (n+2p-f+1)x(n+2p-f+1)
- Stride: nxn * fxf –> ((n+2p-f)/s+1)x((n+2p-f)/s+1)
- 立体卷积:nxnxc: 原图像与卷积核渠道深度一致,立体各项乘积相加,卷积得平面
- 多核卷积:多个卷积核卷积后得多个平面,拼成一个立体
- 卷积层相当于全连接中的 Wx+b
- 卷积层:卷积核是一个立体块
- 池化层:每个通道单独池化,常见的有max,avg等
- 全连接层
1.1 计算机视觉
计算机视觉(Computer Vision)包含很多不同类别的问题,如图片分类、目标检测、图片风格迁移等等。
对于小尺寸的图片,例如 64 * 64, 我们输入数据的维度为 64 * 64 * 3 = 12288,可以用全连接神经网络进行学习。
对于稍大的图片,例如 1000 * 1000, 输入数据的维度1000 * 1000 * 3 = 3000000, 如果第一个隐藏层有1000个节点,则 W 矩阵是(1000, 3000000)的维度,需要学习的参数相当多;如此数据量对内存也造成极大的压力,这个时候全连接的神经网络就不再适合了。
卷积神经网络在计算机视觉问题上是一个非常好的网络结构。
1.2 边缘检测示例
卷积运算是将图片通过卷积核运算识别出另一张图片的过程,是卷积神经网络的基本组成部分。
边缘检测就是检测出图片的边缘来突出显示,而非边缘的地方都不突出显示。
在下面的图中,分别通过垂直边缘检测和水平边缘检测得到不同的结果:
垂直边缘检测
假设对于一个 6×6 大小的灰度图片(6x6x1),以及一个 3×3 大小的 filter(卷积核) 进行卷积运算,以“∗”符号表示。图片和垂直边缘检测器分别如左和中矩阵所示: