首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

卷积神经网络之卷积操作

深度学习是一个目前非常火热的机器学习分支,而卷积神经网络(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卷积图示

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

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20171228A11YSL00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券