史上最全的卷积神经网络介绍,深入浅出了解AI的数学算法......

Posted 超级数学建模

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了史上最全的卷积神经网络介绍,深入浅出了解AI的数学算法......相关的知识,希望对你有一定的参考价值。






引言:AI、CNN算法、希尔伯特、费曼、577

当前炙手可热、家喻户晓的AI核心数学算法是什么?答案就是“卷积神经网络算法”。

数学是所有科学技术的基础,卷积神经网络这种算法也不例外,它是几乎一切AI产品和应用的基础与核心,可以说没有它,这一波AI热浪中所有的AI产品都不复存在。
      
那么究竟什么是卷积神经网络(为行文方便以下使用它的英文简称CNN)呢?“卷积”、“神经”、“网络”又分别有什么内涵呢?它又是如何实现图像识别的呢?

今天超模君就用尽可能接地气的语言把自己对这些概念的理解分享给大家。

数学是软件的天花板,希望对大家实现睡后月薪过万的小小小目标有所帮助,面试时不做577。

费曼说:分享、组织通俗易懂语言的过程也是自己深入准确理解学习内容、提高自己的过程,所以也谢谢你能点进来看一篇讲数学算法的文章,当然作为希尔伯特和费曼的铁粉,我也避免出现一连串数学公式的高能区。

文章比较长,为了避免散架,确保脉络清晰,我会以我对以下13个关键术语的理解作为文章的主线:卷积核、卷积算法、卷积、卷积层(统称卷积家族四兄弟)、过滤器、特征检测符、池化层、全连接层、汇总求和、权重系数、扁平化、深度学习、过拟合现象、感知器。您理解了这13个术语,就可以您对CNN算法理解了十之八九了。

史上最全的卷积神经网络介绍,深入浅出了解AI的数学算法......

 

卷积四兄弟之大哥、二哥、三哥是谁?

从苹果分大小说起。。



大哥二哥三哥分别是:大哥卷积核、二哥卷积算法、三哥卷积:“卷积核是一个小矩阵,卷积算法顾名思义是一种算法,卷积是一个数值(实数)。用‘卷积核‘和另一个和它尺寸相同的小矩阵进行‘卷积运算‘,运算后会得到一个数值,这个数值叫卷积”。

你是不是没看懂?没看懂也没关系,继续往下看,把这一节完就懂了。

先说大哥‘卷积核‘。吃货们都知道,网络上水果店的店主通常都会把自家的水果分为大、中、小三号,大果最贵,小果最便宜。

那么店家是怎么分类大中小果的呢?不是逐个拿尺子去量,那忒慢了,而是找一个硬纸板挖大小不等的两个洞,如果一颗水果连大洞也通不过就归为大果,连小洞都能通过就叫小果,能通过大洞但是通不过小洞就归类为中果。

这两个洞就称作两个“过滤器”,请一定牢记这个词——“过滤器”,它是大哥‘卷积核‘的别名,一个更能揭示图形学本质的别名。为了便于大家理解,下文里我们仍然会经常使用“过滤器”这个别名。

史上最全的卷积神经网络介绍,深入浅出了解AI的数学算法......


再举个稍微复杂点的例子,如何区分汪星人和喵星人?喵星人是尖耳朵,汪星人是圆耳朵,对计算机来说如何区分一张图片上的动物是猫是狗(假设一张照片只有一只动物)?先把耳朵找出来,然后量角度?那太慢了,
 

史上最全的卷积神经网络介绍,深入浅出了解AI的数学算法......


 
怎么能快起来?还是用‘过滤器’的方法:直接找出一段汪星人耳朵的轮廓曲线来,如图一右下角那条曲线,找一块小硬纸板按照这条曲线的形状抠一条缝隙。

然后在纸质照片上移动,如果照片上某段轮廓线和小硬纸板上曲线缝隙吻合度很高,那就把这张照片归类为汪星人,如果任何区域都不和汪星人耳朵的轮廓线匹配,那就把这张照片归类为喵星人。

这条曲线的缝隙就是一个‘过滤器’,与这个曲线缝隙不吻合的部分都被忽略掉了,只保留了和它形状吻合的部分作为分类依据。

这条汪星人耳朵轮廓线也可以算是汪星人的一个特征,区别与喵星人的一个特征,所以大哥‘卷积核’又有了第三个名字‘特征检测符’。

以后为了行文方便,更便于大家理解上下文,我会交替使用‘过滤器’、‘特征检测符’、‘卷积核’这三个词,大家记住这三个词说的是一种东东就好了,‘卷积核’更具代数学含义,其他两个更具图形学含义。。

