首发于 利用Python进行数据分析学习分享
卷积神经网络(ConvNet/CNN)介绍

卷积神经网络(ConvNet/CNN)介绍

参考(部分翻译)自:

应用场景:图像 & 视频识别,图像分析 & 图像分类,推荐系统, 自然语言处理等。

卷积神经网络(ConvNet/CNN)是一种深度学习算法,如果输入一张图像(像素本身是矩阵,可以拓展到矩阵的层面,不仅仅局限于图片),它能够为图像(矩阵)中不同的部分区分出重要的部分和不重要的部分(分配权重)。相比较其他分类任务,CNN对数据预处理的要求不是很高,只要经过足够的训练,就可以学习到图像(矩阵)中的特征。

为何CNN比前馈神经网络好?

前馈神经网络FNN,也叫深度前馈网络、多层感知机。目标是近似某个函数f *。 例如,对于分类器,y = f *(x)将输入x映射到类别y。 前馈网络定义映射y = f(x;θ),其中参数θ的值通过训练不断进行调整,使得函数更加拟合已知的结果。

前馈神经网络叫前馈的原因:数据通过输入的x在定义的网络(f)中从前往后流动。这里面没有反向的传播,输出y无需再回到模型的输入位置再进行流动。当有这种操作的时候,也就是输出y再反馈到模型变成模型的输入的时候,这个就叫做循环神经网络RNN。

(注解部分是FNN和RNN的区别,作为补充和注解部分,不关心可直接跳过)

Feedforward NN和RNN的区别:
神经网络是深度学习的核心。
FNN中没有循环,数据是从前往后在层与层之间流动的,FNN输入层接收输入,然后把输入传递给隐藏层,隐藏层进行一些的计算操作,最终把信息传递给输出层进行输出。
RNN将每一层的输入重新返回作为这一层的输入,RNN的每一层的数据信息都进行循环。除了循环的数据,同时也兼顾当下那个时刻的输入。比较容易理解的一个应用就是语音转文字。比如说翻译“我已经吃完饭了”这句语音,在进行到“吃完”以后,要进行“饭”这个字的预测,RNN同时考虑前面已经翻译完的话以及此时“饭”这个语音来进行预测。每个时间戳上,接受来自这个时间戳上的输入以及上一个时间戳上的输入。
FNN可以用来预测某种产品未来的销量,产品的期望价格或者进行图片分类。事实上任何预测连续变量的问题都可以用FNN来尝试一下。RNN的应用场景如时间序列问题,图像捕获,情感分析,机器翻译等等。

图像就是像素矩阵,可以把它拉平成为一组向量。如果把它给多层感知机进行分类不也一样吗?事实上,多层感知机对于具有像素依赖的复杂图精度几乎为0(毕竟一张图如果拉直了虽然存在左右相邻的关系,但完全忽略了上下的关系,这就是所说的像素依赖)。CNN能够捕获图像中的空间和时间依赖关系。相较于前馈神经网络,CNN涉及到的参数更少,权重得到重复使用,换句话说,CNN可以通过训练更好地理解图像的复杂性。

假设我们有一张RGB图像 [1],现在已经被分为了三个通道——红色,绿色,蓝色,再加上像素的话(假设是7680×4320,上图是4×4的),整个计算量就会很庞大了。CNN的任务就是简化计算量的,它能够将图像减少到易于处理的程度,同时不会失去图像中重要的特征(对预测任务来讲)。

卷积神经网络有输入层、卷积层、激活函数、池化层、全连接层组成。卷积层用来进行特征提取;池化层对输入的特征图进行压缩,一方面使特征图变小,简化网络计算复杂度,另一方面进行特征压缩,提取主要特征;全连接层连接所有的特征,将信息输送给分类器(如softmax分类器)。

卷积层 —— The Kernel

例如我们有一张5×5×1(1表示通道是1,不理解通道看最下面参考),上图动画中黄色的部分叫做Kernel/Filter,我们选了一个3×3×1的Kernel矩阵:

Kernel/Filter, K = 
1  0  1
0  1  0
1  0  1

这个Kernel是什么都可以自己定义。Kernel移动了9次,每次移动的步长(Stride Length)是1,每一次移动Kernel都与图像对应的部分进行矩阵的相乘。这个问题也可以拓展到三维:

Kernel/Filter从左往右、从上往下移动某个步长(也是可以自己设定步长为多少的),直到把所有原始矩阵的长、宽、高走遍。

