零基础入门直观形象理解卷积神经网络

1.卷积神经网络与经典神经网络的区别:

  • 全连接层在卷积神经网络中作分类器使用
  • 卷积神经网络包含了一个卷积层和子采样层构成的特征提取器

每个图像都是一系列特定排序的像素,如果改变像素的颜色或顺序,图像也会随之改变。

2.为何要要引入卷积神经网络?

经典神经网络是全连接模式,使用经典神经网络遇到的最大问题就是参数太多,以MNIST数据集为例,MNIST数据集每一张图片是1*28*28,图片大小是28*28,1*表示单通道也就是黑白图像,假设第一层隐藏节点有500个,那么单层全连接层的参数就有500*28*28,而且如果图图片是三通道的彩色图片的话,参数会更多。参数增多会导致计算速度变慢,很可能导致过拟合的问题

而卷积神经网络是局部连接模式,可以有效减少神经网络中的参数,从而可以很好的解决经典神经网络中遇到的问题。

把一张图片变成一维的像素量

零基础入门直观形象理解卷积神经网络_第1张图片

 

零基础入门直观形象理解卷积神经网络_第2张图片

3神经网络的应用于发展

(1)卷积神经网络与计算机视觉

卷积神经网络是人工智能的一个分支,主要用于计算机视觉的图像识别领域。所谓计算机视觉就是告诉计算机如何理解图像,如人脸识别,自动驾驶,二维码识别等都是计算机视觉的应用。

自动驾驶要教会计算机如何看路,准确识别路标,路牌,并识别路上是否有其他车辆,司机是否疲劳等,卷积神经网络不仅可以用来处理图像还可以处理音频、文本等信息,只要数据能变成图像,它都可以用来处理。

(2)李飞飞与IMAGENET

十多年前,当时的机器学习还是一个相当冷门的专业,当时的专家比较热衷于研究能够不基于特定数据而放之四海皆准的算法,李飞飞却经过深入思考,提出了独特的见解,认为机器需要像小孩一样先多看多接触这个世界之后,才能有一定的智能去理解这个世界。于是她开始考虑构建一个具有大量图片的数据集,给机器进行学习,就好像大人带着小孩认识这个世界一样。

2007年李飞飞带领团队克服重重人力困难、资金困难、技术困难,终于创建了世界上最大的图像识别数据库ImageNet,目前ImageNet已经超过2万个分类,图片总数也超过了1500万个,相比只有10个分类几百个图片的手写数字数据集,真正是个巨人般的存在。

ImageNet的诞生对深度学习的浪潮起了巨大的推动作用,正是因为通过ImageNet识别大赛,才诞生了AlexNet, VggNet, GoogleNet, ResNet等深度学习算法。这些深度学习算法能够达到超过人类的识别能力,从而构成了语音识别、人脸识别等应用的重要技术基础。苹果的SIRI语音助手就是在几年前重写了底层技术,全部切换到了深度学习算法。

4.卷积神经网络

(1)初识卷积神经网络

卷积神经网络可以理解为一个函数或者一个黑箱,输入的是图像的二维像素点,输出的就是这个图片的识别结果,比如图片中是x经过卷积神经网络输出的就是x,图片中是O经过卷积神经网络输出的就是O。

零基础入门直观形象理解卷积神经网络_第3张图片

 无论图片经过怎样的平移、旋转和局部加粗等操作后,计算机都能准确识别出图像X,它的鲁棒性和抗干扰性非常强。

零基础入门直观形象理解卷积神经网络_第4张图片

 对于我们人眼来说,可以很清楚的认出图中是一字母“X”,但是对于计算机来说,他只能看到像素的阵列,或者说在这个灰度图里就表示1和-1。1表示亮的,-1表示暗的。

零基础入门直观形象理解卷积神经网络_第5张图片

  虽然图像经过了旋转,但它依旧保留了原图的某些特征,如中间的“×”在旋转后依然存在;从左上角到右下角的对角线和从右上角到左下角的对角线也是有的。

