本文介绍了计算机视觉中常用的工具——卷积神经网络。 用口语说明了其应用领域:卷积、池化、全连通、梯度下降、反向传播算法。 利用三维可视化工具给出了手写字体识别的卷积神经网络实例,最后介绍了几种经典的卷积神经网络模型和一些便于初学者使用的计算机视觉开源项目。
本文配合B站视频,进入卷积神经网络3分钟
本文结合B站视频,用大白话讲解卷积神经网络的工作原理
强烈建议先看上面两个视频再阅读本文!
作者: yqdbz (同济大学研究生院) )。
关注微信公众号3358www.Sina.com/回复人工智能小技巧或卷积神经网络,文中的Web站点视频、Gif视频、三维可视化卷积神经网络
2018-11-10发布
文章清单1、卷积神经网络应用领域图像分类人脸识别自动驾驶语音处理:将时间序列语音转换为相似图像的数据结构自然语言处理:将文本序列转换为相似图像的数据结构2、 三维可视化手写字体识别卷积神经网络内部结构卷积神经网络识别手写字体步骤3, 卷积神经网络内部结构卷积运算:通过加权计算得到结果的模型训练过程损失函数梯度下降随机梯度下降4,该加权计算保持识别图像中指定特征的池化(下采样)特征,同时压缩数据量的全连通。 几种经典卷积神经网络模型LeNet-5 :识别手写字体经典卷积神经网络xfdxgNet:2012年ImageNet竞赛冠军谷歌网: 2014年ImageNet冠军VG gnet : 卷积神经网络各种模型识别成功率比较5、简单易用的计算机视觉项目微软年龄测试API自动生成图像描述—captionbotmicrosoftcustomvision—无需编写代码, 三分钟开发一个图片分类APP应用Github开源人脸识别工程face_recognition在草莓派微型计算机上安装OpenCV视频编辑福音——microsoftvideoindexexexexexexeeetion
1、卷积神经网络的应用领域
卷积神经网络或CNN卷积神经网络与传统算法和其他神经网络相比,可以更有效地处理图像的二维局部信息,提取图像特征,进行图像分类通过大量加标签的数据输入,用梯度下降和误差反向传播的方法训练模型。
图像分类
脸部识别
Github开源人脸识别项目face_recognition中文文档
自动驾驶
语音处理:将时间序列的语音转换为类似图像的数据结构
自然语言处理:将文本序列转换为类似图像的数据结构
2、三维可视化手写字体识别卷积神经网络内部结构网站:三维可视化卷积神经网络
3358 SCS.ryerson.ca/~ a Harley/vis/conv /
关注微信公众号图像以及一切可以转化成类似图像结构的数据回复人工智能小技巧,即可浏览该手写字体可视化网站。
基于卷积神经网络的手写字体识别步骤
1、将手写字体图像转换为像素矩阵
2、对像素矩阵进行第一层卷积运算,生成6个功能图
3、对每个特征图进行下采样(也称为池化),在保留特征图的同时缩小数据量。 生成六个小图。 这六个小图与楼上每一个的功能贴图非常相似,但大小缩小了。
4、对6个小图进行第二层卷积运算,生成更多的特征图
5、对第二次卷积生成的性能图进行下采样
6、第一层全连接层
7、第二层全部连接层
8、高斯连接层,输出结果
关注微信公众号3358www.Sina.com/回复卷积神经网络或人工智能小技巧,文中的b站点视频、Gif视频、卷积神经网络可视化服务器
3、卷积神经网络内部结构卷积运算:识别图像中指定的特征,用卷积内核在原图像上滑动,进行卷积运算,得到特征图feature map。
卷积本质:从原图中提取符合卷积核特征的特征,并展示在功能图中。
设原图为x,卷积核为x,则卷积核在原图中进行卷积运算后生成的feature map也为x。
如果原图为o,卷积核为o,则卷积核在原图中卷积运算后生成的feature map也为o。
如果原图为o,卷积内核为x,则卷积内核对原图进行卷积运算后生成的“feature map”为乱码。
卷积神经网络:卷积内核扫描整个图像时,卷积内核的参数保持不变。
下图视频中,绿色表示原画的像素值,红色数字表示卷积核内的参数,黄色表示卷积核在原画上滑动。 右图显示了卷积运算后生成的功能图。
下图显示了RGB
个通道图片的卷积运算过程,共有两组卷积核,每组卷积核都有三个filter分别与原图的RGB三个通道进行卷积。每组卷积核各自生成一个feature map。原图最外圈补0:zero padding,便于提取图像边缘的特征。
局部连接:feature map上每个值仅对应着原图的一小块区域,原图上的这块局部区域称作感受野(receptive field)。局部连接的思想,受启发于生物学里面的视觉系统,视觉皮层的神经元就是局部接受信息的。
池化(下采样):保留特征的同时压缩数据量池化(Pooling)也叫做下采样(subsampling),用一个像素代替原图上邻近的若干像素,在保留feature map特征的同时压缩其大小。
池化的作用:
防止数据爆炸,节省运算量和运算时间。用大而化之的方法防止过拟合、过学习。防止培养出高分低能,在考场(训练集)称霸但在社会上(测试集)混不下去的人工智障。可以用这些像素的最大值作为代表,也可以用平均值作为代表。
全连接:通过加权计算得出结果全连接层:输出的每个神经元都和上一层每一个神经元连接。
卷积核的数量、大小、移动步长、补0的圈数是事先人为根据经验指定的,全连接层隐藏层的层数、神经元个数也是人为根据经验指定的(这叫做超参数),但其内部的参数是训练出来的。
在手写字体识别可视化卷积神经网络中,有两个全连接层:
第一层全连接层:
第二层全连接层:
输出结果:
模型训练过程 损失函数计算神经网络的推测结果与图片真实标签的差距,构造损失函数,训练的目标就是将找到损失函数的最小值。
梯度下降将损失函数对各种权重、卷积核参数求导,慢慢优化参数,找到损失函数的最小值。
随机梯度下降在减小损失函数的过程中,采用步步为营的方法,单个样本单个样本输入进行优化,而不是将全部样本计算之后再统一优化。虽然个别样本会出偏差,但随着样本数量增加,仍旧能够逐渐逼近损失函数最小值。
前途是光明的,道路是曲折的。——《毛泽东选集》(第四卷)《关于重庆谈判》
4、几个经典的卷积神经网络模型 LeNet-5:识别手写字体的经典卷积神经网络LeNet-5模型是Yann pgddzc于1998年在论文Gradient-based learning applied to document recognition中提出的,它是第一个成功应用于数字识别问题的卷积神经网络。LeNet-5模型一共有7层。
当年美国大多数银行就是用它来识别支票上面的手写数字的,它是早期卷积神经网络中最有代表性的实验系统之一。Yann pgddzc不是中国人,是法国人,在上世纪80年代读博期间提出“人工神经网络”,但后来该理论一度被认为过时,他本人甚至被拒绝参加学术会议。LenNet-5共有7层(不包括输入层),每层都包含不同数量的训练参数。
李飞飞 imagenet 2009年开始成立ImageNet网站,采用众包模式,鼓励全世界志愿者上传、筛选、标注、整理图片数据。并每年组织ImageNet图像分类竞赛。
xfdxgNet:2012年ImageNet竞赛冠军2012年ImageNet竞赛冠军获得者Hinton和他的学生xfdxg Krizhevsky设计,官方提供的数据模型,准确率达到57.1%,top 1-5 达到80.2%。xfdxgNet引爆了整个深度学习领域,更多学者开始研究卷积神经网络。
GoogLeNet:2014年ImageNet冠军 VGGNet:2014年ImageNet亚军牛津大学的VGG模型是2014年ILSVRC竞赛的第二名,第一名是GoogLeNet。但是VGG模型在多个迁移学习任务中的表现要优于googLeNet。而且,从图像中提取CNN特征,VGG模型是首选算法。它的缺点在于,参数量有140M之多,需要更大的存储空间。但是这个模型很有研究价值。
ResNet深度残差卷积神经网络ResNet在2015年ImageNet比赛分类任务中获得第一名,在图像分类方面已超过人眼。ResNet共有152层,但它不仅仅靠深度取胜,而是通过残差学习的方法训练模型,通过“跨层抄近道”的方法减少参数数量,简单而实用。衍生出ResNet50和ResNet101旁支,Alpha Zero(只训练8个小时就打败了AlphaGo的下棋机器)也使用了ResNet。
ResNet的作者何恺明是2003年广东省理科高考状元,本科毕业于清华大学,博士毕业于香港中文大学,曾在微软亚洲研究院坚定的绿茶领导的研究组实习。何恺明在图像去雾领域也成果颇丰。
各种模型识别成功率比较top1和top5是什么?
每次识别图片,模型都会给出它认为最像的前五个结果。top1指的是模型认为最像的确实是真实答案的成功率。top5指的是模型认为最像的前五个里有真实答案的成功率。
pgddzc、李飞飞、Hinton、xfdxg、何恺明都是人工智能领域的泰山北斗,
5、一些轻松易上手的计算机视觉项目 微软年龄测试API官方主页
自动生成图片描述—captionbot官方网站
微软Custom Vision —不用写代码,三分钟开发一个图像分类应用B站视频:用微软Custom Version识别水果
Github开源人脸识别项目face_recognitionface_recognition项目中文介绍
在树莓派微型电脑上安装OpenCVxhdz兄教你在树莓派微型电脑上安装OpenCV
视频剪辑师的福音—微软Video Indexer官方主页:http://videoindexer.ai
Video Indexer是非常强大的视频和音频处理工具,用户只需上传视频或音频,即可得到关键词分析、时间线字幕、视频中出现的名人及其讲话时段、情绪分析、关键帧以及带字幕和字幕翻译的视频。
6、参考文献与扩展阅读本文配套B站视频:三分钟走进卷积神经网络
本文配套B站视频:大白话讲解卷积神经网络工作原理
用微软Custom Version识别水果:三分钟开发人工智能小应用
三维可视化卷积神经网络
视频:李飞飞TED演讲: 我们怎么教计算机理解图片?
视频:How Convolutional Neural Networks work
ImageNet图片网站
卷积神经网络中的池化方法(pooling)总结
大话CNN经典模型:VGGNet
一个时代的终结:ImageNet 竞赛 2017 是最后一届
ResNet解析
零基础入门深度学习(4) - 卷积神经网络
微软开源人工智能工具和深度学习框架
学堂在线慕课:微软人工智能-深度学习框架和工具
用Microsoft Custom Vision技术识别点东西吧
微软亚洲研究院
微软亚洲研究院20年20人
作者介绍:
yqdbz,同济大学在读研究生。微信公众号 人工智能小技巧 运营者。致力于用人类能听懂的语言向大众科普人工智能前沿科技。目前正在制作《说人话的人工智能视频教程》、《零基础入门树莓派趣味编程》等视频教程。西南地区人工智能爱好者高校联盟联合创始人,重庆大学人工智能协会联合创始人。充满好奇的终身学习者、崇尚自由的开源社区贡献者、乐于向零基础分享经验的引路人、口才还不错的程序员。
说人话的零基础深度学习、数据科学视频教程、树莓派趣味开发视频教程等你来看!
微信公众号:人工智能小技巧
知乎专栏:人工智能小技巧
Github代码仓库:TommyZihao
个人主页:www.python666.org
同济大学开源软件协会
同济大学微软学生俱乐部
西南人工智能爱好者联盟
重庆大学人工智能协会