卷积神经网络之卷积操作

深度学习是一个目前非常火热的机器学习分支,而卷积神经网络(CNN)就是深度学习的一个代表性算法。CNN主要用来解决图像相关的问题,目前,单张图片的识别问题已基本被攻克,CNN的下一个战场将是视频识别。

那么为什么卷积神经网络在图片任务上表现这么好呢?一大原因就是其中的卷积操作。那么什么是卷积操作呢?

卷积这一概念来源于物理领域,但在图像领域又有所不同。在图像处理中,卷积操作就是使用一个滑动窗口,在图像上从上到下,从左到右滑动,并对窗口里的像素进行加权平均。每滑动一下,就得出一个加权平均的结果,因此滑动的结果也是一个二维数组。

下面是一个图示。

二维图像上的卷积操作

上图中,Input为一个二维的3*4的图像(当然实际图像不会这么小,例如ImageNet上面的图像是224*224的),而Kernel称为卷积核,也就是上面提到的滑动窗口,此处是一个2*2的卷积核,它里面包含了4个实数,表示四个位置上的权重,用来对窗口里的像素进行加权平均。Output表示卷积操作之后的结果,这个窗口经过从上到下从左到右的滑动之后,得到了6个加权平均结果,构成了一个2*3的二维数组。

上面的例子是黑白图像的例子,那么彩色图像如何进行卷积呢?我们知道,彩色图像有三个颜色通道:红绿蓝,通常,在卷积神经网络中,是对这三个通道分别进行卷积操作的,而且各通道之间的卷积核也各不相同。

卷积操作有什么好处呢?

首先,卷积操作可以模拟图像里面的各种算子,例如边缘检测、锐化、模糊算子等,这些算子之间的区别只在于卷积核的不同,操作是一样的。而且在卷积神经网络中,卷积核是算法从数据中学习出来的,因此具有很大的自由度,不再需要人工的设计图像算子,因此CNN算法相当强大。

下面是一些图像算子的卷积核,详细信息可以参见 https://en.wikipedia.org/wiki/Kernel_(image_processing)。

其次,卷积操作大大地降低了参数数量,从而可以避免过拟合问题。在神经网络中,待学习的参数往往数量十分庞大,因此十分容易就“记住”了训练数据,而在测试数据上表现很差,也就是说,发生了过拟合。而卷积操作中,只需要学习卷积核,而卷积核往往很小(通常在5*5以内),因此参数的数量也很小,这就可以有效的避免过拟合。

三维卷积

以上是针对单张图片的卷积操作,那么对于视频,又该如何进行卷积呢?

3D卷积图示

单张图片的输入是一个二维数组,而视频的输入就是一串二维数组,这些二维数组就组成了一个三维立方体,而相应的卷积核也扩展为三维,这样,可以自然地将卷积操作扩展到三维。在进行滑动时,就是从左到右、从上到下、从前到后了。

本文来自企鹅号 - 人工智能技术媒体

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏weixuqin 的专栏

深度学习之 TensorFlow(四):卷积神经网络

1523
来自专栏磐创AI技术团队的专栏

深度学习之视频人脸识别系列二:人脸检测与对齐

人脸检测解决的问题为给定一张图片,输出图片中人脸的位置,即使用方框框住人脸,输出方框的左上角坐标和右下角坐标或者左上角坐标和长宽。算法难点包括:人脸大小差异、人...

2732
来自专栏老秦求学

决策树(ID3,C4.5,CART)原理以及实现

决策树是一种基本的分类和回归方法.决策树顾名思义,模型可以表示为树型结构,可以认为是if-then的集合,也可以认为是定义在特征空间与类空间上的条件概率分布.

1691
来自专栏weixuqin 的专栏

深度学习之 TensorFlow(四):卷积神经网络

3667
来自专栏奇点大数据

卷积神经网络对图片分类-下

接上篇:卷积神经网络对图片分类-中 9 ReLU(Rectified Linear Units) Layers 在每个卷积层之后,会马上进入一个激励层,调用一种...

30012
来自专栏深度学习计算机视觉

BP神经网络总结笔记

概念背景(来自百度百科) BP神经网络的代表者是D.Rumelhart和J.McCelland,“反向传播(backpropagation)”一词的使用出现在1...

2823
来自专栏梦里茶室

读论文系列:Object Detection NIPS2015 Faster RCNN

转载请注明作者:梦里茶 Faster RCNN在Fast RCNN上更进一步,将Region Proposal也用神经网络来做,如果说Fast RCNN的最大...

3228
来自专栏SIGAI学习与实践平台

理解Spatial Transformer Networks

随着深度学习的不断发展,卷积神经网络(CNN)作为计算机视觉领域的杀手锏,在几乎所有视觉相关任务中都展现出了超越传统机器学习算法甚至超越人类的能力。一系列CNN...

1545
来自专栏红色石头的机器学习之路

matlab svmtrain和svmclassify函数使用示例

监督式学习(Supervised Learning)常用算法包括:线性回归(Linear Regression)、逻辑回归(Logistic Regressio...

7440
来自专栏杨熹的专栏

为什么要用交叉验证

本文结构: 什么是交叉验证法? 为什么用交叉验证法? 主要有哪些方法?优缺点? 各方法应用举例? ---- 什么是交叉验证法? 它的基本思想就是将原始数据(da...

5174

扫码关注云+社区

领取腾讯云代金券