您的位置  > 互联网

卷积神经网络算法:卷积四兄弟之大哥二哥卷积算法

简介:人工智能、CNN 算法、希尔伯特、费曼、577

当前热门且知名的AI核心数学算法是什么? 答案是“卷积神经网络算法”。

数学是一切科学技术的基础,卷积神经网络等算法也不例外。 它是几乎所有人工智能产品和应用的基础和核心。 可以说,没有它,这波AI热潮中的所有AI产品都将不复存在。 存在。

那么到底什么是卷积神经网络(为了书写方便,下文将其英文缩写为CNN)? “卷积”、“神经”和“网络”分别是什么含义? 它是如何实现图像识别的呢?

今天,超模就用尽可能接地气的语言与大家分享他对这些概念的理解。

数学是软件的天花板。 希望能帮助你实现睡后月收入过万的小目标。 面试时不要做577。

费曼表示:分享和整理通俗易懂的语言的过程也是一个深入准确地理解学习内容、提升自我的过程,所以感谢您点进阅读一篇关于数学算法的文章。 当然,作为希尔伯特和费曼的忠实粉丝,我也避开出现一系列数学公式的高能区域。

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

卷积四兄弟的老大、二弟、三弟分别是谁?

让我们从苹果的大小开始。 。

大哥、二哥、三哥分别是:大哥的卷积核、二哥的卷积算法、三哥的卷积:“卷积核是一个小矩阵,卷积算法就像名字一样是一个算法表示,而卷积就是一个数值(实数),用‘卷积核’与另一个相同大小的小矩阵进行‘卷积运算’,运算后会得到一个值,称为卷积。 。

你没明白吗? 如果您不明白也没关系,请继续阅读直到读完本节。

我们先来说说老大哥‘卷积核’。 吃货们都知道,网上水果店老板通常把水果分为大、中、小三种尺寸。 大的水果最贵,小的水果最便宜。

那么商店是如何对大、中、小水果进行分类的呢? 不用用尺子一一测量,这样速度太慢,而是可以在一块纸板上找到两个不同大小的孔。 如果水果连一个大洞都无法穿过,那么它就被归类为大水果。 如果它能穿过一个小孔,它就被称为大果。 可以穿过大孔但不能穿过小孔的小水果被归类为中型水果。

这两个孔被称为两个“过滤器”。 请记住这个词——“过滤”。 它是老大哥‘卷积核’的别名,一个更能揭示图形本质的别名。 为了方便大家理解,下面我们仍然会经常使用别名“”。

举一个稍微复杂一点的例子,如何区分狗和猫? 猫的耳朵是尖的,而狗的耳朵是圆的。 计算机如何判断图片中的动物是猫还是狗(假设图片中只有一只动物)? 先找到耳朵再测量角度? 这也太慢了吧

怎样才能快速起床呢? 还是用“过滤”法:直接找一段狗耳朵的轮廓曲线,比如图1右下角的曲线,找一小块纸板,按照这个形状剪出一个缺口曲线。

然后移动纸质照片。 如果照片上的某条轮廓线与小纸板上的曲线间隙非常匹配,则将照片分类为狗。 如果有任何区域与狗耳朵的轮廓不相符。 如果线条匹配,则该照片被分类为猫。

这条曲线的间隙就是一个“过滤器”。 与该曲线间隙不匹配的部分将被忽略,仅保留与其形状匹配的部分作为分类的依据。

狗耳朵的这个轮廓也可以看作是狗的一个特征,这也是狗与猫的区别,所以老大哥“卷积核”又有了第三个名字,“特征检测器”。

以后,为了书写方便,也让大家更容易理解上下文,我将交替使用“滤波器”、“特征检测器”和“卷积核”这三个词。 请记住,这三个词指的是某物。 好吧,“卷积核”具有更多的代数含义,而其他两个则具有更多的图形含义。 。

当然,AI软件并不是人类。 它无法握住小纸板并在纸质照片上移动它,也无法在纸板上切出缝隙。 那么我们应该做什么呢?

