共计 3050 个字符,预计需要花费 8 分钟才能阅读完成。
文章和代码曾经归档至【Github 仓库:https://github.com/timerring/dive-into-AI】或者公众号【AIShareLab】回复 神经网络根底 也可获取。
CNN
卷积神经网络发展史
卷积神经网络(convolutional neural networks, CNN )
CNN 是针对图像畛域工作提出的神经网络,经验数代人的倒退,在 2012 年之后大部分图像工作被 CNN 统治,例如图像分类,图像宰割,指标检测,图像检索等。
CNN 构造受视觉零碎启发 :1962 年,生物学家 Torsten WieseI 和 David H. Hubel(1981 年的诺贝尔医学奖)对猫的视觉零碎进行钻研,首次发现猫的视觉零碎中存在 层级机构,并且发现了两种重要的细胞 simple cells 和 compIex cells,不同类型细胞承当不同抽象层次的视觉感知性能。
猫的视觉零碎试验
- 在猫脑上关上 3mm, 插入电极
- 让猫看各种形态、地位、亮度和静止的光条
- 察看大脑视觉神经元激活状况
神经元存在部分感触区域 (receptive field),也称 感触野
细胞感触区域存在差别:如 C 细胞和 D 细胞相同(图中 X 示意有响应,三角示意无响应)
细胞对角度有选择性。如图所示的该细胞对垂直光条响应最强。
细胞对静止方向有选择性(如图,a 种形式感应更加强烈)
对 CNN 启发:
- 视觉零碎是分层、分级的进行解决,从低级到高级的形象过 $\to$ 类比重叠应用卷积和池化
- 神经元实际上是存在部分的感触区域的,具体来说,它们是部分敏感 $\to$ 类比神经元部分连贯
第一个卷积神经网络雏形——新认知机(Neocognitron)
1980 年,日本学者福岛邦彦(Kunihiko Fukushima) 借鉴猫视觉零碎试验论断,提出具备层级构造的神经网络一一新认知机,重叠应用相似于 S 细胞和 C 细胞的两个构造。S 细胞和 C 细胞可类比古代 CNN 的卷积和池化。
毛病:没有反向流传算法更新权值,模型性能无限。
福岛邦彦主页:http://personalpage.flsi.or.jp/fukushima/index-e.html
第一个大规模商用卷积神经网络——Lenet-5
1989 年,Lecun 等人已开始钻研 Lenet;1998 年,Lecun 等人提出 Lenet-5,并胜利在美国邮政零碎中大规模利用于手写邮政编码辨认
毛病:无大量数据和高性能计算资源
第一个技惊四座的卷积神经网络——AlexNet
2012 年,AlexNet 以超出第二名 10.9 个百分点的问题夺得 ILSVRC 分类工作冠军,从此拉开卷积神经网络告诉图像畛域尾声。
- 算料:ImageNet
- 算力:GPU(GTX580 * 2)
- 算法:AlexNet
卷积操作
卷积层(Convolutional Layer)
图像识别特点:
- 特色具备局部性:例如老虎重要特色“王字”仅呈现在头部区域 —— 卷积核每次仅连贯 K * K 区域,K* K 是卷积核尺寸;
- 特色可能呈现在任何地位——卷积核参数重复使用(参数共享),在图像上滑动(示例图像起源:https://github.com/vdumoulin/conv_arithmetic)
0×0+1×1+3×2+4×3 =19
- 下采样图像,不会扭转图像指标
卷积核
卷积核 :具可学习参数的算子,用于对输出图像进行 特征提取 ,输入通常称为 特色图(feature maps)。
具体的过程能够依据理论状况模仿以下,例如第一个边缘检测的卷积核,如果一个像素差异不大的图像,通过该卷积核卷积过程后,大概率是两头的 8 份额减去旁边的 8 个 1 份额,最初为 0,显示为彩色。如果存在边缘非常明显的局部,通过缩小之后数值依然较大,显示为红色,因而能够造成边缘的轮廓。
2012 年 AlexNet 网络第一个卷积层卷积核可视化,卷积核出现边缘、频率和色调上的特色模式。
填充 (Padding):在输出图像的四周增加额定的行 / 列
作用:
- 使卷积后 图像分辨率不变,不便计算特色图尺寸的变动
- 补救边界信息“失落 ”
步幅(Stride):卷积核滑动的行数和列数称为步幅,管制输入特色图的大小,会被放大 1 / s 倍。
卷积会向下取整,到边界不满足信息的话,会向下取整。(即便存在边缘信息,然而如果不满足步幅,也会舍弃)
输入特色图尺寸计算:
$$
\mathrm{F}_{\mathrm{o}}=\left[\frac{\mathrm{F}_{\text {in}}-\mathrm{k}+2 \mathrm{p}}{\mathrm{s}}\right]+1
$$
$$
\frac{[4-3+2 * 0]}{1}+1=2
$$$$
\frac{[6-3+2 * 1]}{2}+1=3
$$$$
\frac{[5-3+2 * 1]}{1}+1=5
$$
多通道卷积:RGB 图像是 3 *h* w 的三维的数据,第一个维度 3,示意 channel,通道数
一个卷积核是 3 - D 张量,第一个维与输出通道无关
注:卷积核尺寸通常指高、宽
如上,卷积核的规模为 2x3x3x3。实质上还是一个二维卷积。
池化操作
图像识别特点
- 下采样图像,不会扭转图像指标——升高计算量,缩小特色冗余
池化:一个像素 示意 一块区域 的像素值,升高图像分辨率
一块区域像素如何被一个像素代替:
- 办法 1: Max Pooling,取最大值
- 办法 2: Average Pooling,取平均值
当初的模型中很多都不太用池化操作,而采纳一个步长为 2 的卷积代替池化,通过它也能够实现升高图像的分辨率。(池化也能够了解为一种非凡的卷积,例如能够将 Max pooling 了解为一个最大值权值为 1,其余权值为 0 的卷积核,将 Average Pooling 了解为一个均匀权值的卷积核)。
因而输入尺寸计算与卷积操作相似:(留神:池化层无可学习参数)
$$
\mathrm{F}_{\mathrm{o}}=\left\lfloor\frac{\mathrm{F}_{\text {in}}-\mathrm{k}+2 \mathrm{p}}{\mathrm{s}}\right\rfloor+1
$$
池化作用:
缓解卷积层对地位的适度敏感
第一行为原矩阵,第二行为卷积后的矩阵,第三行为池化后的矩阵。左右比照可知,增加扰动后卷积后果受到影响,然而池化后果并未受到影响。参考:https://zhuanlan.zhihu.com/p/103350961
- 缩小冗余
- 升高图像分辨率,从而缩小参数量
Lenet- 5 及 CNN 构造进化史
1998-Lecun-Gradient-Based Learning Applied to Document Recognition
特征提取器:C1、S2、C3、S4
- C1 层:卷积核 K1=(6, 1, 5, 5), p=1, s=1,output=(6, 28, 28)
- S2 层:最大池化层,池化窗口 =(2,2),s=2,output=(6, 14, 14)
- C3 层:卷积核 K3=(16, 6, 5, 5), p=1, s=1,output=(16, 10, 10)
- S4 层:最大池化层,池化窗口 =(2,2),s=2,output=(16, 5, 5)
分类器:3 个 FC 层
- FC 层:3 个 FC 层输入分类
CNN 进化史
- 1980 Neocognition 福岛邦彦
- 1998 Lenet-5 Lecun
- 2012 AlexNet Alex
- 2014 GoogLenet Google
- 2014 VGG-Net VGG
- 2015 ResNet Kaiming He
- 2017 DenseNet Gao Huang
- 2017 SE-Net Jie Hu
参考
所有卷积示例图像的起源:https://github.com/vdumoulin/conv_arithmetic