当然,AI软件不是人类,它不会拿着小硬纸板在纸质照片上移动,也不会在纸板上抠一条缝隙出来,那怎么办?

请大家看下面的图一左下角的那个7×7的小矩阵,它就是大哥‘卷积核’的代数学含义,一个矩阵元素对应图片上一个像素点,小伙伴们注意看它的灰色部分,也就是元素值等于30的部分,它们串成的曲线恰恰是右下角那条黑色的曲线。

大家都知道,一幅电子介质的照片,本质就是一个大矩阵,,比如1024×768,一个矩阵元素对应一个像素点。

那么,让图一右下角那个7×7的小矩阵逐个像素、从左到右、从上到下的在照片的那个大矩阵上移动(参见图二那个动图),效果就等同于人拿着小硬纸板在纸质照片上移动。
 

史上最全的卷积神经网络介绍,深入浅出了解AI的数学算法......

图一 汪星人耳朵的过滤器(卷积核、特征检测符)
 
有聪明的小伙伴又问了:“大哥‘卷积核‘的小矩阵在图片上的大矩阵上逐个像素点移动,当到达大矩阵某个位置时,软件又是如何判定在大矩阵的这个位置有没有和过滤器上那段曲线段高度吻合的曲线?”

这时候就要依靠二哥‘卷积算法’了。那么这位二哥是怎么运算的?就是“把一个矩阵(卷积核)与和它大小一致的另一个矩阵逐个像素点相乘,然后再把这些乘积相加,最后得到的那个和就叫‘卷积‘(三哥)。

为了便于大家理解这个概念,还是请大家看图二那个动图。

史上最全的卷积神经网络介绍,深入浅出了解AI的数学算法......

图二  卷积算法动图演示
 
 
那么,这二哥‘卷积算法’有什么效果?

再请大家看图一右下角大哥‘卷积核’的7×7小矩阵,它除了那个和卡通汪星人耳朵曲线形似的部分是30,其他地方都是0。

这要它和图片上某个7×7小矩阵做卷积运算时,此时如果图片上的小矩阵对应过滤器小矩阵上那条往汪星人耳朵曲线的部位都是255,那么这两个小矩阵的卷积就是0+7×30×255=53550,这个四则运算式里那个7是因为数值等于30的点数也就是汪星人耳朵曲线的点数是7,前边那个0是因为过滤器中其他元素都是零。

53550对我们这个“卡通汪星人耳朵滤波器”而言是能取到的卷积最大值,这个最大值的图形学含义就是“在图片上的这个7×7小区域内,有一条纯白色的曲线形状位置和滤波器上的喵星人曲线完全吻合”

但是,如果你用右下角的滤波器小矩阵直接在上面的卡通狗彩色图像上移动在各点处求卷积,你会发现图上的白色背景区的各点的卷积也是53550,这样就达不到寻找图一下部特征曲线的目的了。

怎么解决上述问题?那就是先对右上角的彩色汪星人图片进行一次预处理,把颜色迅速变化的边界线勾勒出来,并且只保留边界线,其他非边界部分变成黑色,如右上角所示。

用左下角的小矩阵对右上角的汪星人图片逐点进行卷积,就只有和特征曲线吻合的区域卷积才是53550了。

其实不仅图一中的卡通狗,基于CNN的所有AI软件处理图形问题时一般都会对原始图像先找出边界,并且只保留边界,例如图三中的汪星人与美女,请记住那个美女,如果你应聘成功了,你会经常见到她的。

寻找边缘线只是CNN算法正式开始前的预处理,为了不喧宾夺主,超模君在此就不详细讲述了,有兴趣的小伙伴可以自行搜索索伯滤波器。
 

史上最全的卷积神经网络介绍,深入浅出了解AI的数学算法......

图三  提取图像边缘
 
有小伙伴可能会问:“超模君,你这个方法不准啊,你这个卡通狗的耳朵曲线在大部分真狗照片里找不到啊!!远的不说,在图三那只大狗的边缘线图片里就找不到。除了图三中的大狗,还有很多汪星人的耳朵也是尖耳朵呀,比如二哈;喵星人也有垂耳的哦,比如苏格兰折耳猫。”

这种情况怎么办?这时候就再找一段汪星人身上常见喵星人身上不常见的曲线作为‘特征检测符’,比如说‘长嘴巴的轮廓线’,同时使用两个‘特征检测符’,准确率就会比只用一种‘特征检测符’更高。