请看下面图1左下角的7×7小矩阵。 就是老大哥的“卷积核”的代数意义。 一个矩阵元素对应于图片上的一个像素。 小伙伴们注意一下它的灰色部分。 ,即元素值等于30的部分,它们形成的曲线正是右下角的黑色曲线。

众所周知,电子介质的照片本质上是一个大矩阵,比如1024×768,一个矩阵元素对应一个像素。

然后,让图1右下角的7×7小矩阵在照片大矩阵上逐像素、从左到右、从上到下移动(见图2动画),效果相当于一个人拿着小纸板在纸质照片上移动。

图 1. 狗耳朵滤波器(卷积核、特征检测器)

有聪明的朋友又问:“兄弟,‘卷积核’的小矩阵在图中的大矩阵上逐像素移动,当它到达大矩阵中的某个位置时,软件如何判断它在哪里?大矩阵中是否存在与滤波器上的曲线段紧密匹配的曲线?”

这时候就得依靠二哥的“卷积算法”了。 那么这位二哥是怎么算的呢? 意思是“将一个矩阵(卷积核)与另一个相同大小的矩阵逐像素相乘,然后将这些乘积相加。最后的和称为‘卷积’(三哥)。

为了让大家更容易理解这个概念,请看图2的动画。

图2 卷积算法动画演示

那么,这位二哥的卷积算法效果如何呢?

请看图1右下角大佬的‘卷积核’的7×7小矩阵,除了类似于卡通狗耳朵曲线的部分是30,其他地方都是0。

这就需要它在图片上与一个7×7的小矩阵进行卷积运算。 此时,如果图片上的小矩阵对应滤波器小矩阵向狗耳朵弯曲的部分,都是255,那么这两个小矩阵的卷积就是0+7×30×255 =53550。 这四个算术表达式中的7是因为点数等于30,即狗耳曲线的点数为7。前面的0是因为滤波器中的其他点。 元素全部为零。

53550是我们的“卡通狗耳滤波器”可以获得的最大卷积值。 这个最大值的图形含义是“在图片上这个7×7的小区域内,有一条纯白色的曲线形状”。 该位置与过滤器上的猫曲线完美匹配。”

然而,如果你用右下角的小滤波器矩阵直接在上面的卡通狗彩色图像上移动来寻找每个点的卷积,你会发现图片上白色背景区域的每个点的卷积也是53550,这样就没有达到求图下部特性曲线的目的。

如何解决以上问题呢? 即首先对右上角的彩色狗图进行预处理,勾勒出快速变化的彩色边界线,只保留边界线,而其他非边界部分则变为黑色,如图右上角所示。

用左下角的小矩阵对右上角的狗图进行逐点卷积。 仅与特征曲线匹配的面积卷积为53550。

事实上,不仅是图1中的卡通狗,所有基于CNN的AI软件在处理图形问题时,一般都会找到原始图像的边界,并且只保留边界。 比如图3中的狗和美女,请记住那个美女。 如果你的申请成功,你会经常见到她。

寻找边缘线只是CNN算法正式开始之前的预处理。 为了不分散焦点,这里不再赘述。 感兴趣的朋友可以自行搜索索伯滤芯。

图3 提取图像边缘

有的朋友可能会问:“超模,你的方法不准确,你的卡通狗的耳朵曲线在大多数真实的狗照片中都找不到!!更不用说距离了,在第三张图中的大狗身上你都找不到图中的狗的边缘除了图3中的大狗外,还有很多尖耳朵的狗,比如二哈猫;还有耷拉着耳朵的猫,比如苏格兰折耳猫。

遇到这种情况该如何处理呢? 这时,寻找一条在狗中常见而在猫中不常见的曲线作为“特征检测器”,例如“长嘴的轮廓”。 如果同时使用两个‘特征检测器’,准确率会比只使用一个‘特征检测器’更高。