上面这张图是三个通道的,每个通道的结果加起来作为output的一个元素。这样就把一张三通道的大图像降维到一张小图像(矩阵)了。观察到上图的矩阵边缘被加了0,这是为了让CNN捕获边缘的特征:

卷积的操作分两种,一种是降维的操作(Valid Padding),有时候也可以使得输出与输入的维度保持一致甚至变得更多(Same Padding)。

当我们将5×5×1图像扩充为6×6×1图像,然后在其上应用3×3×1的kernel时,我们发现卷积矩阵的尺寸为5×5×1。 因此为Same Padding。如果我们没有填充,并且执行相同的操作,得到的矩阵就会比原来小,此时为Valid Padding。

CNN不仅仅局限于一个卷积层,也可以有很多个卷积层。通常来讲,第一个卷积层负责捕获像矩阵边缘、颜色、梯度方向这些低级的特征,其他的卷积层负责提取更高级的特征。

池化层 —— Pooling

池化操作一般分为两种,一种是均值池化(Average Pooling),还有一种是最大池化(Max Pooling)。

同样地采用一个2×2的Filter,Max Pooling是在每一个区域中寻找最大值,这里的stride=2,最终在原特征图中提取主要特征得到右图。

Average pooling现在不怎么用了(其实就是平均池化层),方法是对每一个2*2的区域元素求和,再除以4,得到主要特征,而一般的Filter取2×2,最大取3×3,stride取2,压缩为原来的1/4.

注意:这里的pooling操作是特征图缩小,有可能影响网络的准确度,因此可以通过增加特征图的深度来弥补(这里的深度变为原来的2倍)。

卷积层和池化层的区别:

卷积层提取矩阵的特征(extract features),池化层仅仅是缩小样本(downsampling)。在卷积层中,你可以通过调整kernel/filter的步长来更改提取特征的程度。最大池化层中没有参数和权重的调整,但在卷积层中有。卷积层中的参数需要通过训练来学习,为了更好地提取特征。

(感觉还是原文说的好,贴在下面以供参考)

The major difference is a convolution filter is extracting features from the matrix of data, whereas the pooling layer is only downsampling the matrix of data.
This means that if you include a large stride in the convolution filter, you are changing the types of features you extract in the algorithm, whereas if you change it in the pooling layer, you are simply changing how much the data is downsampled.


There is no learning done in max pooling layers, no weights or parameters to update just down sampling. However in convolutional layers there are weights that are learned so it down samples the data (if no padding is used) but it also extractes learned features.
Usually both are used. A conv layer to extract features and a max pool to downsample and reduce the size of data.


分类

经过卷积层和池化层,需要对信息使用全连接层进行分类。如果数据是3D的,可以在python中使用flatten函数,将三维体积排列成一维向量。全连接层中的神经元与前一层中的所有激活单元完全连接,该部分与常规神经网络相同。

参考

  1. ^RGB色彩模式是工业界的一种颜色标准,是通过对红(R)、绿(G)、蓝(B)三个颜色通道的变化以及它们相互之间的叠加来得到各式各样的颜色的,RGB即是代表红、绿、蓝三个通道的颜色,这个标准几乎包括了人类视力所能感知的所有颜色,是目前运用最广的颜色系统之一。  https://baike.baidu.com/item/RGB/342517?fr=aladdin

玻璃钢生产厂家拉萨玻璃钢天花吊顶价格淮南玻璃钢动物雕塑定做泰安玻璃钢树池公司合肥玻璃钢装饰哪家好庆阳玻璃钢花坛批发滨州玻璃钢设备外壳定做河南玻璃钢坐凳厂家直销郑州玻璃钢装饰造型哪家好海口玻璃钢公仔雕塑定制宁波玻璃钢价格聊城玻璃钢花盆多少钱石家庄玻璃钢产品多少钱沈阳玻璃钢装饰公司哈密商业美陈加工深圳玻璃钢花箱厂家怀化玻璃钢公仔雕塑多少钱遂宁玻璃钢摆件多少钱吉安玻璃钢餐桌椅制作邯郸玻璃钢餐桌椅哪家好林芝玻璃钢前台临沂玻璃钢设备外壳定做江西玻璃钢天花吊顶哪家好承德玻璃钢休闲椅加工哈尔滨玻璃钢景观雕塑厂家直销临汾玻璃钢餐桌椅制作白山玻璃钢外壳批发铁岭玻璃钢花盆多少钱通化玻璃钢花钵厂家昭通玻璃钢天花吊顶厂家直销铜陵玻璃钢垃圾桶厂家香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化