因此我们可以通过识别出原图的特征,再识别出扭转之后图像的新特征,来和原图进行比对,从而得出扭转之后的图像与原图的相似性。

(2)特征提取器

我们把下面是哪个特征提取出来作为卷积核(特征提取器)

零基础入门直观形象理解卷积神经网络_第6张图片

假设要提取原图的这三种特征,通过卷积神经网络你会发现:

如果用“×”形卷积核就把原图中包含“×”的特征提取了出来;如果用“左上角右下角”形卷积核就把原图左上角右下角的特征提取了出来;同样地,如果使用“右上角左下角” 形卷积核就把原图右上角左下角的特征提取了出来。

零基础入门直观形象理解卷积神经网络_第7张图片

 (3)卷积

 第一步就是卷积,每一个原图上像素都与卷积核上对应的值进行乘再进行加和最后得到新的特征图矩阵。

零基础入门直观形象理解卷积神经网络_第8张图片

如图:

G(0,0)=0*1+(-1)*9+0*8+(-1)*4+5*8+(-1)*6+0*4+(-1)*0+0*5=21 

G(0,1)=0*8+(-1)*4+0*4+(-1)*6+5*7+(-1)*9+0*5+(-1)*9+0*3=7

同理可以计算出其他的元素,原图的像素经卷积运算得到Feature map,动图所示就是卷积过程,它就相当于卷积核把原图的特征提取到了特征图上。

零基础入门直观形象理解卷积神经网络_第9张图片

可以看出新图新图像仍然是“左上到右下角 ”形的,他长得很像卷积核。

这就表示原图中包含卷积核,这类特征被卷积提取出来,到这个feature map里边

颜色越深,值越小,越平坦。

用不同的卷积核对原图进行卷积运算会得到不同的特征,通过卷积核进行卷积运算得到的特征图和卷积核长得很像。

如果你用一个圆圈形的卷积核对图像x进行卷积运算,会得到乱码,说明图像X并不具有圆圈的特征。

但是如果有几万个特征就需要用几万个卷积核来处理,会得到几万个特征图,那么这个运算量会非常大,对于自动驾驶,人脸识别需要毫秒级的运算,比如马路上有个障碍物,汽车得马上判断要不要绕开它,马上要撞车了,汽车要马上判断要不要减速。运算量很大的话,时间上就会来不及,因此就必须把图像进行缩小。

那怎是么缩小呢?

(4)池化:也叫下采样

它的作用是把得到的特征图Feature map缩小。

这是一个三通道图片的卷积运算,红黄蓝三个通道的Filter,我们用每组卷积核和原图中对应的通道进行卷积运算,最后两组卷积核和原图中对应的通道进行卷积运算,最后两组卷积核得到两组Feature map。

零基础入门直观形象理解卷积神经网络_第10张图片

 Padding池化就是将一个大的图片如8*8像素图中4*4的一块用一个像素点表示,就如下图所示,那么大的一个框用一个2*2的像素图来表示。

零基础入门直观形象理解卷积神经网络_第11张图片

 池化分为两种,一种是最大池化,一种是平均池化, 一般常用的是最大池化。

零基础入门直观形象理解卷积神经网络_第12张图片

它在保留了原图特征的同时还能把图片的尺寸降下来,把计算量降下来。

如下图所示:这个Feature map图是从左上角到右下角的对角线,最大池化后依旧保留了这个特征

零基础入门直观形象理解卷积神经网络_第13张图片

(5) Padding填充:zero-padding 

零填充:在图像外围可以填充补零,可以提取图像边缘的特征

在卷积神经网络提取特征时,如果步长为1,对图像的四个角只能提取一次,对图像的边缘可以提取两次,对图像内部可以提取三次以上,对于一个比较饱满的图像,上述提取方式可能造成边缘特征的丢失。此时会用到填充(Padding)

(6)Normalization

把特征图中像素值为负数的全部抹成零。