举个更复杂的例子,100多种狗如何区分? 这时,仅仅依靠耳朵轮廓、长嘴轮廓等“特征检测器”是不够的。 尾巴的轮廓和额头的轮廓也必须作为“特征检测器”,使识别更加准确。

图4 犬种动员大会

我们来看看卷积家族的第四个兄弟,‘卷积层’

了解四兄弟就成功了一大半

上一节末尾提到了同时使用多个“特征检测器”的方法。

“如果在图像上扫描多个特征检测器,那么卷积算法是否需要在循环中运行很多次?然后这些多次循环运行和特征检测器(也称为卷积核和滤波器)将通过它被称为‘卷积层’,卷积层生成的图像数量就是‘特征检测器’的数量。”

请看下面的图5。 共有三个特征检测器:“耳朵曲线”、“鼻子曲线”和“背部曲线”。 这三个特征检测器经过卷积算法处理后,一张图片就变成了三个。

图5 三个特征检测器将一张图片变成三张图片

一张图像对应一个特征检测器

好了,到目前为止,你知道什么是“卷积”,什么是“卷积算法”,什么是“卷积核”,什么是“卷积层”,CNN的主要核心本质,可以说你已经知道一大半了它的。 如果你应聘的是普通的工程师职位,无论面试官多么傲慢,他心里都会给你一个“还可以”的评价。

“神经”是什么意思? 作弊。

这是一个欺骗性的词,一个欺骗性的词,一个神秘的词,一个误导性的词。 如果你想学AI,请忽略这个词。 超模当初就被这个词误导了,被骗了。 至少因为耽误了半年的好时光。

CNN算法的发明者(也可能是其背后的商业推广团队)表示,他的算法与人脑一样智能,其结构和产生智能的原理与大脑中的“神经元网络”相同。 这是无稽之谈。 更不用说人类先进的智能,比如归纳分析、推理、想象力等是否来自大脑。 目前尚未确定。 这只是一个猜测或者假设(超模君和我的大部分码奴同事都认为大脑只是相当于电脑主板,“南桥”只负责外部设备)。

即使它确实来自大脑中的神经元网络,这个CNN也与神经元网络没有任何共同之处。

其实所谓“神经元”是指当CNN算法运行到最后时,会生成一个或一些向量。 向量上的元素也称为“感知器”

马要想跑得快,除了多吃草外,路上还不能有坑洼。 否则马腿踩坑洼就会断腿。 “神经元”这个词是一个坑。 超模君流血求教。 ,绕过这个坑。 正因为“神经元”、“神经元”和“神经网络”纯粹是欺骗,所以我没有将它们包括在13个关键术语中。

除了“卷积层”之外,其他两层是什么?

CNN 中的“网络”是什么意思?

卷积、神经、网络,大家都已经知道‘卷积’和‘神经’的含义了,我们来谈谈‘网络’这个词。

这个词与坏小子“神经”搭配在一起时具有欺骗性,但如果单独使用,它也有一些含义。 在解释其真正内涵之前,超模先带大家了解一下另外四个关键词。 ‘池化层’、‘全连接层’、‘扁平化’、‘权重系数’(权重系数这个词也很重要,大家一定要记住)

‘池化层’,它的主要作用是减小图像的尺寸或者像素的数量,从而减少整个系统的计算负荷。 例如,下图6将6×6矩阵更改为3×3矩阵。 2×2的小区域只保留最大值,其余的都忽略掉,这样6×6就变成了3×3

图6 池化层示例

通常“池化”和“卷积层”是在迭代循环中运行的,也就是说,首先对图像进行卷积,然后使用池化层来减小卷积后图像的尺寸,然后使用一组滤波器成立。 然后使用卷积层处理池化图像,然后再次池化,然后卷积,然后再次池化......

这样循环迭代多次,最终形成一组比较小的图片。 图片的数量是前面卷积层中使用的滤波器数量的乘积。 例如,第一个卷积层使用 64 个滤波器,第二个卷积层使用 64 个滤波器。 累积层使用8个滤波器,第三个卷积层使用4个滤波器。 那么经过3次循环迭代后生成的图片数量为64×8×4=2048张。

