加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

这一次,让我们聊聊卷积神经网络

(2017-06-10 11:09:20)
标签:

人工智能

it

分类: 金融科技

除了将人工神经网络看作特殊有向图外,还可以把它视为函数变换y=G(x)x是你的输入y就是神经网络分类后的输出,神经网络的目的是为了分类,通过调整函数G中的各个参数减少实际与预期输出结果之间的误差以训练神经网络。可以形象的把构造神经网络当成设计一台带有可调节旋钮(即调节参数)的机器,选取一个训练样本,经机器运行之后,测量误差;然后找出需要调整哪个方向的旋钮以降低误差;这样重复使用所有训练样本来进行操作,直到旋钮稳定下来,这台机器就准备就绪可以真正工作了。

 但神经网络的问题在于,某一层的所有数据会毫无保留的传递到下一层,而且所有层都是这样。对于图像处理来说,往往把图像表示为像素的向量,比如一个1000×1000的图像,可以表示为一个10^6的向量。如果隐含层数目与输入层一样,即也是10^6时,那么输入层到隐含层的参数数据就为10^6×10^6=10^12,这样参数就太多了,基本没法训练。1998年,严恩·乐库(Yann LeCun)等提出的卷积神经网络(Convolutional Neural Network,简称ConvNet或CNN)解决了这个问题,其成功的关键在于它所采用的局部连接和分享权值的方式,降低了参数的数目,在图像处理方面有着独特的优越性,其布局更接近于实际的生物神经网络。

 事实上,图像是深度学习最早尝试的领域,为什么图像处理中CNN这么有用呢?除了降低参数数目外,还因为基于CNN的特征提取,避免了对图像的复杂前期预处理,可以直接输入原始图像。基于CNN的特征提取,正在代替计算机视觉领域10多年来积累的各种特殊模型和技巧,成为该领域事实上的标准预处理方法。以前,特征由人工设计,这不仅工作繁重,而且难度很大,因为对每种数据每类问题,有用的特征都不尽相同:图像类任务的特征可能对时序类任务不起作用;即使两个任务都是图像类的,也很难找出相同的有效特征,因为待识别的物体的不同,有用的特征也不同,这非常依赖经验。现在,我们可以通过CNN轻松地实现这项处理,避免了特征提取和分类过程中数据重建的复杂度。

 CNN是一种带有卷积结构的深度神经网络,通常至少有两个非线性可训练的卷积层(Convolution Layer),两个非线性的固定卷积层(又叫池化层,Pooling Layer)和一个全连接层,一共至少5个隐含层。在最初的卷积层中,成千上万的神经元充当第一组过滤器,搜寻图像中的每个部分和像素,找出模式(Pattern)。随着越来越多的图像被处理,每个过滤器学习过滤特定的特征,这提高了准确性。比如图像是苹果,一个过滤器可能专注于发现“红色”这一颜色,而另一个过滤器可能会寻找圆形边缘,另一个过滤器则会识别细细的茎。这些过滤器也称卷积核(Convolution Kernel),它们纯粹是通过查看数据来学习和自我完善特征,自动找出任务中最适合的特征。通过将图像分解成不同的特征,卷积层把一切按不同主题分类,让你从多个角度分析图像。

 