再举个更复杂点的例子,如何区分100多种汪星人?这时候光靠耳朵轮廓线和长嘴巴轮廓线这种“特征检测符”就不行了,还得需要尾巴的轮廓线、额头的轮廓线同时作为“特征检测符”才识别的更准确些。

史上最全的卷积神经网络介绍,深入浅出了解AI的数学算法......

图四  狗狗品种总动员会
 
 

再看卷积家的四弟‘卷积层’

理解四兄弟,成功一大半


上一节末尾提到了了同时使用多个‘特征检测符’的方法。
    
“如果多个特征检测符都在图片上扫一遍,是不是这个卷积算法要被循环运行很多次,那么这多次循环运行和特征检测符(也叫卷积核、过滤器)就被通成为‘卷积层’,一个卷积层生成图片的个数就是‘特征检测符’的个数”。

请看下边的图五,就有‘耳朵曲线’、鼻头曲线’、‘后背曲线’三个特征检测符,经过这三个特征检测符分别用卷积算法处理后,一张图片就变成了三张。

史上最全的卷积神经网络介绍,深入浅出了解AI的数学算法......

 图五  三个特征检测符让一张图变三张图
一张图对应一个特征检测符
 
好啦,到目前为止,你知道了啥叫‘’卷积,啥叫‘卷积算法’,啥叫‘卷积核’,啥叫‘卷积层’,CNN的主要核心精髓,你可以说已经了解一大半了,如果你应聘普通工程师职务,再傲娇的面试官在心里会给你一个“还行”的评价了。
 

‘神经’是啥意思?坑爹的。


这是个忽悠人的词,坑爹的词,故弄玄虚的词,误导人的词,如果你想学习AI千万不要理会这个词,超模君当初就是被这个词误导了,被坑惨了,最起码被耽误浪费了半年的美好时光。

CNN算法的发明人 (也可能是他背后的商业推广团队) 说他这个算法就像人类的大脑一样智慧,结构和产生智慧的原理也与大脑中的‘神经元网络’一样,扯淡骗人的,且不说人类的高级智慧比如归纳分析推理想像是否来自大脑都还没有定论,这只是一个猜测或者说是假说 (超模君和我的大部分码奴同事认为大脑只是相当于电脑主板上的‘南桥’,只是管外部设备的)

即便真的来自大脑中神经元网络,这个CNN和神经元网络也没啥相似之处。

史上最全的卷积神经网络介绍,深入浅出了解AI的数学算法......


其实所谓的‘神经元’就是指CNN算法运行到快结尾时会产生一个或者一些向量,向量上的元素,又叫‘感知器’

马儿要想跑的快,除了多吃草,还得路上没有坑,不然腿踩到坑里,马腿会被别断的,“神经元”这个词就是个坑,超模君泣血忠告,绕开这个坑。就因为‘神经‘、‘神经元’、‘神经网络’纯属忽悠,所以我没把它们列入13个关键术语。

史上最全的卷积神经网络介绍,深入浅出了解AI的数学算法......


 

除了‘卷积层’还有哪两层?

‘网络’在CNN里又是什么内涵?

 
卷积、神经、网络,大家已经知道了‘卷积’和‘神经’的意思,再说说‘网络’这个词。

这个词和‘神经’这个坏孩子搭配在一起是忽悠人,但是如果把它单独拿出来使用,也还有些内涵,在解释它的真正内涵前,超模君先带大家了解另外四个关键词‘池化层’、‘全连接层’、‘扁平化’、‘权重系数’ (权重系数这个词也很重要,大家一定要记住、牢记)

‘池化层’,它的主要作用是把图像的尺寸或者说是像素数减少,以减少整个系统的运算量。例如下面的图六,就是把6×6的矩阵变成了3×3的矩阵,在2×2的小区域内只保留其中最大值,其余忽略,于是6×6就变成了3×3
 

史上最全的卷积神经网络介绍,深入浅出了解AI的数学算法......

图六  池化层示例
 
通常‘池化’和‘卷积层’是迭代循环运行的,就是说先对图片进行卷积处理,然后用池化层减小经过卷积处理的图像尺寸,然后再找一组过滤器,再用卷积层处理池化后的图片,然后再池化,再卷积,再池化......

如此循环迭代多次,最后形成一组比较小的图片,图片的个数就是历次卷积层所用的过滤器个数的乘积,例如第一个卷积层用64个过滤器,第二个卷积层用8个过滤器,第三个卷积层用4个过滤器,那么三次循环迭代后生成的图片的个数就是64×8×4=2048张。