图7 卷积层和池化层的两次循环迭代

照片尺寸越来越小,照片数量却越来越多

接下来是“全连接层”。 从代码从者的角度来看,应该叫‘求和层’才更合理、更实用。

大家都知道图片是一个矩阵。 最后一个池化层之后有多少张图片就有多少个矩阵。 “全连接层”的任务是将多个矩阵变成一个向量,将二维矩阵变成一维矩阵。 这不就是三维向量的“展平”吗? 它使矩阵变平。

那么它是如何被扁平化的呢? 这是两次“求和”。 第一次是通过卷积池化对图像中每个像素的值进行“求和”。 这一步有什么实际意义呢?

以狗耳曲线为例。 狗耳朵可以在图片中的任何位置。 “求和”的目的是“我不在乎狗耳曲线在哪里,我只想要狗耳曲线”。 这个和的值越大,图中的狗耳曲线就越多。 含有狗耳朵的可能性就越大。

对n张图片进行“总结”后,您将得到n个“和”。 如果将它们放入向量中,它将是一个包含 n 个元素的向量。 那么如何将这个向量转化为数值呢?

也就是第二个‘求和’,我们找到一个n个元素的向量,它与上一个‘求和’得到的n个元素的向量垂直(为了书写方便,我们称之为向量A),也包含n个元素(对于为了书写方便,我们称之为向量B)。 如果两个向量相乘,我们不就得到一个数值了吗(为了书写方便,我们称之为‘V狗’)?

那么如何填写向量B中元素的值,也就是‘权重系数’。 这个“权重系数”有什么实际意义呢? 大家都知道狗有各种“特征检测器”,但在判断是否是狗时,各种特征的权重是不同的。 例如,“卷尾”的权重大于“垂耳曲线”的权重。 如果图片中发现一条卷曲的尾巴,那么它一定是一只狗,而不是一只猫。

垂耳的曲线是不同的。 狗中也有竖耳的,如二哈君,猫中也有垂耳的,如苏格兰折耳猫。 这样,我们可以将“卷尾特征检测器”的权重系数设置为20,将“波瓣曲线特征检测器”的权重系数设置为10。

至此我们已经把图片中的动物是不是狗的问题转化为“数值”了。 同理,我们也可以找到猫的向量B',并用不同的权重系数填充它。 例如,将卷尾的权重系数设置为0,将叶瓣的权重系数设置为2。向量B'也与向量A相加。通过相乘,我们还可以得到一个数值' V猫'。 将上面提到的“V猫”和“V狗”放入只有这2个元素的向量中。 这个二维向量是“完全连接”层的输出。

‘全连接’是指对最后一个池化层之后的所有图像的所有像素值进行汇总。 一切就是一切,所有的图片,所有的像素值,连接本质上就是一个求和。

所有图像、所有像素、所有连接,就像一张网,这就是‘卷积神经网络’这句话中‘网络’一词的由来,因为‘网络’也不太对劲(只是看起来有点类似) in shape),很容易引起歧义,所以我没有将其包含在13个关键词中。

虽然我不同意“神经”这个词,但我认为它具有误导性。

但为了和面试官交流,我们还是得说说CNN里的“神经元”这个词指的是什么? 指的是上面提到的‘V狗’和‘V猫’。 如果不仅要区分猫和狗,还要区分五种动物:猫、狗、猪、羊、鸡,那么全连接层之后是包含五个元素向量的层,神经元指的是“V狗”, ‘V猫’、‘V猪’、‘V羊’、‘V鸡’。 它还有一个名字叫‘感知器’,其实这个名字更准确。

有一个由“感知器”组成的向量。 下一步非常简单。 对“V 狗”和“V 猫”进行归一化并将其转换为概率值。 例如,如果V狗=200,V猫=3,那么图片是狗的概率即200÷(200+3)=98.5%。 是猫的概率是1.5%。