零基础入门直观形象理解卷积神经网络_第14张图片

(7)神经网络结构

  •  Layers get stacked,The  output of one becomes the inpute of the next

 

零基础入门直观形象理解卷积神经网络_第15张图片

 原图经过卷积、抹零、池化就得到了更小的特征图,中间的卷积、抹零、池化就是神经网络。

卷积、抹零、池化可以作为一个单元进行多次重复与排列。

零基础入门直观形象理解卷积神经网络_第16张图片

  • 手写数字识别:3D Visualization of a Convolutional Neural Network

零基础入门直观形象理解卷积神经网络_第17张图片

首先,将原图转化成像素点,然后对原图进行*个卷积,然后得到6个Feature map在对这6个Feature map进行下采样,得到6个小图,再对这6个小图进行再进行卷积再进行下采样,进行两层全连接,最后就得到识别结果。可以看到,下采样后图像变小了,但图像的特征保留了下来 。

 (8)全连接层(Fully connected layer)

  • Every value get  a vote,A list of feature values becomes a list of votes

每个值都是有权重的,把它们各自的权重加起来就能判断出X的概率是多少。当然,这是需要训练得到的。全连接层,最后输出的跟之前的每一个神经元都相连的,每一个神经元都要乘以一定的权重最后加起来

最上边两层是全连接层,每一个像素值都和前一层的每个特征值相连。

零基础入门直观形象理解卷积神经网络_第18张图片

  • 全连接层还可以放好多层,原图作为输入层,中间的神经网络作为隐藏层,最后的结果作为输出层,这就是卷积神经网络。

零基础入门直观形象理解卷积神经网络_第19张图片

  • 如何确定特征值的权重,卷积层如何选择呢?

Q:人脸特征那么多,设置多少个卷积核以及怎样的卷积核才能准确识别人脸呢?

A:需要大量数据集的训练

李飞飞创建的IMAGENET网站,该项目从2009年开始号召全世界的志愿者把他们的照片上传并进行图片标注、整理、筛选,现在改网站已有14197122张图片,方便大家用大量的图片对神经网络进行训练。

零基础入门直观形象理解卷积神经网络_第20张图片

(9) 反向传播

神经网络先得到一个结果,再把这个结果和真实的图片进行比较并计算误差,也就是计算损失,我们通过对损失函数求导找到其最小值即梯度下降的方法把损失降到最小。

通过修改卷积核的参数,修改全连接层每一个神经元权重来进行微调,最终使得损失函数最小

反向传播就是一层一层把误差反馈回去,也就是说最后的误差可能是要反馈到第一层卷积核上的,进而对卷积和进行修改,经过不断的训练,用大数据去喂给神经网络,比如喂给它几百万张猫的照片,它最后就能学会分辨出图像中到底有没有猫了。

并不是要人为的设定卷积核,而是在训练过程中神经网络自己确定的,这就是机器学习强大的地方,机器具有学习的能力

(10)损失函数LOSS

 如果原图是X识别结果也是X的概率为0.92,那么损失就是0.08

如果原图是X而识别结果是O的概率为0.51,那么损失就是0.49

零基础入门直观形象理解卷积神经网络_第21张图片

损失值越小,说明识别结果与原图越相似,当我们不断训练不断训练,训练到损失值不再减小或者在一个很小的范围内波动时,我们就认为学习成功了。 

以上就是最基础的卷积神经网络,当然现在有许多由卷积神经网络衍生出的一些比较好的模型,如GeogleNet、VGG、深度残差网络ResNet等。总之,卷积神经网络在发现特征,图像分类过程中很有用。

本文是看B站同济子豪兄大白话讲解卷积神经网络的学习笔记,讲的真的很好,有兴趣的可以点击下方链接前往B站学习,欢迎大家一起学习交流!

大白话讲解卷积神经网络工作原理_哔哩哔哩_bilibili

你可能感兴趣的:(图像识别,cnn,深度学习,计算机视觉)