加入收藏 | 设为首页 | 会员中心 | 我要投稿 汽车网 (https://www.0577qiche.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长资讯 > 外闻 > 正文

什么是卷积神经网络?

发布时间:2023-04-06 13:25:54 所属栏目:外闻 来源:
导读:人工智能有一个重要领域就是图像识别。比如:有许多软件可以通过拍照的方法识别出不同的物体。我用它去拍摄我家的狗,发现它不仅能够识别出这是狗,甚至还能够识别出狗的类型。

大家想知道图像识别究竟是如何做到
人工智能有一个重要领域就是图像识别。比如:有许多软件可以通过拍照的方法识别出不同的物体。我用它去拍摄我家的狗,发现它不仅能够识别出这是狗,甚至还能够识别出狗的类型。

大家想知道图像识别究竟是如何做到的吗?

视觉原理

把一副图像输入计算机,计算机会把它变成一大堆数字,然后通过连接网络和机器学习的大量训练知道什么样的数字表示什么物体。但是,如果所有的图像都通过这种方法进行训练,效率是非常低的。而且,当图像稍微进行了放缩、旋转时,计算机可能就不认识它了。

相比来讲,人类对于物体的识别训练却非常快——人们只要见到过几次摩托车和汽车,就能牢牢记住他们的区别。下次再遇到摩托车时,哪怕它的方向变了,位置变了,或者撞破了,我们依然能区分这是摩托车,而不是汽车,这是为什么?

大脑最初接受视觉信号的神经皮层叫做初级皮层V1,它所获得的是一大堆像素点。随后,V1皮层会把处理过的信号传递到V2皮层,V2皮层会得到图像的边缘、方向等信息;V2皮层再次对信号进行处理,进入V3皮层,在这里神经元会获得物体的轮廓、细节等信息…

信号经过多个皮层的传递,最终抽象出物体的大量特征,从而做出判断。

根据这个发现,许多科学家开始研究如何利用计算机软件模拟视神经系统,其中有突出贡献的就是我们上回谈到的杨立昆。他设计了真正实用的卷积神经网络(Convolutional Neural Network, CNN),并且把它用在了图像识别领域,取得了巨大成功。

不过,我们仔细观察这些图形就会发现它们都有一些共同特征,比如中间应该有一个十字交叉、左上部位有一个向右下的线条、右上部分有一个向左下的线条等等。尽管每一幅图片的特征可能不完全一样,但是满足的共同特征越多,图片就越有可能是X。

共同特征

于是,我们首先通过一些方法来寻找这些特征,具体方法是:用一个3*3或者5*5的矩阵与图像上对应位置的矩阵做卷积,所谓卷积就是矩阵上对应元素相乘,然后再把乘积加起来。

举个例子:比如我有一个7*7的黑白图像,里面所有的白色都定为1,黑色定为0,把图片转化成一个数字矩阵,我们称为原矩阵。

卷积核

用这个卷积盒在原来的图像上从左到右、从上到下滑动。每滑动一步,都把重叠区域作卷积,如下图所示,这样就获得了一副卷积的结果矩阵,称为特征值矩阵。

磁化、激活、全连接网络

图片的特征寻找完了,下一步又该如何做呢?

其实有时候,我们只需要知道这幅图像的某个部位存在这个特征就好了,并不关心那些没有这种特征的位置。所以,我们可以将无用的信息去掉,缩小信息处理量,这个过程叫做磁化。

比如,我们可以将特征图中每个2*2的方框内最大的值作为整个方框的值,于是就能够将特征图缩小,从5*5变成了3*3,当然如果我们愿意,它还可以更小,但它依然包含了特征信息和相应的位置。

然后,我们可以将优化后的特征图代入激活函数(例如Sigmoid函数),当特征值比较大的时候,获得的激活值比较大;特征值比较小时,激活值也小。这样,这一层的特征提取就做完了。

总结来讲:经历了卷积、磁化、激活三个步骤,模拟了人眼的一层视神经,通过这一次的操作,我们得到了这张图非常细节的特征。随后我们将第一层的输出作为第二层的输入,进行第二次卷积、磁化、激活,获得更大范围的图像特征,以此类推,这就是福岛邦彦所提出的神经认知模型。

最终,当我们获得了足够宏观的信息时,我们就将这些经过处理的信息接入全连接网络,通过机器学习过程判断最终输出的这幅图像是什么。由于信息经过了预处理,所以这回全连接网络的复杂度远远低于直接将所有数据输入网络的情况。

这里面有两件事要和大家说明:

 第一,卷积盒的参数,以及连接网络的参数,最初是人们预设的。可是在进行训练的时候,机器会根据输入和输出,运用反向传播和梯度下降的方法自动调整它们,所以说卷积核和全连接网络的参数本质上并没有什么区别,CNN是全连接网络的一种简化算法。
 第二,在进行卷积磁化的过程中,由于我们要提取的特征种类很多,比如横着的边缘、竖着的边缘、斜着的边缘,以及局部的鼻子、眼睛等等,于是图像的层数会越来越多。就是它不仅仅具有长和宽两个维度,还具有高,这个高就表示了图像的不同特征。在进行卷积运算的时候,卷积核其实不是二维的,而是三维的,我们一般做的卷积运算都是三维矩阵,或者说张量的卷积操作。


怎么样?科学家们的设想是不是非常厉害? 几乎完全模拟了人类的认知过程。当我们用数据训练机器识图之后,机器最终找到了最优化的参数和卷积核,这个过程就叫做训练,就如同小的时候爸爸妈妈带着我们去逛公园,告诉我们这是杨树,那是柳树一样。我们把一个机器没有见到过的图片丢给机器,机器也能够判断这个图片到底是什么,虽然我们不知道机器到底把参数设置成什么样子。同样,当我们认识了杨树和柳树的时候,几乎能够一眼将它们分辨开,但是我们自己却不清楚大脑是如何做到这一点的。

回想一下,我们进入人脸识别系统的时候,有时戴着口罩它也能认出我们,因为它提取的特征已经足够了。但也有时候,人工智能的智慧不是太强,比如我的手机,我把眼睛摘下来,却不认识我了,此时我感到自己也许会变成超人。

数据与算力

你可能不知道,我们每个人其实都给机器投喂过数据。比如,有时候你登陆某个网站,网站上会让你识别模糊不清的文字和数字,甚至让你在图中找出各种稀奇古怪的东西。也许你以为这只是网站故意刁难你,但是也很有可能,这是网站在用你的肉体训练它的机器呢。你每点一次验证码,它就完成了一次机器学习。

人工智能的另一个重要基础是算力。在人工智能领域,所需要的计算难度并不大,比如卷积运算就是简单的加法和乘法。但是由于图片像素矩阵大,卷积核又多,计算工作依然很繁重。举例来讲,一张800*600的彩色图片,RGB三种颜色,像素点有144万个之多。如果用3*3*3的卷积做一次卷积,需要计算大约1300万次乘法和1200万次加法。这还只是用一个卷积盒进行一次处理。在实际的训练中需要用成百上千张图片进行成千上万次的训练。

由于训练和检验过程都比较慢,所以以前的人工智能软件基本不能实现实时处理。想想看几年以前,我们用的那些图像处理软件,是不是都要拍好的照片才能处理,没办法实时美颜?

CPU就是计算机的中央处理器,它的特点是可以处理许多复杂的问题,但是并行能力差,只能算了一个再算另一个,就好像一个老教授,什么都会算,但是你得一样一样来。

处理显示问题的显卡,里面装有的处理器叫做GPU,GPU的特点是:它只能处理比较简单的问题,例如图像渲染问题。但是它的并行能力非常强,就好像一万个小学生。处理人工智能问题,其实大量的运算交给小学生就够了,所以人们就习惯了用GPU来计算人工智能。GPU的典型的厂商是英伟达,曾经,英伟只不过是一家以游戏显卡为主的公司,而随着AI时代的到来,它们已经达到了时代先驱的位置。

现在,我们有了更快的人工智能处理器——NPU(神经网络处理器),它是专门用来计算人工智能神经网络问题的,比GPU更加专业,效率也更高。这个处理器不仅仅是一万名小学生,他还拥有着超级的能力,能够同时做大量的加减乘除运算。
 

(编辑:汽车网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章