下半年CNN从“深度学习”中学到了什么?

CNN的根本缺陷是什么?

在本节中,我们将讨论 AI 或 CNN 中的另一个常用词“深度学习”。 其他软件的码从编码完成后,可以直接使用,不会有bug。

基于CNN的AI软件则不同。 代码从机完成编码后,不会有bug,但只会完成前半部分。 也就是说,即使码从机完成编码,软件也无法使用。 它必须学习和训练它。 学习培训完成后,软件无法使用。 只能以后再用。

学习什么、训练什么? 我让你记住、牢记的两个字你还记得吗? 一个是“过滤器”(小矩阵),另一个是“权重系数”(数字)。 学习的过程就是不断调整‘滤波器’和‘权重系数’的过程。

码从刚交付时,滤波器和权重系数都非常不准确。 识别是猫还是狗的准确率小于0.001%。 这时候,给它一张图片,告诉它答案,也就是告诉它这张图片。 上图是一只猫或一只狗。 这时,AI软件需要修改滤波器和权重系数,直到找到一组或一组滤波器和权重系数,使其得出的结论与正确答案相同或接近。

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

然后给它第三张已经有正确答案的图片,它再次校正滤波器和权重系数。 如此往复,不断修正,……经过数千张图片,AI会得到一组非常合理的滤镜和权重系数。 AI软件可以利用这组滤波器的权重系数来准确识别人。 猫是狗。 对于比识别猫狗更复杂的问题,例如识别猫、狗、羊、猪、鸡可能需要数十万张有正确答案的图片供AI软件学习。

这种学习具有三个特点:

1 一般来说,训练量越大,准确率越高。

正是这个原因,在AI机器翻译领域,大语言翻译,比如英汉翻译,由于训练量大,准确率很高。 但小语种的情况并非如此,例如亚美尼亚语到中文。 由于训练不足,准确率低很多。

2. 学习进度一开始很快,随着时间的推移会变慢。

3、无论训练量有多大,准确率都无法达到100%。 这就需要关键词“过拟合现象”。 即使你给它一亿张照片并让它学习,前一亿张照片也会被拍摄。 错误仍然可能发生。 “过拟合现象”是基于CNN算法的AI软件无法消除的根本性固有缺陷。

也正是因为这个原因,AI无法取代人类司机,因为你认错1%的猫狗并不重要,但如果你在开车时识别错误,很可能会导致车子坠毁。并杀人。 因此,目前的人工智能汽车仍仅限于在景区专用道路上缓慢行驶。

综上所述

最后,让我回顾一下本文中提到的 CNN 术语和概念。

13个关键术语的理解:卷积核、卷积算法、卷积、卷积层(统称为卷积家族四兄弟)、滤波器、特征检测器(卷积核的两个别名)、池化层、全连接层、总结求和,权重系数,扁平化,深度学习,过拟合现象,感知器。

还有三个词会误导、欺骗人,但为了和面试官沟通,你还需要知道:神经、神经元、神经网络。

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

写在最后

我觉得写得很好,请支持超模。 尤其是这套《物理之旅:54位闪耀人类的物理学家》。

54位物理学史上的伟大大师等你来启蒙。

如果你想了解更多,就多关注这套《物理之旅:54位闪耀人类的物理学家》吧。

现在购买即送“符号之美”红包一套+1元,立即预购! ! !

作者简介:历史学家,好奇心强,热爱科学,知识面广。 本人从事软件编程十余年,主要专注于底层核心软件,熟悉加密、解密、AI等算法。 我喜欢国学和历史,也喜欢和看重科技史。 我相信,只有了解科技发现和发明的历史,才能培养一流的颠覆性创新人才。 我热爱科普,认为中国现在的很多问题都是科普不够造成的,比如创新人才缺乏、医患纠纷等。

本文为网易新闻·网易号《每个人都有态度》专题内容