史上最全的卷积神经网络介绍,深入浅出了解AI的数学算法......

图七  卷积层和池化层的两次循环迭代
照片尺寸越来越小,张数越来越多
 
接下来就该‘全连接层’登场了,从码奴的视角看,它应该叫‘求和汇总层’更合理更实在。

大家知道一张图片就是一个矩阵,最后一个池化层之后有多少张图片就有多少个矩阵,‘全连接层’的任务就是把多个矩阵变为一个向量,把二维的矩阵变为一维的向量可不就是‘扁平化’吗,把矩阵压扁了。

那么是如何压扁的呢,就是两次‘汇总求和’,第一次把卷积池化处理图片内各个像素点的值‘汇总求和’,这一步的现实意义是啥?

拿狗耳朵曲线来说,狗耳朵可能在图片的任何位置,一次‘汇总求和’的目的就是‘我不管狗耳朵曲线在哪里,我只要狗耳朵曲线’,这个和的值越大,图片中含有狗耳朵的可能性越大。

在对n张图片进行‘汇总’求和以后,就会得到n个‘和’,如果放在一个向量里,就是含有n个元素的向量。那么有如何把这个向量变为一个数值?

那就是第二次‘汇总求和’,我们找一个和上一次‘汇总求和’得到的那个n个元素的向量(为行文方便我们叫它向量A)垂直的同样含有n个元素的向量(为行文方便我们叫它向量B),两个向量相乘不就得到一个数值(为行文方便我们把它称为‘V狗’)了吗?

那么如何填充向量B中元素的值,那就是‘权重系数’,这个‘权重系数’的现实意义是啥?大家都知道狗有各种‘特征检测符’,但是在确定是否是狗这个问题上各种特征的权重是不同的,比如说‘卷尾’就比‘垂耳曲线’的权重大,如果图片上发现了卷尾那它一定是一只狗,不可能是猫。

而垂耳曲线则不同,汪星人里也有立耳的比如二哈君,而喵星人里也有垂耳的,比如苏格兰折耳猫。这样我们就可以把‘卷尾特征检测符’的权重系数设定为20,把‘垂耳曲线特征检测符’的权重系数设定为10。

到此为止我们已经把一幅图片的动物是不是狗的问题转换成一个‘数值’了。同理我们也可以为喵星人找到一个向量B',给它填充上不同的权重系数,比如卷尾权重系数设定为0,垂耳权重系数设定为2,把向量B'也和向量A相乘,我们也可以得到一个数值‘V猫’,把‘V猫’和上文提到的‘V狗’,放到一个只有这2个元素的向量里,这个2为向量就是‘全连接层’的输出。
 
 ‘全连接’就是把最后一个池化层之后就是全部图片的全部像素值汇总到一起的意思。全就是全部,全部图片、全部像素值,连接本质上是求和汇总。

全部图片、全部像素、全部连接,就像一张网一样,这就是‘卷积神经网络’这个短语中‘网络’一词的由来,因为’网络‘也不太准确(只是看起来有一点点形似),容易让人产生歧义,所以我也没把它列入13个关键词。

虽然不赞同‘神经’这个词,认为它忽悠误导人。

但是为了和面试官沟通,我们还是要讲讲‘神经元’这个词在CNN中指的是什么?它就是指上文提到的‘V狗’、‘V猫’如果不止要区分是猫和是狗,而是要区分猫狗猪羊鸡五种动物,那全连接层之后就是一个含有五个元素的向量,神经元就是指‘V狗’、‘V猫’、‘V猪’、‘V羊’、‘V鸡’ 。它还有个名字叫‘感知器’,其实这个词更准确些。

有个‘感知器’组成的向量后。接着来的工作就很简单了,把‘V狗’、‘V猫’做一个归一化处理,转换成概率值,比如果V狗=200,V猫=3,那么图片中是狗得概率就是200÷(200+3)=98.5%,是猫的概率就是百分之1.5。
 

史上最全的卷积神经网络介绍,深入浅出了解AI的数学算法......


 

CNN后半场‘深度学习’学的啥?

CNN的根本性缺陷是啥?

 
这一节我们我们讲讲AI或者说CNN中另外一个常用词‘深度学习’。其它软件码奴编码完成后,不出bug就可以直接用了。

基于CNN的AI软件则不同,码奴编码完成后不出bug只是完成了上半场,也就是说即便码奴编完了,这个软件也不能用,还得让它学习,训练它,学习训练完之后才能用。
 