http://mmbiz.qpic.cn/mmbiz_png/yz1j6Vadibv96GN4rFAMxJyp94TxIl3EP33SB9E8MWaNoCOXibfUVhSWv2OriaC00E1FeOTgaH1BLEribzIqZicCOgw/640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=1


 卷积神经网络本质上就是两个操作:卷积操作和池化操作。下面我先给大家讲讲什么是卷积操作,你可以把卷积想象成一种混合信息的手段。想象有两个装满信息的桶:第一桶是输入的图像,由三个矩阵构成——RGB 三通道,其中每个元素都是 0 到 255 之间的一个整数。第二个桶是卷积核,单个浮点数矩阵。将卷积核的大小和模式想象成一个搅拌图像的方法,用它到第一个桶中搅拌混合,输出一幅修改后的图像,在深度学习中经常被称作特征图(feature map)。对每个颜色通道都有一个特征图。具体来说,卷积操作就是从输入图片中取出一个与卷积核大小相同的区块——这里假设图片为6×6,卷积核大小为3×3,那么我们取出的区块大小就是3×3——然后对每对相同位置的元素执行乘法后求和(不同于矩阵乘法,却类似向量内积,这里是两个相同大小的矩阵的「点乘」)。乘积的和就生成了特征图中的一个像素。当一个像素计算完毕后,移动一个像素取下一个区块执行相同的运算。当无法再移动取得新区块时,对特征图的计算就结束了。简而言之,卷积就是一种数学运算,类似向量内积,是两个相同大小的矩阵的「点乘」,这种运算有助于简化更复杂的表达式。

 

http://mmbiz.qpic.cn/mmbiz_png/yz1j6Vadibv96GN4rFAMxJyp94TxIl3EP9wgVcdNhZwR5pej7EChyibU7128u3iaM1VYFnM2A2E1g37D3LNnO0zhA/640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=1

http://mmbiz.qpic.cn/mmbiz_png/yz1j6Vadibv96GN4rFAMxJyp94TxIl3EPwtAjCl0IVZb9aUcf0ZdicKCWlXrDibeTZJoicQU3GbAkFIq0ATWaxjkrA/640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=1

 

 接下来讲一下池化操作。池化层(Pooling layer)一般在卷积层后面(卷积层对应上面的隐藏层),该层的目的是为了简化卷积层的训练输出数据。如上所述整个图像的这种“卷积”会产生大量的信息,这可能会很快成为一个计算噩梦。进入池化层,可将其全部缩小成更通用和可处理的形式。我们可运用的池化技术有很多,其中最受欢迎的是“最大池”(Maxpooling),池化层的每一个神经元的值对应卷积层的2*2的区域的最大输出值。它将每个特征图编辑成自己的“读者文摘”版本,因此只有红色、茎、或者曲线的最好样本被表征出来。

 

http://mmbiz.qpic.cn/mmbiz_png/yz1j6Vadibv96GN4rFAMxJyp94TxIl3EPlJU6CMakfiagqxg11iauVLOCqgZdmzwy20HgJEibcw5ouQu9IzEic0CjAw/640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=1

 

http://mmbiz.qpic.cn/mmbiz_png/yz1j6Vadibv96GN4rFAMxJyp94TxIl3EPIelt0huib2DibpCKrc9vFPs73oiaulVUM7uR8FKJtu3ibYibCVNX3j8ZSfg/640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=1

 神经网络的设计师可以堆叠卷积层和池化层,也就是说,卷积+池化操作可以重复多次,每做一次卷积+池化操作,图像被过滤一次,获得的信息级别就更高。图像被一遍一遍过滤,还是拿苹果来举例子,初始图像仅显示边缘的几乎不可辨别的部分,比如红色的一部分或仅仅是茎的尖端,而最后的图像将显示整个苹果。这符合人类视觉分层的理论,根据深度学习关于人的视觉分层的理论,人的视觉对目标的辨识是分层的,低层会提取一些边缘特征,然后高一些层次进行形状或目标的认知,更高层的会分析一些运动和行为。也就是说高层的特征是低层特征的组合,从低层到高层的特征表示越来越抽象,越来越能表现语义或者意图。而抽象层面越高,存在的可能猜测就越少,就越利于分类。最后,在完全连接层中,每个“池化的”特征图“完全连接”到表征了神经网络正在学习识别的事物的输出节点上,得到输出结果。这就是CNN的基本原理,你明白了吗?

 

http://mmbiz.qpic.cn/mmbiz_png/yz1j6Vadibv96GN4rFAMxJyp94TxIl3EP33SB9E8MWaNoCOXibfUVhSWv2OriaC00E1FeOTgaH1BLEribzIqZicCOgw/640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=1

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有