查看原文
其他

10分钟理解深度学习中的~卷积~

大邓 大邓和他的Python 2019-04-26


今年来深度学习中的卷积神经网络(上图是一个卷积神经网络形态)技术开始显现威力,通过简单的几行代码就能实现对图片、视频等信息的处理、学习和预测。

然而,理解卷积神经网络,特别是对于第一次接触深度学习领域的人而言,太多玄而又玄的词语,如卷积Convolution、卷积核Kernel、通道channels,搞的大家晕头转向,不知所错。不过卷积Convolution拥有十分强大的特征提取功能和高度可扩展性,在本文中我们将剖析其内部作用机制。

二维卷积2D Convolutions

讲解卷积,最直观的是对图片进行卷积,尤其是单通道(比如黑白图片是单通道,而彩色图片一般是三通道)的图片。这样的图片也就是2维数据,下面的动画就是对一张图片进行卷积操作

其中移动的小方框是卷积核, 卷积核相当于权重矩阵,如下图所示

我们选取动画中的第一帧,详解数据之间的关系,我们发现卷积核移动过程中与其对应位置的数字相乘累加得到右侧图中的数字。

因此我们可以形象的将卷积分别理解为:大家可以理解成移动,可以理解成相乘累加。

经常使用的操作

填充操作

上面的卷积操作,得到的新图片尺寸变小。有时候为了让卷积后的图片尺寸不变,需要使用`填充操作padding。例如在原始图片外围填充一圈0,最终通过卷积得到的新图片尺寸不变。

步长striding

比如我们移动卷积核的跨度变大,例如从1变成2,请看下图

多通道

我们都知道屏幕是由图片有三元色,通过三种颜色就能组成五彩斑斓的颜色。而彩色图片只需要红、绿、蓝三种元色图片(三通道)组成的。如下图

而更多的情况是由多种通道组成的,如下图

注意对单通道数据进行卷积使用的是一个卷积核。但是当对多通道数据进行卷积使用的是多个卷积核,这些卷积核彼此是不同的,所以每个通道得到的新特征矩阵也是各不相同。

每个通道产生每个通道的一个版本,并且过滤器filter作为整体产生一个总特征矩阵

前面的所有的过程我们可以理解为Y = AX + b当中的AX,即对于输入的数据X进行线性变换得到AX

但是为了保证AXY相匹配(对应),还需要残差项b。如下图

局部性Locality

在本文的前半部分,我们讨论过:

  • 卷积核kernel综合提炼了来自局部位置的像素信息,并输出卷积后的特征矩阵。

  • 卷积核是作用于整张图片的,在对一张图片每个局部位置进行扫描移动的过程中,卷积核是不变的。

刚刚我们出现了扫描这个词,比如我们对一张大头照进行扫描,使用不同尺寸的卷积核扫描出的信息是不同的。卷积核从小到大,可能依次扫描出的东西是 线条、鼻子、脸部、头, 鼻子是由各种线条组成的。而脸部包含鼻子头部包含脸部

图片中的像素是有序出现的,比如相邻的两个像素往往颜色相近或相同。如果相邻像素存在差异,那么这作为异常就可以转换为特征。这种思路也是早期电脑视觉处理中常用的特征提取方法。例如,对于边界检测edge detection,我们可以使用Sobel边界检测滤波器(Sobel edge detection filter),这是一种卷积核参数,对单通道数据进行卷积。如下图

上图就是使用Sobel这种卷积核处理后的结果,边缘位置都是灰色,而非边缘位置的像素全部变为0,即白色。因此,Sobel卷积核能很好抽取出图片中的边界信息。

既然 卷积核 这么神奇,那么 卷积核的参数 是否可以学习?

答案是可以的,卷积神经网络的强大之处就在于可以从不同层面上对数据进行特征抽取。

对于在原始像素上操作的 早期层 ,我们可以合理地期望具有相当低级别特征的 特征检测器 ,例如 边缘 ,线 等。

我们看一个特征可视化的例子, 卷积核 识别出的特征按照层次从低到高依次是 边、纹理、模式、局部、个体对象

往期文章

《用Python做文本分析》视频教程  

100G Python学习资料(免费下载)

100G 文本分析语料资源(免费下载)    

typing库:让你的代码阅读者再也不用猜猜猜  

Seaborn官方教程中文教程(一)

数据清洗 常用正则表达式大全

大邓强力推荐-jupyter notebook使用小技巧  

PySimpleGUI: 开发自己第一个软件

深度特征合成:自动生成机器学习中的特征

Python 3.7中dataclass的终极指南(一) 

Python 3.7中dataclass的终极指南(二) 

2017年度15个最好的数据科学领域Python库    

使用Pandas更好的做数据科学

[计算消费者的偏好]推荐系统与协同过滤、奇异值分解

机器学习: 识别图片中的数字

应用PCA降维加速模型训练

如何从文本中提取特征信息?

使用sklearn做自然语言处理-1 

使用sklearn做自然语言处理-2

机器学习|八大步骤解决90%的NLP问题    

Python圈中的符号计算库-Sympy

Python中处理日期时间库的使用方法 

【视频讲解】Scrapy递归抓取简书用户信息

美团商家信息采集神器 

用chardect库解决网页乱码问题 



感兴趣不要错过哦!原价499元,现在拼团只需68


    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存