网站首页 > 技术文章 正文
一、前言
本文分析了全连接层存在的局限性,然后引出卷积的思想方法,介绍了如何进行卷积、池化计算,提取特征。学习了卷积神经网络,就可以用神经网络高效地进行图像处理,比如说用于人脸识别、图片清晰化、风格迁移等。
卷积神经网络(Convolutional Neural Networks,CNN)主要包含以下结构:
- 卷积层( Conv) – 用于保留图片特征
- 池化层(POOL) – 用于数据降维,减少输入维度,避免过拟合
- 全连接层(FC) – 根据不同任务输出我们想要的结果
二、全连接层的局限性
在之前介绍的神经网络中,相邻层的所有神经元之间都有连接,这称为全
连接(fully-connected)。全连接层(Affine层)存在局限性,就拿图片识别的例子来说,存在一些问题。
1.2 丢失了空间特征信息
比如说,图片中的一个物品,其轮廓是连续的,而且平移、缩放、旋转等操作不影响其语义信息。图像通常含有宽、高、通道方向上的3维形状,而全连接层把这些输入全部作为一维信息处理,会忽视这种空间特征。
三、卷积层
卷积层(Convolutional layers)进行的处理就是卷积运算,相当于图像处理中的“滤波器运算”。
3.1 如何进行卷积运算?
我们来看一个具体的例子:
输入数据经过滤波器转换,得到了另一个矩阵。滤波器在一些文献中也叫“核”、“卷积核”。
下面是步长为1的卷积运算过程:
15=1×2+2×0+3×1+0×0+1×1+2×2+3×1+0×0+1×1
每次移动一个像素,同理:
下面这张动态图更加形象,这也是步长为1的卷积运算(右移和下移都是1个像素):
如果步长为n,那么右移或下移时移动n个像素。
3.2 偏置
下面这张图很形象地说明了如何添加偏置,不再多说:
3.3 填充
上面的图中,每次进行卷积运算都会导致输出矩阵变小,经过多次卷积运算后可能导致矩阵大小为1×1,无法再进行卷积计算。为了避免这种情况,我们可以对输入矩阵进行填充(padding),如下图,输入大小为4×4,进行幅度为1像素的0填充,再卷积,输出大小保持不变。
3.4 步长
滤波器每次卷积移动的长度称为步长(stride)。
假设输入大小为(H, W),填充为P,滤波器大小为(FH, FW),步幅为S,输出大小为(OH, OW),那么:
3.5 卷积运算是如何保留图片特征的?
1981 年的诺贝尔医学奖,颁发给了 David Hubel(出生于加拿大的美国神经生物学家) 和TorstenWiesel,以及 Roger Sperry。前两位的主要贡献,是“发现了视觉系统的信息处理”,可视皮层是分级的。
人类的视觉原理如下:从原始信号摄入开始(瞳孔摄入像素 Pixels),接着做初步处理(大脑皮层某些细胞发现边缘和方向),然后抽象(大脑判定,眼前的物体的形状,是圆形的),然后进一步抽象(大脑进一步判定该物体是只气球)。下面是人脑进行人脸识别的一个示例:
卷积运算可以通过设置不同矩阵的滤波器,将边缘特征保留。
如下图(Excel倾情制作 ),经过特殊矩阵的滤波器卷积后,垂直边缘特征被保留了下来:
3.6 三维卷积
RGB彩色图片有三个通道,你可以把它想象成三张图片的堆叠。那么我们的过滤器也要有三层,对应红绿蓝三个通道。
有多个通道时,分别按通道对输入数据进行卷积运算,并将结果相加,从而得到输出。如下图所示:
为什么是相加呢?我们可以想象一下,把这个图像矩阵数据看成是一个4×4×3的大立方体,而过滤器是一个3×3×3的小立体,小立方体在大立方体中,移动一下就做一次卷积运算,把三维空间里对应的值相乘再相加。
3.7 多种特征提取
上面用一个卷积核提取的是某一类特征,比如说垂直边缘,现在我们还想提取水平边缘等多种特征(可能几百个不同特征),怎么处理呢?
添加不同特征算子的过滤器就行了,如下图所示:
这里有2个3通道的滤波器,得到了2个4×4的矩阵。接下来可以加上偏置然后用Relu激活函数进行计算。
四、池化层
池化层(Pooling layers)可以极大地降低数据维度。其过程如下:
上图中,原始图片为20×20,采样窗口为10×10,步长为10,最终将其采样成为一个2×2大小的特征图。(一般而言,步长与窗口大小一致)
下图展示的是Max池化过程,即在目标区域内选取最大值作为该窗口输出:
除了Max池化,还有Average池化等。Average池化则是计算目标区域的平均值。在图像识别领域,主要使用Max池化。
五、全连接层
假设有2个滤波器,图片经过卷积和池化处理后,得到2个2×2的矩阵。我们将其展开成长度为8的一维数组,作为全连接层的输入数据,接下来我们激活函数是使用sigmoid还是softmax,取决于我们的任务类型,是想识图片上有没有猫,还是想识别种不同对象中的一种。
六、参考资料
《AndrewNG深度学习视频》
《AndrewNG深度学习笔记V5.61—黄海广》
《深度学习入门:基于Python的理论与实现》
《卷积神经网络 – CNN》
猜你喜欢
- 2024-10-24 Inception - Inception具有多尺度卷积的深度卷积神经网络
- 2024-10-24 深度学习7. 卷积的概念 卷积的基本原理
- 2024-10-24 我国人工智能新突破!安翰科技研发的深度卷积神经网络模型取得突破性进展 诊断小肠疾病敏感率高达99.9%
- 2024-10-24 【深度学习】7大类卷积神经网络(CNN)创新综述
- 2024-10-24 深度学习前沿:一文看懂近年来卷积神经网络性能优化历程
- 2024-10-24 卷积神经网络:解码深度学习的密码,你了解多少?
- 2024-10-24 深度解析卷积:从原理到应用 卷积通俗易懂
- 2024-10-24 处理更大尺寸图像的方法!在深度卷积生成对抗网络中的实践
- 2024-10-24 如何理解深度可分离卷积Depthwise Separable Convolution
- 2024-10-24 【博士论文】深度卷积神经网络架构设计及优化问题研究
你 发表评论:
欢迎- 最近发表
-
- 吴谨言专访大反转!痛批耍大牌后竟翻红,六公主七连发力显真诚
- 港股2月28日物业股涨幅榜:CHINAOVSPPT涨1.72%位居首位
- 港股2月28日物业股午盘:CHINAOVSPPT涨1.72%位居首位
- 港股3月2日物业股涨幅榜:CHINAOVSPPT涨1.03%位居首位
- 港股3月2日物业股午盘:CHINAOVSPPT涨1.03%
- 天赋与心痛的背后:邓鸣贺成长悲剧引发的深刻反思
- 冯小刚女儿徐朵追星范丞丞 同框合照曝光惹人羡,回应网友尽显亲民
- “资本大佬”王冉:51岁娶小17岁童瑶,并承诺余生为娇妻保驾护航
- 港股3月2日物业股午盘:CHINAOVSPPT涨1.03%位居首位
- 「IT之家开箱」vivo S15 图赏:双镜云窗,盛夏风光
- 标签列表
-
- oraclesql优化 (66)
- 类的加载机制 (75)
- feignclient (62)
- 一致性hash算法 (71)
- dockfile (66)
- 锁机制 (57)
- javaresponse (60)
- 查看hive版本 (59)
- phpworkerman (57)
- spark算子 (58)
- vue双向绑定的原理 (68)
- springbootget请求 (58)
- docker网络三种模式 (67)
- spring控制反转 (71)
- data:image/jpeg (69)
- base64 (69)
- java分页 (64)
- kibanadocker (60)
- qabstracttablemodel (62)
- java生成pdf文件 (69)
- deletelater (62)
- com.aspose.words (58)
- android.mk (62)
- qopengl (73)
- epoch_millis (61)
本文暂时没有评论,来添加一个吧(●'◡'●)