史上最全的卷积神经网络介绍,深入浅出了解AI的数学算法......


学什么,训练什么?大家还记得前面我让大家一定要记住、牢记的两个词吗?一是‘过滤器’(是一个个小矩阵)、二是‘权重系数’(是一个个数字),学习的过程就是不停的调整这‘过滤器’和‘权重系数’的过程。

码奴刚交货时,过滤器和权重系数都非常不准确,识别是猫是狗的准确率连0.001%也不到,这时候给它一张图片并且告诉它答案,即告诉它这张图片上的图片是猫是狗,这时候AI软件就要修正过滤器和权重系数,直到找到一组或者说一套过滤器和权重系数,使自己得出的结论和正确答案一样或者接近。

然后再给它一幅已经有了答案的图片,学习上一张图片时得到的那一组过滤器和权重系数用在这一张图片上可能是不准确的,于是AI软件再次修正过滤器和权重系数(注意调整过滤器不仅包括对已有过滤器进行调整,还可以包括增加过滤器)。

接下来再给它第三张已经有正确答案的图片,它再次修正过滤器和权重系数。如此往复,不停的修正,.....几千张图片以后AI就会得到一组非常合理的过滤器和权重系数,AI软件使用这组过滤器的权重系数就能很准确的识别是猫是狗。比识别猫狗两种动物更复杂点的问题,例如识别猫狗羊猪鸡可能就要十几万张已经有正确答案的图片来让AI软件学习。

这种学习有三个特点:

1 一般而言,总体来说,训练量越大,准确率越高。
就是因为这个原因,在AI机器翻译领域,大语种翻译,比如英汉互译,由于训练量大,准确率很高。但是小语种则不行,比如亚美尼亚到汉语,由于训练量不够,准确率就低的多。

2. 学习进步的速度开始时很快,越往后进步越慢。

3. 无论训练量有多大,准确率都不可能达到100%,这就要提到一个关键词“过拟合现象”,即便你给它1亿张图片让它学习,第一亿零一张的时候还是可能出错。 “过拟合现象”是基于CNN算法的AI软件的一个根本性的固有的无法消除的缺陷。
也是这个原因,AI不可能代替人类司机,因为识别是猫是狗错1%没啥关系,但是开车时你识别错了,那很可能是要车毁人亡的。 所以现在的AI汽车还只限于在风景区专用道上慢慢的开。


结论

 
最后,给大家回顾下本文中提到的CNN术语和概念。
  
13个关键术语的理解:卷积核、卷积算法、卷积、卷积层(统称卷积家族四兄弟)、过滤器、特征检测符(卷积核的两个别名)、池化层、全连接层、汇总求和、权重系数、扁平化、深度学习、过拟合现象、感知器。

还有三个误导忽悠人,但为了和面试官沟通,你也要知道的三个词:神经、神经元、神经网络。

记住更重要的是理解这些概念,不要为了数学而数学,相信你能成为一个小小小面霸,实现税后月薪过万的小小小目标。


写在最后

觉得写的不错,还请多多支持超模君啊。特别是这套

54位物理学史的大神,等你来开启哦。

如果想要更多了解的话,就多关注一下这套吧。


现在购买, +1元就送一套“符号之美”红包, 预购从速!!!
史上最全的卷积神经网络介绍,深入浅出了解AI的数学算法......
史上最全的卷积神经网络介绍,深入浅出了解AI的数学算法......



作者简介:史事宗,好奇心强,热爱科学,知识面广。 编过十几年软件,基本以底层核心软件为主,熟悉加解密、AI等算法。 喜欢国学和历史,也很喜欢和看重科技史,认为只有了解科技发现发明的历史才能培养出一流的颠覆性的创新型人才。 热爱科普,认为当前中国很多问题是科普不够引起的,例如缺乏创新型人才、医患纠纷。
文系网易新闻·网易号“各有态度”特色内容
部分内容来源于网络
转载请在公众号中,回复“转载”


以上是关于史上最全的卷积神经网络介绍,深入浅出了解AI的数学算法......的主要内容,如果未能解决你的问题,请参考以下文章

[AI开发]零数学公式告诉你什么是(卷积)神经网络

史上最全!近千篇机器学习&自然语言处理论文!都这儿了

原创:史上对BM25模型最全面最深刻的解读以及lucene排序深入讲解(佟学强)

新品速递 | 史上最全X21 AI人工智能说明

史上最全的机器学习资料(上) 转

可能是史上最全的机器学习和Python(包括数学)速查表