barriers / 阅读 / 详情

ofo用人工智能进行单车调度?

2023-08-23 18:22:45
共1条回复
黑桃云

日前,ofo宣布将谷歌TensorFlow人工智能系统和卷积神经网络技术应用于出行需求预测,进而更好地布放单车,让用户随时随地有车可骑。

TensorFlow是谷歌研发的第二代人工智能开源系统,其采取数据流图(data flow graphs),主要用于数值计算,全世界所有开发者都可取用。卷积神经网络技术即CNN则是眼下日趋普及的深度学习的主流实现方式,它模拟动物神经网络工作原理,可以进行大型图像处理,同时也被应用在诸多主流AI场景中。

ofo宣称其对CNN技术的应用在共享单车行业属于首创,它的具体做法是,将智能锁返回的骑行和定位数据形成热力图,不只是可以展示用户骑行轨迹、车辆分布网络,还有不同区域的需求热度。

通过对热力图进行网格化分析,就可以提取不同时段同一区域或者同一时段不同区域的图像相关性特征,进而精准预测下一个时段某一区域内会出现的需求数,从而为运营调度提供更好的决策。

相关推荐

卷积神经网络算法是什么?

一维构筑、二维构筑、全卷积构筑。卷积神经网络(Convolutional Neural Networks, CNN)是一类包含卷积计算且具有深度结构的前馈神经网络(Feedforward Neural Networks),是深度学习(deep learning)的代表算法之一。卷积神经网络具有表征学习(representation learning)能力,能够按其阶层结构对输入信息进行平移不变分类(shift-invariant classification),因此也被称为“平移不变人工神经网络(Shift-Invariant Artificial Neural Networks, SIANN)”。卷积神经网络的连接性:卷积神经网络中卷积层间的连接被称为稀疏连接(sparse connection),即相比于前馈神经网络中的全连接,卷积层中的神经元仅与其相邻层的部分,而非全部神经元相连。具体地,卷积神经网络第l层特征图中的任意一个像素(神经元)都仅是l-1层中卷积核所定义的感受野内的像素的线性组合。卷积神经网络的稀疏连接具有正则化的效果,提高了网络结构的稳定性和泛化能力,避免过度拟合,同时,稀疏连接减少了权重参数的总量,有利于神经网络的快速学习,和在计算时减少内存开销。卷积神经网络中特征图同一通道内的所有像素共享一组卷积核权重系数,该性质被称为权重共享(weight sharing)。权重共享将卷积神经网络和其它包含局部连接结构的神经网络相区分,后者虽然使用了稀疏连接,但不同连接的权重是不同的。权重共享和稀疏连接一样,减少了卷积神经网络的参数总量,并具有正则化的效果。在全连接网络视角下,卷积神经网络的稀疏连接和权重共享可以被视为两个无限强的先验(pirior),即一个隐含层神经元在其感受野之外的所有权重系数恒为0(但感受野可以在空间移动);且在一个通道内,所有神经元的权重系数相同。
2023-08-16 10:39:481

卷积神经网络的数学推导及简单实现

先来看一个网络: 这是一个简单的CNN的前半部分,不包含全连接层,而且已有一个卷积层和一个池化层,卷积核大小是2X2,步长1,Padding为0,Pooling操作为Max Pooling,大小同样是2x2 先来看正向的计算,卷积操作就没什么好说的了,不了解的可以随便百度一下,下面直接写公式:是节点 的加权输入, 是激活函数ReLU 算出所有的 后,就是Max Pooling了:卷积层和池化层的前向计算都说完了,虽然实际中一般不止一层,不过都是可以套用的,接下来就是全连接层了: 如图所示,max pooling的结果‘拉平"后就是全连接层的输入向量了: 这是之前的一篇关于DNN的推导,就不赘述了: https://www.jianshu.com/p/bed8d5dac958 关于全连接层的误差传播已经知道怎么算了,接下来的问题就是将误差传回池化层及卷积层了:上图中 是FC(全连接)层中输入层的误差,也是池化层的下一层的误差,公式在上面一篇文章中已经讨论了: 而输入层是没有激活函数的,所以 ,即:在得到误差项之后,进一步求Pooling操作之前的误差项,如果Max Pooling如下: 则upsample操作则同样: 推导过程如下: 若x1为最大值,则不难求得下列偏导数:因为只有最大的那一项会队x5产生影响,所以其余项的偏导数都为0,又因为: ,所以:如下图所示:池化层没有参数需要更新,所以只要把误差传给上一层就可以了,接下的问题就是已知卷积层的上一层(也就是正向计算的下一层)误差,求卷积层的误差以及更新卷积核了。 首先已知了上一层所有节点 的误差项 ,来看看如何更新卷积核的梯度。由于任一 都对所有 有影响,根据全导数公式:上面已经讨论过 是节点 的加权输入,所以:最后,就是把误差继续往上一层传递了,如图: 先看几个例子:归纳一下,可以发现如下图的规律: 公式如下: 写成卷积形式:总算写完了,只是后面的有些粗糙,以后有时间再完善吧
2023-08-16 10:40:351

初识卷积神经网络

按照上文中介绍的神经网络,如果处理一张图片的话,参数有多大呢?假设图像的大小为1200 * 1200,下一层的神经元个数为10^5,不难得出参数量为 1200 * 1200 * 10^5 = 1.44 * 10^12。可以看出一层的参数量就是很大了,如果再多加几层,那参数量大的应该是超出了内存的承受范围,这从研究和工程的角度都是不允许的。而且参数太多,很容易造成过拟合。 怎么解决这个问题呢?经过研究,从稀疏连接、参数共享和平移不变性三个方面来进行改进。 可能有些人不懂这种稀疏连接是怎么实现的?先来说说卷积操作,以一个二维矩阵为输入(可以看作是一个单通道图片的像素值),卷积产生的稀疏连接根本原因就是这块的核函数,一般的核函数的大小远小于输入的大小。 以下图例:卷积操作可以看做是一种滑窗法,首先,输入维度是4×4,输入中红色部分,先和核函数中的元素对应相乘,就是输出中左上角的元素值s1,即 s1 = a×k1+b×k2+e×k3+f×k4。 参数共享是指在一个模型的多个函数中使用相同的参数,它是卷积运算带来的固有属性。 在全连接中,计算每层的输出时,权重矩阵中的元素只作用于某一个输入元素一次; 而在卷积神经网络中,卷积核中的每一个元素将作用于每一个局部输入的特定位置上。根据参数共享的思想,我们只需要学习一组参数集合,而不需要针对每一个位置的每一个参数来进行优化学习,从而大大降低了模型的存储需求。 如果一个函数的输入做了一些改变,那么输出也跟着做出同样的改变,这就时平移不变性。 平移不变性是由参数共享的物理意义所得。在计算机视觉中,假如要识别一个图片中是否有一只猫,那么无论这只猫在图片的什么位置,我们都应该识别出来,即就是神经网络的输出对于平移不变性来说是等变的。 根据稀疏连接、参数共享和平移不变性三个思想,卷积核就应运而生了。看下图,有个直观的感受。 上图就是在一个通道上做的卷积,但现实中,图片一般是由3个通道构成(RGB),卷积核也由二维的平面生成了三维立体。具体的样子如下图: 如上图所示,Filter W0 即为卷积核,其大小为(3 * 3 * 3),每个3*3的二维平面会和图片的相应的通道进行卷积,3个通道的结果相加后加上统一的偏置b0,结果即为Output Volume 第一个通道的第一个位置的数。 从上图还可以看出 Input Volume 四周加了0,这个0叫做padding,一般是为了卷积划动的过程中包含原有的所有数;而多通道卷积核计算过程和卷积核计算过程,不太一样的是多通道卷积核计算过程每次滑2下,这个滑动的距离叫做步长-stride。 所以通过输入大小和卷积核大小,我们可以推断出最终的结果的大小。比如上图卷积核计算过程,输入大小为5 * 5,卷积核为3 * 3,那么卷积核在原图上每次滑动一格,横向滑3次,纵向也是3次,最终结果为 3 * 3。在多通道卷积核计算过程中,每次滑动为2格,横向滑3次,纵向也是3次,最终结果也为 3*3。可以推断出,最终大小的公式为:(输入大小 - 卷积核大小)/ 滑动步长。 在卷积核计算过程,可以看出经过卷积后的大小变小了,那能不能经过卷积计算且大小不变呢?这里,引出了 padding 的另一个作用,保证输入和输出的大小一致。比方输出的 5*5 加 padding,那么四周就被0围绕了,这时的输入大小就变为7 * 7, 再经过 3 * 3的卷积后,按照上边推断出的公式,可以得出 最终的大小为 5 * 5,这时与输入大小保持了一致。 池化层夹在连续的卷积层中间, 用于压缩数据和参数的量,减小过拟合。 简而言之,如果输入是图像的话,那么池化层的最主要作用就是压缩图像。 池化层用的方法有Max pooling 和 average pooling,而实际用的较多的是Max pooling。下图演示一下Max pooling。 对于每个2 * 2的窗口选出最大的数作为输出矩阵的相应元素的值,比如输入矩阵第一个2 * 2窗口中最大的数是1,那么输出矩阵的第一个元素就是1,如此类推。 全连接层的部分就是将之前的结果展平之后接到最基本的神经网络了。 根据上边的介绍,可以得出,卷积核的通道数目和输入的图像的通道数目是保持一致的,而输出的通道数目是和卷积核数目是一致的。这样参数量可以得出,假设输入的通道为5,卷积核大小为 3 * 3 ,输出的通道数目为10,那么参数量为:3 * 3 * 5 * 10,其中3 * 3 * 5是1个卷积核的参数个数,3 * 3 * 5 * 10 是 10个卷积核的参数个数,也就总共的参数个数。 在卷积中,滑动一次会经过多次的点乘,只经过一次的加法,所以加法的计算量可以忽略不计。其中,滑动一次会的点乘次数和卷积核的大小有关系,比方 3 * 3的卷积,则是经过了 3 * 3 = 9次点积。一共滑动多少次和输出大小有关系,比方 输出的结果也为 3 * 3,那么就是滑动了9次。这样就可以得出输入和输出单通道时计算量 3 * 3 * 3 * 3 = 81。那么对于输入多通道时,卷积核也需要增加相应的通道数目,此时应该在刚才的计算量上乘以通道的数目,得出输入多通道的一个卷积核的计算量。这样,对于输出多通道,总的计算量则是乘以多个卷积核即可。
2023-08-16 10:41:051

前馈神经网络、BP神经网络、卷积神经网络的区别与联系

区别:一、计算方法不同1、前馈神经网络:一种最简单的神经网络,各神经元分层排列。每个神经元只与前一层的神经元相连。接收前一层的输出,并输出给下一层.各层间没有反馈。2、BP神经网络:是一种按照误差逆向传播算法训练的多层前馈神经网络。3、卷积神经网络:包含卷积计算且具有深度结构的前馈神经网络。二、作用不同1、前馈神经网络:结构简单,应用广泛,能够以任意精度逼近任意连续函数及平方可积函数.而且可以精确实现任意有限训练样本集。2、BP神经网络:具有很强的非线性映射能力和柔性的网络结构。网络的中间层数、各层的神经元个数可根据具体情况任意设定,并且随着结构的差异其性能也有所不同。3、卷积神经网络:具有表征学习能力,能够按其阶层结构对输入信息进行平移不变分类。三、用途不同1、前馈神经网络:主要应用包括感知器网络、BP网络和RBF网络。2、BP神经网络:1)函数逼近:用输入向量和相应的输出向量训练一个网络逼近一个函数;2)模式识别:用一个待定的输出向量将它与输入向量联系起来;3)分类:把输入向量所定义的合适方式进行分类;4)数据压缩:减少输出向量维数以便于传输或存储。3、卷积神经网络:可应用于图像识别、物体识别等计算机视觉、自然语言处理、物理学和遥感科学等领域。联系:BP神经网络和卷积神经网络都属于前馈神经网络,三者都属于人工神经网络。因此,三者原理和结构相同。扩展资料人工神经网络的优点:1、具有自学习功能。自学习功能对于预测有特别重要的意义。预期未来的人工神经网络计算机将为人类提供经济预测、市场预测、效益预测,其应用前途是很远大的。2、具有联想存储功能。用人工神经网络的反馈网络就可以实现这种联想。3、具有高速寻找优化解的能力。寻找一个复杂问题的优化解,往往需要很大的计算量,利用一个针对某问题而设计的反馈型人工神经网络,发挥计算机的高速运算能力,可很快找到优化解。参考资料来源:百度百科-前馈神经网络参考资料来源:百度百科-BP神经网络参考资料来源:百度百科-卷积神经网络参考资料来源:百度百科-人工神经网络
2023-08-16 10:42:541

神经网络简述

机器学习中谈论的神经网络是指“神经网络学习”,或者说,是机器学习和神经网络这两个学科领域的交叉部分[1]。 在这里,神经网络更多的是指计算机科学家模拟人类大脑结构和智能行为,发明的一类算法的统称。 神经网络是众多优秀仿生算法中的一种,读书时曾接触过蚁群优化算法,曾惊讶于其强大之处,但神经网络的强大,显然蚁群优化还不能望其项背。A、起源与第一次高潮。有人认为,神经网络的最早讨论,源于现代计算机科学的先驱——阿兰.图灵在1948年的论文中描述的“B型组织机器”[2]。二十世纪50年代出现了以感知机、Adaling为代表的一系列成功,这是神经网络发展的第一个高潮[1]。B、第一次低谷。1969年,马文.明斯基出版《感知机》一书,书中论断直接将神经网络打入冷宫,导致神经网络十多年的“冰河期”。值得一提的是,在这期间的1974年,哈佛大学Paul Webos发明BP算法,但当时未受到应有的重视[1]。 C、第二次高潮。1983年,加州理工学院的物理学家John Hopfield利用神经网络,在旅行商问题上获得当时最好结果,引起轰动;Rumelhart等人重新发明了BP算法,BP算法迅速走红,掀起神经网络第二次高潮[1]。 D、第二次低谷。二十世纪90年代中期,统计学习理论和支持向量机兴起,较之于这些算法,神经网络的理论基础不清晰等缺点更加凸显,神经网络研究进入第二次低谷[1]。 E、深度学习的崛起。2010年前后,随着计算能力的提升和大数据的涌现,以神经网络为基础的“深度学习”崛起,科技巨头公司谷歌、Facebook、百度投入巨资研发,神经网络迎来第三次高潮[1]。2016年3月9日至15日,Google人工智能程序AlphaGo对阵韩国围棋世界冠军李世乭,以4:1大比分获胜,比众多专家预言早了十年。这次比赛,迅速在全世界经济、科研、计算机产业各领域掀起人工智能和深度学习的热烈讨论。 F、展望。从几个方面讨论一下。 1)、近期在Google AlphaGo掀起的热潮中,民众的热情与期待最大,甚至有少许恐慌情绪;计算机产业和互联网产业热情也非常巨大,对未来充满期待,各大巨头公司对其投入大量资源;学术界的反应倒是比较冷静的。学术界的冷静,是因为神经网络和深度神经网络的理论基础还没有出现长足的进步,其缺点还没有根本改善。这也从另一个角度说明了深度神经网络理论进步的空间很大。 2)、"当代神经网络是基于我们上世纪六十年代掌握的脑知识。"关于人类大脑的科学与知识正在爆炸式增长。[3]世界上很多学术团队正在基于大脑机制新的认知建立新的模型[3]。我个人对此报乐观态度,从以往的仿生算法来看,经过亿万年进化的自然界对科技发展的促进从来没有停止过。 3)、还说AlphaGo,它并不是理论和算法的突破,而是基于已有算法的工程精品。AlhphaGo的工作,为深度学习的应用提供了非常广阔的想象空间。分布式技术提供了巨大而廉价的计算能力,巨量数据的积累提供了丰富的训练样本,深度学习开始腾飞,这才刚刚开始。一直沿用至今的,是McChlloch和Pitts在1943年依据脑神经信号传输结构抽象出的简单模型,所以也被称作”M-P神经元模型“。 其中,f函数像一般形如下图的函数,既考虑阶跃性,又考虑光滑可导性。实际常用如下公式,因形如S,故被称作sigmoid函数。把很多个这样的神经元按一定层次连接起来,就得到了神经网络。两层神经元组成,输入层接收外界输入信号,输出层是M-P神经元(只有输出层是)。感知机的数学模型和单个M-P神经元的数学模型是一样的,如因为输入层只需接收输入信号,不是M-P神经元。 感知机只有输出层神经元是B-P神经元,学习能力非常有限。对于现行可分问题,可以证明学习过程一定会收敛。而对于非线性问题,感知机是无能为力的。BP神经网络全称叫作误差逆传播(Error Propagation)神经网络,一般是指基于误差逆传播算法的多层前馈神经网络。这里为了不占篇幅,BP神经网络将起篇另述。 BP算法是迄今最为成功的神经网络学习算法,也是最有代表性的神经网络学习算法。BP算法不仅用于多层前馈神经网络,还用于其他类型神经网络的训练。 RBF网络全程径向基函数(Radial Basis Function)网络,是一种单隐层前馈神经网络,其与BP网络最大的不同是采用径向基函数作为隐层神经元激活函数。 卷积神经网络(Convolutional neural networks,简称CNNs)是一种深度学习的前馈神经网络,在大型图片处理中取得巨大成功。卷积神经网络将起篇另述。 循环神经网络(Recurrent Neural Networks,RNNs)与传统的FNNs不同,RNNs引入定向循环,能够处理那些输入之间前后关联的问题。RNNs已经在众多自然语言处理(Natural Language Processing, NLP)中取得了巨大成功以及广泛应用[5]。RNNs将起篇另述。[5] [1]、《机器学习》,周志华著 [2]、《模式识别(第二版)》,Richard O.Duda等著,李宏东等译 [3]、《揭秘IARPA项目:解码大脑算法或将彻底改变机器学习》,Emily Singerz著,机器之心编译出品 [4]、图片来源于互联网 [5]、 循环神经网络(RNN, Recurrent Neural Networks)介绍
2023-08-16 10:43:221

如何理解 Graph Convolutional Network(GCN)

从CNN到GCN的联系与区别——GCN从入门到精(fang)通(qi) 了解GCN(图卷积神经网络)之前,必须对离散卷积(具体说就是CNN中的卷积)有个清楚的认识。 如何通俗易懂地解释卷积? , 离散卷积本质就是一种加权求和。 如图1所示,CNN中的卷积本质上就是利用一个共享参数的卷积核, 通过计算中心像素点以及相邻像素点的加权求和构成feature map实现空间特征的提取 ,其中权重就是卷积核的值。 那么卷积核的值如何确定呢?实际上卷积核值的确定过程就是模型训练的过程:首先随机初始化卷积核的值,然后根据反向传播梯度下降不断优化(即不断更新卷积核的值)直到模型收敛,此时卷积核的值被确定。 卷积核的参数通过优化求出才能实现特征提取的作用,GCN的理论很大一部分工作就是为了引入可以优化的卷积参数。 注:这里的卷积是指深度学习(CNN)中的卷积,与数学中定义的卷积运算严格意义上是有区别的。可以参考该内容 卷积神经网络中的卷积与数学中卷积的区别 CNN在计算机视觉中具有广泛应用,对图片具有强大的特征提取能力。但需要注意的是: CNN处理的图像或者视频数据中的像素点(pixel)是排列很整齐的矩阵 (如图2所示,也就是很多论文中提到的Euclidean Structure)。 与之相对应,科学研究中还有很多 Non Euclidean Structure的数据,如图3所示,社交网络、信息网络中有很多类似的结构。 实际上,这样的网络结构(Non Euclidean Structure)就是图论中抽象意义上的拓扑图。 所以, Graph Convolutional Network中的Graph是指数学(图论)中的用顶点和边建立相应关系的拓扑图。 那么为什么要研究GCN?原因有三: 综上所述,GCN是要为除CV、NLP之外的任务提供一种处理、研究的模型。 GCN的本质目的是来提取不规则的拓扑图的空间特征 ,那么实现这个目标只有graph convolution这一种途径吗?当然不是,vertex domain(spatial domain)和spectral domain实现该目标是两种最主流的方式。 (1) vertex domain(spatial domain) 是非常直观的一种方式。顾名思义:提取拓扑图上的空间特征,那么就把每个顶点相邻的neighbors找出来。这里面蕴含的科学问题有二: a、按照什么条件去找中心vertex的neighbors,也就是如何确定receptive field? b、确定receptive field,按照什么方式处理包含不同数目neighbors的特征? 根据a,b两个问题设计算法,就可以实现目标了。推荐阅读这篇文章 Learning Convolutional Neural Networks for Graphs 图4是其中一张图片,可以看出大致的思路)。 这种方法主要的缺点如下: c、每个顶点提取出来的neighbors不同,使得计算处理必须针对每个顶点 d、提取特征的效果可能没有卷积好 (2) spectral domain 就是GCN的理论基础了。这种思路就是希望借助图谱的理论来实现拓扑图上的卷积操作。从整个研究的时间进程来看:首先研究GSP(graph signal processing)的学者定义了graph上的Fourier Transformation, 进而定义了graph上的convolution,最后与深度学习结合提出了Graph Convolutional Network。 认真读到这里,脑海中应该会浮现出一系列问题: Q1 什么是Spectral graph theory?(解释待定) Spectral graph theory 请参考,简单来说就是 借助于图的拉普拉斯矩阵的特征值和特征向量来研究图的性质 。 Q2 GCN为什么要利用Spectral graph theory? 这应该是看论文过程中读不懂的核心问题了,要理解这个问题需要大量的数学定义及推导,没有一定的数学功底难以驾驭(我也才疏学浅,很难回答好这个问题)。 所以,先绕过这个问题,来看Spectral graph实现了什么,再进行探究为什么? Graph Fourier Transformation及Graph Convolution 的定义都用到图的拉普拉斯矩阵,那么首先来介绍一下拉普拉斯矩阵。 对于图 , 其Laplacian 矩阵的定义为 , 其中 是Laplacian矩阵, 是顶点的度矩阵(对角矩阵),对角线上元素依次为各个顶点的度, 是图的邻接矩阵。看图5的示例,就能很快知道Laplacian 矩阵的计算方法。 这里要说明的是: 常用的拉普拉斯矩阵实际有三种 : 不需要相关内容的读者可以略过此部分 其实维基本科对 Laplacian matrix 的定义上写得很清楚, 国内的一些介绍中只有第一种定义 。这让我在最初看文献的过程中感到一些的困惑,特意写下来,帮助大家避免再遇到类似的问题。 为什么GCN要用拉普拉斯矩阵? 拉普拉斯矩阵矩阵有很多良好的性质,这里写三点我感触到的和GCN有关之处 superbrother 拉普拉斯矩阵与拉普拉斯算子的关系 GCN的核心基于拉普拉斯矩阵的谱分解,文献中对于这部分内容没有讲解太多,初学者可能会遇到不少误区,所以先了解一下特征分解。 矩阵的谱分解,特征分解,对角化都是同一个概念 ( 特征分解_百度百科 )。 不是所有的矩阵都可以特征分解 ,其充要条件为n阶方阵存在n个 线性无关 的 特征向量 但是拉普拉斯矩阵都是半正定对称矩阵 (半正定矩阵本身就是对称矩阵, 半正定矩阵_百度百科 , 此处这样写为了和下面的性质对应,避免混淆),有如下三个性质: 由上可知,拉普拉斯矩阵一定可以谱分解,且分解后有特殊形式。 对于拉普拉斯矩阵其谱分解为: 其中 ,是单位特征向量组成的矩阵, 是列向量。 是n个特征值构成的对角矩阵。 由于 是正交矩阵,即 因为 (这是定义) 所以 进而这里的特征分解又可以写成: 把传统的傅立叶变换以及卷积迁移到Graph上来,核心就是把拉普拉斯算子的特征函数 变为Graph对应的拉普拉斯矩阵的特征向量。 参考论文 The Emerging Field of Signal Processing on Graphs (a) Graph上的傅里叶变换 传统的傅立叶变换定义为 是信号 与基函数 的积分, 那么为什么要找 作为基函数呢?从数学上看, 是拉普拉斯算子的特征函数(满足特征方程), 就和特征值有关 。 广义的特征方程定义为 其中, (一个矩阵)是一种变换(对向量 变换), 是特征向量或者特征函数(无穷维的向量), 是特征值。 满足: 当然 就是变换 的特征函数 , 和特征值密切相关。 那么,可以联想了, 处理Graph问题的时候,用到拉普拉斯矩阵 (拉普拉斯矩阵就是拉普拉斯算子,想了解更多可以参考 Discrete Laplace operator ), 自然就去找拉普拉斯矩阵的特征向量了。 是拉普拉斯矩阵, 是其特征向量,自然满足下式 离散积分就是一种内积形式,仿照上述内容定义Graph的傅立叶变换 是Graph上的 维向量, 与Graph的顶点一一对应, 表示第 个特征向量的第 个分量。那么特征值(频率) 下的 的Graph傅立叶变换就是与 对应的特征向量 进行内积运算 。 注:上述的内积运算是在复数空间中定义的,所以采用了 ,也就是特征向量 的共轭。 利用矩阵乘法将Graph上的傅立叶变换推广到矩阵形式 : 即 在Graph上傅立叶变换的矩阵形式 为: 式中: 的定义与第五节中的相同 (b)Graph上的傅立叶逆变换(频域( )到时域( )) 类似地, 传统的傅立叶逆变换是对频率 求积分 : 迁移到Graph上变为对特征值 求和 : 利用矩阵乘法将Graph上的傅立叶变换推广到矩阵形式 : 即 在Graph上傅立叶逆变换的矩阵形式为: 式中: 的定义与第五节中的相同 (2)推广卷积 在上面的基础上,利用 卷积定理 类比来将卷积运算,推广到Graph上。 由卷积定理可知, 两个函数的卷积等于各个函数傅立叶变换的乘积的逆变换 ,即 将上述过程推广到Graph: 则有 存疑:可能是满足交换律?不确定 进一步得到 注:通过乘以 对等式右边做逆变换。 很多论文中的Graph卷积公式为: 式(2)中, 表示Hadamard product(哈达马积),对于两个维度相同的向量、矩阵、张量进行对应位置的逐元素乘积运算。 式(1)和式(2)是完全相同的。 (1)为什么拉普拉斯矩阵的特征向量可以作为傅里叶变换的基? 傅里叶变换一个本质理解就是: 把任意一个函数表示成了若干个正交函数(由sin,cos 构成)的线性组合。 那么: 为什么graph上任意的向量 都可以表示成这样的线性组合? 原因在于 是graph上 维空间中的 个线性无关的正交向量,由线性代数的知识可以知道: 维空间中 个线性无关的向量可以构成空间的一组基,而且拉普拉斯矩阵的特征向量还是一组正交基。 (2)怎么理解拉普拉斯矩阵的特征值表示频率? 在graph空间上无法可视化展示“频率”这个概念,那么从 特征方程 上来抽象理解。 将拉普拉斯矩阵 的 个非负实际特征值,从小到大排列为 ,而且最小的特征值 ,因为 维的全为1向量对应的特征值为0.(这一句不太懂)。 从特征方程的数学理解来看: 在有Graph确定的 维空间中,越小的特征值 表明:拉普拉斯矩阵 其对应的基 上的分量、“信息”越少,那么当然就是可以忽略的低频部分了。 其实 图像压缩 就是这个原理, 把像素矩阵特征分解后,把小的特征值(低频部分)全部变成0,PCA降维也是同样的,把协方差矩阵特征分解后,按从大到小取出前K个特征值对应的特征向量作为新的“坐标轴”。 Graph Convolution的理论告一段落了,下面开始Graph Convolution Network Deep learning 中的Graph Convolution直接看上去会和第6节推导出的图卷积公式有很大的不同,但是万变不离其宗,(1)式是推导的本源。 第1节的内容已经解释得很清楚:Deep learning 中的Convolution 就是要设计含有trainable共享参数的kernel,从(1)式看很直观:graph convolution中的卷积参数就是 Spectral Networks and Locally Connected Networks on Graphs 中简单粗暴地把 变成了卷积核 ,也就是: (为避免混淆,本文中称 是卷积核, 的运算结果为卷积运算矩阵) 式(3)就是标准的第一代GCN中的layer了, 其中 是激活函数, ,就跟三层神经网络中的weight一样是任意的参数,通过初始化赋值然后利用误差反向传播进行调整, 就是graph上对应于每个顶点的feature vector(由数据集提取特征构成的向量)。 第一代的参数方法存在着一些弊端,主要在于: (1) 每一次前向传播,都要计算 三者的矩阵乘积,特别是对于大规模的graph,计算的代价较高,也就是论文中, 的计算复杂度 (2) 卷积核不具有spatial localization(这个在第9节中进一步阐述) (3) 卷积核需要 个参数 由于以上的缺点第二代的卷积核设计应运而生。 Convolutional Neural Networks on Graphs with Fast Localized Spectral Filtering ,把 巧妙设计成了 ,也就是: 上面的公式仿佛还什么都看不出来,下面利用矩阵乘法进行变换,来一探究竟。 进而可以导出: 小说明: 上述等式成立的原因是 ,其中 (4)式就变成了: 其中 是任意的参数,通过初始化赋值然后利用误差反向传播进行调整。 式(5)所设计的卷积核其有点在于: (1)卷积核只有K个参数,一般K远小于n,参数的复杂度被大大降低了。 (2)矩阵变换后,神奇地发现不需要做特征分解了,直接用拉普拉斯矩阵L进行变换。然而由于要计算 ,计算复杂度还是 (3)卷积核具有很好的spatial localization,特别地,K就是卷积核的receptive field,也就是说每次卷积会将中心顶点K-hop neighbor上的feature进行加权求和,权系数就是 更直观地看, 就是对每个顶点上一阶neighbor的feature进行加权求和,如下图所示: 同理,K=2的情形如下图所示: 注: 上图只是以一个顶点作为实例,GCN每一次卷积对所有的顶点都完成了图示的操作。 在第二代GCN中, 是 的矩阵,所以 的计算复杂度还是 , Wavelets on graphs via spectral graph theory 提出了利用Chebyshev多项式拟合卷积核的方法,来降低计算复杂度。卷积核 可以利用截断(truncated)的shifted Chebyshev多项式来逼近。 (这里本质上应该寻找Minimax(极小值) Polynomial Approximation, 但是作者说直接利用Chebyshev Polynomial的效果也很好) 其中 是Chebyshev多项式的系数, 是取 的Chebyshev多项式,进行这个shift变换的原因是Chebyshev多项式的输入要在[-1, 1]之间。 由Chebyshev多项式的性质,可以得到如下的递推公式 其中, 的定义同上,是 维的由每个顶点的特征构成的向量(当然,也可以是 的特征矩阵,这时每个顶点都有 个特征,但是 远小于 。 这个时候不难发现:式(6)的运算不再有矩阵乘积了,只需要计算矩阵与向量的乘积即可。计算一次 的复杂度是 , 是图中边的集合,则整个运算的复杂度是 。当graph是稀疏图的时候,计算加速尤为明显,这个时候复杂度远低于 上面的讲述是GCN最基础的思路,很多论文中的GCN结构是在上述思路的基础上进行了一些简单数学变换。理解了上述内容,就可以做到“万变不离其宗” 。 CNN中有两大核心思想:网络局部连接,卷积核参数共享 。 那么我们不禁会联想:这两点在GCN中是怎样的呢?以下图的graph结构为例来探究一下 (a)如果利用第一代GCN,根据式(3)卷积运算矩阵( )即为 这个时候,可以发现这个卷积核没有 local的性质,因为该卷积核得到的运算矩阵在所有位置上都有非0元素。以第一个顶点为例,如果考虑一阶local关系的话,那么卷积核中第一行应该只有[1,1],[1,2],[1,5]这三个位置的元素非0。 换句话说,这是一个global全连接的卷积核。 (b)如果是第二代GCN,根据式(5)当 K=1卷积运算矩阵即为
2023-08-16 10:43:341

卷积神经网络的特点

卷积层具有稀疏交互、参数共享、等变表示的特点。1、卷积神经网络中每层卷积层由若干卷积单元组成,每个卷积单元的参数都是通过反向传播算法最佳化得到的。卷积运算的目的是提取输入的不同特征,第一层卷积层可能只能提取一些低级的特征如边缘、线条和角等层级,更多层的网路能从低级特征中迭代提取更复杂的特征。2、这一结构使得卷积神经网络能够利用输入数据的二维结构。与其他深度学习结构相比,卷积神经网络在图像和语音识别方面能够给出更好的结果。这一模型也可以使用反向传播算法进行训练。相比较其他深度、前馈神经网络,卷积神经网络需要考量的参数更少,使之成为一种颇具吸引力的深度学习结构。应用领域:1、影像辨识:卷积神经网络通常在图像分析和图像处理领域中使用。关系密切,两者有一定程度的交叉,但是又有所不同。图像处理侧重于信号处理方面的研究,比如图像对比度的调节、图像编码、去噪以及各种滤波的研究。2、图像分析更侧重点在于研究图像的内容,包括但不局限于使用图像处理的各种技术,它更倾向于对图像内容的分析、解释、和识别。因而,图像分析和计算机科学领域中的模式识别、计算机视觉关系更密切一些。
2023-08-16 10:43:451

如何更好的理解分析深度卷积神经网络

作者:杨延生链接:来源:知乎著作权归作者所有,转载请联系作者获得授权。"深度学习"是为了让层数较多的多层神经网络可以训练,能够work而演化出来的一系列的 新的结构和新的方法。新的网络结构中最著名的就是CNN,它解决了传统较深的网络参数太多,很难训练的问题,使用了逗局部感受野地和逗权植共享地的概念,大大减少了网络参数的数量。关键是这种结构确实很符合视觉类任务在人脑上的工作原理。新的结构还包括了:LSTM,ResNet等。新的方法就多了:新的激活函数:ReLU,新的权重初始化方法(逐层初始化,XAVIER等),新的损失函数,新的防止过拟合方法(Dropout, BN等)。这些方面主要都是为了解决传统的多层神经网络的一些不足:梯度消失,过拟合等。---------------------- 下面是原答案 ------------------------从广义上说深度学习的网络结构也是多层神经网络的一种。传统意义上的多层神经网络是只有输入层、隐藏层、输出层。其中隐藏层的层数根据需要而定,没有明确的理论推导来说明到底多少层合适。而深度学习中最著名的卷积神经网络CNN,在原来多层神经网络的基础上,加入了特征学习部分,这部分是模仿人脑对信号处理上的分级的。具体操作就是在原来的全连接的层前面加入了部分连接的卷积层与降维层,而且加入的是一个层级。 输入层 - 卷积层 -降维层 -卷积层 - 降维层 -- .... -- 隐藏层 -输出层简单来说,原来多层神经网络做的步骤是:特征映射到值。特征是人工挑选。深度学习做的步骤是 信号->特征->值。 特征是由网络自己选择。
2023-08-16 10:44:351

卷积神经网络中的卷积与数学中卷积的区别

数学中的卷积和卷积神经网络中的卷积严格意义上是两种不同的运算 公式为 如图1所示,a矩阵是 的矩阵,a矩阵经过数学卷积运算后得到c矩阵。现在我们计算 处的值,c矩阵其他值的计算方式与 一致。 根据公式(1),可得到 的计算过程如图2,抽象为公式为 会发现图2的计算过程就是图3中颜色相同的块相乘,并求和的过程。 总之, 和 卷积的过程是,卷积核 绕中心点旋转180度,然后与 对应位置相乘并求和 我们以“丢骰子为例”,使用单个下标的离散卷积,公式为 。我们投掷两颗骰子,求解两颗骰子点数为4的概率,则 那么,两枚骰子点数加起来为4的情况有: 因此,两枚骰子点数加起来为4的概率为: 符合卷积的定义,把它写成标准的形式就是: 本质上就是卷积核与图片局部区域对应位置相乘并求和,或者为图片的局部区域像素值加权求和,其中权值就是卷积核心。 这两种操作,很容易通过设计特定的“卷积核”,然后将其与像素矩阵的对应像素(不进行旋转)相乘得到 举例说明 我们对下述的图像进行平滑滤波和边缘提取处理 使用下面的卷积核,就可以得到预期的效果 实现原理: 哪位高手能解释一下卷积神经网络的卷积核?
2023-08-16 10:44:451

深度学习之卷积神经网络经典模型

LeNet-5模型 在CNN的应用中,文字识别系统所用的LeNet-5模型是非常经典的模型。LeNet-5模型是1998年,Yann LeCun教授提出的,它是第一个成功大规模应用在手写数字识别问题的卷积神经网络,在MNIST数据集中的正确率可以高达99.2%。 下面详细介绍一下LeNet-5模型工作的原理。 LeNet-5模型一共有7层,每层包含众多参数,也就是卷积神经网络中的参数。虽然层数只有7层,这在如今庞大的神经网络中可是说是非常少的了,但是包含了卷积层,池化层,全连接层,可谓麻雀虽小五脏俱全了。为了方便,我们把卷积层称为C层,下采样层叫做下采样层。 首先,输入层输入原始图像,原始图像被处理成32×32个像素点的值。然后,后面的隐层计在卷积和子抽样之间交替进行。C1层是卷积层,包含了六个特征图。每个映射也就是28x28个神经元。卷积核可以是5x5的十字形,这28×28个神经元共享卷积核权值参数,通过卷积运算,原始信号特征增强,同时也降低了噪声,当卷积核不同时,提取到图像中的特征不同;C2层是一个池化层,池化层的功能在上文已经介绍过了,它将局部像素值平均化来实现子抽样。 池化层包含了六个特征映射,每个映射的像素值为14x14,这样的池化层非常重要,可以在一定程度上保证网络的特征被提取,同时运算量也大大降低,减少了网络结构过拟合的风险。因为卷积层与池化层是交替出现的,所以隐藏层的第三层又是一个卷积层,第二个卷积层由16个特征映射构成,每个特征映射用于加权和计算的卷积核为10x10的。第四个隐藏层,也就是第二个池化层同样包含16个特征映射,每个特征映射中所用的卷积核是5x5的。第五个隐藏层是用5x5的卷积核进行运算,包含了120个神经元,也是这个网络中卷积运算的最后一层。 之后的第六层便是全连接层,包含了84个特征图。全连接层中对输入进行点积之后加入偏置,然后经过一个激活函数传输给输出层的神经元。最后一层,也就是第七层,为了得到输出向量,设置了十个神经元来进行分类,相当于输出一个包含十个元素的一维数组,向量中的十个元素即0到9。 AlexNet模型 AlexNet简介 2012年Imagenet图像识别大赛中,Alext提出的alexnet网络模型一鸣惊人,引爆了神经网络的应用热潮,并且赢得了2012届图像识别大赛的冠军,这也使得卷积神经网络真正意义上成为图像处理上的核心算法。上文介绍的LeNet-5出现在上个世纪,虽然是经典,但是迫于种种复杂的现实场景限制,只能在一些领域应用。不过,随着SVM等手工设计的特征的飞速发展,LeNet-5并没有形成很大的应用状况。随着ReLU与dropout的提出,以及GPU带来算力突破和互联网时代大数据的爆发,卷积神经网络带来历史的突破,AlexNet的提出让深度学习走上人工智能的最前端。 图像预处理 AlexNet的训练数据采用ImageNet的子集中的ILSVRC2010数据集,包含了1000类,共1.2百万的训练图像,50000张验证集,150000张测试集。在进行网络训练之前我们要对数据集图片进行预处理。首先我们要将不同分辨率的图片全部变成256x256规格的图像,变换方法是将图片的短边缩放到 256像素值,然后截取长边的中间位置的256个像素值,得到256x256大小的图像。除了对图片大小进行预处理,还需要对图片减均值,一般图像均是由RGB三原色构成,均值按RGB三分量分别求得,由此可以更加突出图片的特征,更方便后面的计算。 此外,对了保证训练的效果,我们仍需对训练数据进行更为严苛的处理。在256x256大小的图像中,截取227x227大小的图像,在此之后对图片取镜像,这样就使得原始数据增加了(256-224)x(256-224)x2= 2048倍。最后对RGB空间做PCA,然后对主成分做(0,0.1)的高斯扰动,结果使错误率下降1%。对测试数据而言,抽取以图像4个角落的大小为224224的图像,中心的224224大小的图像以及它们的镜像翻转图像,这样便可以获得10张图像,我们便可以利用softmax进行预测,对所有预测取平均作为最终的分类结果。 ReLU激活函数 之前我们提到常用的非线性的激活函数是sigmoid,它能够把输入的连续实值全部确定在0和1之间。但是这带来一个问题,当一个负数的绝对值很大时,那么输出就是0;如果是绝对值非常大的正数,输出就是1。这就会出现饱和的现象,饱和现象中神经元的梯度会变得特别小,这样必然会使得网络的学习更加困难。此外,sigmoid的output的值并不是0为均值,因为这会导致上一层输出的非0均值信号会直接输入到后一层的神经元上。所以AlexNet模型提出了ReLU函数,公式:f(x)=max(0,x)f(x)=max(0,x)。 用ReLU代替了Sigmoid,发现使用 ReLU 得到的SGD的收敛速度会比 sigmoid快很多,这成了AlexNet模型的优势之一。 Dropout AlexNet模型提出了一个有效的模型组合方式,相比于单模型,只需要多花费一倍的时间,这种方式就做Dropout。在整个神经网络中,随机选取一半的神经元将它们的输出变成0。这种方式使得网络关闭了部分神经元,减少了过拟合现象。同时训练的迭代次数也得以增加。当时一个GTX580 GPU只有3GB内存,这使得大规模的运算成为不可能。但是,随着硬件水平的发展,当时的GPU已经可以实现并行计算了,并行计算之后两块GPU可以互相通信传输数据,这样的方式充分利用了GPU资源,所以模型设计利用两个GPU并行运算,大大提高了运算效率。 模型分析 AlexNet模型共有8层结构,其中前5层为卷积层,其中前两个卷积层和第五个卷积层有池化层,其他卷积层没有。后面3层为全连接层,神经元约有六十五万个,所需要训练的参数约六千万个。 图片预处理过后,进过第一个卷积层C1之后,原始的图像也就变成了55x55的像素大小,此时一共有96个通道。模型分为上下两块是为了方便GPU运算,48作为通道数目更加适合GPU的并行运算。上图的模型里把48层直接变成了一个面,这使得模型看上去更像一个立方体,大小为55x55x48。在后面的第二个卷积层C2中,卷积核的尺寸为5x5x48,由此再次进行卷积运算。在C1,C2卷积层的卷积运算之后,都会有一个池化层,使得提取特征之后的特征图像素值大大减小,方便了运算,也使得特征更加明显。而第三层的卷积层C3又是更加特殊了。第三层卷积层做了通道的合并,将之前两个通道的数据再次合并起来,这是一种串接操作。第三层后,由于串接,通道数变成256。全卷积的卷积核尺寸也就变成了13×13×25613×13×256。一个有4096个这样尺寸的卷积核分别对输入图像做4096次的全卷积操作,最后的结果就是一个列向量,一共有4096个数。这也就是最后的输出,但是AlexNet最终是要分1000个类,所以通过第八层,也就是全连接的第三层,由此得到1000个类输出。 Alexnet网络中各个层发挥了不同的作用,ReLU,多个CPU是为了提高训练速度,重叠pool池化是为了提高精度,且不容易产生过拟合,局部归一化响应是为了提高精度,而数据增益与dropout是为了减少过拟合。 VGG net 在ILSVRC-2014中,牛津大学的视觉几何组提出的VGGNet模型在定位任务第一名和分类任务第一名[[i]]。如今在计算机视觉领域,卷积神经网络的良好效果深得广大开发者的喜欢,并且上文提到的AlexNet模型拥有更好的效果,所以广大从业者学习者试图将其改进以获得更好地效果。而后来很多人经过验证认为,AlexNet模型中所谓的局部归一化响应浪费了计算资源,但是对性能却没有很大的提升。VGG的实质是AlexNet结构的增强版,它侧重强调卷积神经网络设计中的深度。将卷积层的深度提升到了19层,并且在当年的ImageNet大赛中的定位问题中获得了第一名的好成绩。整个网络向人们证明了我们是可以用很小的卷积核取得很好地效果,前提是我们要把网络的层数加深,这也论证了我们要想提高整个神经网络的模型效果,一个较为有效的方法便是将它的深度加深,虽然计算量会大大提高,但是整个复杂度也上升了,更能解决复杂的问题。虽然VGG网络已经诞生好几年了,但是很多其他网络上效果并不是很好地情况下,VGG有时候还能够发挥它的优势,让人有意想不到的收获。 与AlexNet网络非常类似,VGG共有五个卷积层,并且每个卷积层之后都有一个池化层。当时在ImageNet大赛中,作者分别尝试了六种网络结构。这六种结构大致相同,只是层数不同,少则11层,多达19层。网络结构的输入是大小为224*224的RGB图像,最终将分类结果输出。当然,在输入网络时,图片要进行预处理。 VGG网络相比AlexNet网络,在网络的深度以及宽度上做了一定的拓展,具体的卷积运算还是与AlexNet网络类似。我们主要说明一下VGG网络所做的改进。第一点,由于很多研究者发现归一化层的效果并不是很好,而且占用了大量的计算资源,所以在VGG网络中作者取消了归一化层;第二点,VGG网络用了更小的3x3的卷积核,而两个连续的3x3的卷积核相当于5x5的感受野,由此类推,三个3x3的连续的卷积核也就相当于7x7的感受野。这样的变化使得参数量更小,节省了计算资源,将资源留给后面的更深层次的网络。第三点是VGG网络中的池化层特征池化核改为了2x2,而在AlexNet网络中池化核为3x3。这三点改进无疑是使得整个参数运算量下降,这样我们在有限的计算平台上能够获得更多的资源留给更深层的网络。由于层数较多,卷积核比较小,这样使得整个网络的特征提取效果很好。其实由于VGG的层数较多,所以计算量还是相当大的,卷积层比较多成了它最显著的特点。另外,VGG网络的拓展性能比较突出,结构比较简洁,所以它的迁移性能比较好,迁移到其他数据集的时候泛化性能好。到现在为止,VGG网络还经常被用来提出特征。所以当现在很多较新的模型效果不好时,使用VGG可能会解决这些问题。 GoogleNet 谷歌于2014年Imagenet挑战赛(ILSVRC14)凭借GoogleNet再次斩获第一名。这个通过增加了神经网络的深度和宽度获得了更好地效果,在此过程中保证了计算资源的不变。这个网络论证了加大深度,宽度以及训练数据的增加是现有深度学习获得更好效果的主要方式。但是增加尺寸可能会带来过拟合的问题,因为深度与宽度的加深必然会带来过量的参数。此外,增加网络尺寸也带来了对计算资源侵占过多的缺点。为了保证计算资源充分利用的前提下去提高整个模型的性能,作者使用了Inception模型,这个模型在下图中有展示,可以看出这个有点像金字塔的模型在宽度上使用并联的不同大小的卷积核,增加了卷积核的输出宽度。因为使用了较大尺度的卷积核增加了参数。使用了1*1的卷积核就是为了使得参数的数量最少。 Inception模块 上图表格为网络分析图,第一行为卷积层,输入为224×224×3 ,卷积核为7x7,步长为2,padding为3,输出的维度为112×112×64,这里面的7x7卷积使用了 7×1 然后 1×7 的方式,这样便有(7+7)×64×3=2,688个参数。第二行为池化层,卷积核为3×33×3,滑动步长为2,padding为 1 ,输出维度:56×56×64,计算方式:1/2×(112+2×1?3+1)=56。第三行,第四行与第一行,第二行类似。第 5 行 Inception module中分为4条支线,输入均为上层产生的 28×28×192 结果:第 1 部分,1×1 卷积层,输出大小为28×28×64;第 2 部分,先1×1卷积层,输出大小为28×28×96,作为输入进行3×3卷积层,输出大小为28×28×128;第 3部分,先1×1卷积层,输出大小为28×28×32,作为输入进行3×3卷积层,输出大小为28×28×32;而第3 部分3×3的池化层,输出大小为输出大小为28×28×32。第5行的Inception module会对上面是个结果的输出结果并联,由此增加网络宽度。 ResNet 2015年ImageNet大赛中,MSRA何凯明团队的ResidualNetworks力压群雄,在ImageNet的诸多领域的比赛中上均获得了第一名的好成绩,而且这篇关于ResNet的论文Deep Residual Learning for Image Recognition也获得了CVPR2016的最佳论文,实至而名归。 上文介绍了的VGG以及GoogleNet都是增加了卷积神经网络的深度来获得更好效果,也让人们明白了网络的深度与广度决定了训练的效果。但是,与此同时,宽度与深度加深的同时,效果实际会慢慢变差。也就是说模型的层次加深,错误率提高了。模型的深度加深,以一定的错误率来换取学习能力的增强。但是深层的神经网络模型牺牲了大量的计算资源,学习能力提高的同时不应当产生比浅层神经网络更高的错误率。这个现象的产生主要是因为随着神经网络的层数增加,梯度消失的现象就越来越明显。所以为了解决这个问题,作者提出了一个深度残差网络的结构Residual: 上图就是残差网络的基本结构,可以看出其实是增加了一个恒等映射,将原本的变换函数H(x)转换成了F(x)+x。示意图中可以很明显看出来整个网络的变化,这样网络不再是简单的堆叠结构,这样的话便很好地解决了由于网络层数增加而带来的梯度原来越不明显的问题。所以这时候网络可以做得很深,到目前为止,网络的层数都可以上千层,而能够保证很好地效果。并且,这样的简单叠加并没有给网络增加额外的参数跟计算量,同时也提高了网络训练的效果与效率。 在比赛中,为了证明自己观点是正确的,作者控制变量地设计几个实验。首先作者构建了两个plain网络,这两个网络分别为18层跟34层,随后作者又设计了两个残差网络,层数也是分别为18层和34层。然后对这四个模型进行控制变量的实验观察数据量的变化。下图便是实验结果。实验中,在plain网络上观测到明显的退化现象。实验结果也表明,在残差网络上,34层的效果明显要好于18层的效果,足以证明残差网络随着层数增加性能也是增加的。不仅如此,残差网络的在更深层的结构上收敛性能也有明显的提升,整个实验大为成功。 除此之外,作者还做了关于shortcut方式的实验,如果残差网络模块的输入输出维度不一致,我们如果要使维度统一,必须要对维数较少的进行増维。而增维的最好效果是用0来填充。不过实验数据显示三者差距很小,所以线性投影并不是特别需要。使用0来填充维度同时也保证了模型的复杂度控制在比较低的情况下。 随着实验的深入,作者又提出了更深的残差模块。这种模型减少了各个层的参数量,将资源留给更深层数的模型,在保证复杂度很低的情况下,模型也没有出现梯度消失很明显的情况,因此目前模型最高可达1202层,错误率仍然控制得很低。但是层数如此之多也带来了过拟合的现象,不过诸多研究者仍在改进之中,毕竟此时的ResNet已经相对于其他模型在性能上遥遥领先了。 残差网络的精髓便是shortcut。从一个角度来看,也可以解读为多种路径组合的一个网络。如下图: ResNet可以做到很深,但是从上图中可以体会到,当网络很深,也就是层数很多时,数据传输的路径其实相对比较固定。我们似乎也可以将其理解为一个多人投票系统,大多数梯度都分布在论文中所谓的effective path上。 DenseNet 在Resnet模型之后,有人试图对ResNet模型进行改进,由此便诞生了ResNeXt模型。 这是对上面介绍的ResNet模型结合了GoogleNet中的inception模块思想,相比于Resnet来说更加有效。随后,诞生了DenseNet模型,它直接将所有的模块连接起来,整个模型更加简单粗暴。稠密相连成了它的主要特点。 我们将DenseNet与ResNet相比较: 从上图中可以看出,相比于ResNet,DenseNet参数量明显减少很多,效果也更加优越,只是DenseNet需要消耗更多的内存。 总结 上面介绍了卷积神经网络发展史上比较著名的一些模型,这些模型非常经典,也各有优势。在算力不断增强的现在,各种新的网络训练的效率以及效果也在逐渐提高。从收敛速度上看,VGG>Inception>DenseNet>ResNet,从泛化能力来看,Inception>DenseNet=ResNet>VGG,从运算量看来,Inception<DenseNet< ResNet<VGG,从内存开销来看,Inception<ResNet< DenseNet<VGG。在本次研究中,我们对各个模型均进行了分析,但从效果来看,ResNet效果是最好的,优于Inception,优于VGG,所以我们第四章实验中主要采用谷歌的Inception模型,也就是GoogleNet。
2023-08-16 10:45:141

什么是卷积

最近有一个项目要用到图像检测,所以现在系统的开始入手深度学习的知识。本来打算用 Google 的 TensorFlow 来实现,毕竟 TFBoy 近几年热度不减,但考虑到项目实施周期,打算前期用百度的 EasyDL 来实现,和百度 AI 的产品经理聊了几次,说是类似的项目,200张样本训练,识别能达到80%,应该算是一个不错的识别率了。 当然,一些基础知识还是要了解一下,这里面有不少的概念还挺不好理解的。深度学习,有专门的卷积神经网络,在图像领域取得了非常好的实际效果,已经把传统的图像处理的方法快干趴下了。看了很多关于卷积的解释,在这里整理一下。 网上流传的一个段子,非常形象。比如说你的老板命令你干活,你却到楼下打台球去了,后来被老板发现,他非常气愤,扇了你一巴掌(注意,这就是输入信号,脉冲),于是你的脸上会渐渐地鼓起来一个包,你的脸就是一个系统,而鼓起来的包就是你的脸对巴掌的响应,好,这样就和信号系统建立起来意义对应的联系。 下面还需要一些假设来保证论证的严谨:假定你的脸是线性时不变系统,也就是说,无论什么时候老板打你一巴掌,打在你脸的同一位置,你的脸上总是会在相同的时间间隔内鼓起来一个相同高度的包来,并且假定以鼓起来的包的大小作为系统输出。好了,那么,下面可以进入核心内容——卷积了! 如果你每天都到楼下去打台球,那么老板每天都要扇你一巴掌,不过当老板打你一巴掌后,你5分钟就消肿了,所以时间长了,你甚至就适应这种生活了……。如果有一天,老板忍无可忍,以0.5秒的间隔开始不间断的扇你,这样问题就来了,第一次扇你鼓起来的包还没消肿,第二个巴掌就来了,你脸上的包就可能鼓起来两倍高,老板不断扇你,脉冲不断作用在你脸上,效果不断叠加了,这样这些效果就可以求和了,结果就是你脸上的包的高度随时间变化的一个函数了(注意理解)。 如果老板再狠一点,频率越来越高,以至于你都辨别不清时间间隔了,那么,求和就变成积分了。可以这样理解,在这个过程中的某一固定的时刻,你的脸上的包的鼓起程度和什么有关呢?和之前每次打你都有关!但是各次的贡献是不一样的,越早打的巴掌,贡献越小,所以这就是说,某一时刻的输出是之前很多次输入乘以各自的衰减系数之后的叠加而形成某一点的输出,然后再把不同时刻的输出点放在一起,形成一个函数,这就是卷积,卷积之后的函数就是你脸上的包的大小随时间变化的函数。 本来你的包几分钟就可以消肿,可是如果连续打,几个小时也消不了肿了,这难道不是一种平滑过程么?反映到剑桥大学的公式上,f(a) 就是第 a 个巴掌,g(x-a)就是第 a 个巴掌在x时刻的作用程度,乘起来再叠加就 ok 了。 从数学上讲,卷积就是一种运算。通俗易懂的说,卷积就是 ** 输出 = 输入 * 系统** 虽然它看起来只是个简单的数学公式,但是却有着重要的物理意义,因为自然界这样的系统无处不在,计算一个系统的输出最好的方法就是运用卷积。更一般的,我们还有很多其他领域的应用: 统计学中,加权的滑动平均是一种卷积。 概率论中,两个统计独立变量X与Y的和的概率密度函数是X与Y的概率密度函数的卷积。 声学中,回声可以用源声与一个反映各种反射效应的函数的卷积表示。 电子工程与信号处理中,任一个线性系统的输出都可以通过将输入信号与系统函数(系统的冲激响应)做卷积获得。 物理学中,任何一个线性系统(符合叠加原理)都存在卷积。 计算机科学中,卷积神经网络(CNN)是深度学习算法中的一种,近年来被广泛用到模式识别、图像处理等领域中。 这6个领域中,卷积起到了至关重要的作用。在面对一些复杂情况时,作为一种强有力的处理方法,卷积给出了简单却有效的输出。对于机器学习领域,尤其是深度学习,最著名的CNN卷积神经网络(Convolutional Neural Network, CNN),在图像领域取得了非常好的实际效果,始一出现便横扫各类算法。 其定义如下: 我们称 (f * g)(n) 为 f,g 的卷积 其连续的定义为: 其离散的定义为: 再通俗的说,看起来像把一张二维的地毯从角沿45度斜线卷起来。 以下是一张正方形地毯,上面保存着f和g在区间[a,]的张量积,即U(x,y)=f(x)g(y)。 再看下面最简单的一个例子。 考虑到函数 f 和 g 应该地位平等,或者说变量 x 和 y 应该地位平等,一种可取的办法就是沿直线 x+y = t 卷起来: 卷了有什么用?可以用来做多位数乘法,比如: 要解决的问题是:有两枚骰子,把它们都抛出去,两枚骰子点数加起来为4的概率是多少? 分析一下,两枚骰子点数加起来为4的情况有三种情况:1+3=4, 2+2=4, 3+1=4 因此,两枚骰子点数加起来为4的概率为: 在这里我想进一步用上面的翻转滑动叠加的逻辑进行解释。 首先,因为两个骰子的点数和是4,为了满足这个约束条件,我们还是把函数 g 翻转一下,然后阴影区域上下对应的数相乘,然后累加,相当于求自变量为4的卷积值,如下图所示: 楼下早点铺子生意太好了,供不应求,就买了一台机器,不断的生产馒头。 假设馒头的生产速度是 f(t),那么一天后生产出来的馒头总量为: 馒头生产出来之后,就会慢慢腐败,假设腐败函数为 g(t),比如,10个馒头,24小时会腐败: 用一个模板和一幅图像进行卷积,对于图像上的一个点,让模板的原点和该点重合,然后模板上的点和图像上对应的点相乘,然后各点的积相加,就得到了该点的卷积值。对图像上的每个点都这样处理。由于大多数模板都是对称的,所以模板不旋转。卷积是一种积分运算,用来求两个曲线重叠区域面积。可以看作加权求和,可以用来消除噪声、特征增强。 把一个点的像素值用它周围的点的像素值的加权平均代替。 卷积是一种线性运算,图像处理中常见的mask运算都是卷积,广泛应用于图像滤波。 卷积关系最重要的一种情况,就是在信号与线性系统或数字信号处理中的卷积定理。利用该定理,可以将时间域或空间域中的卷积运算等价为频率域的相乘运算,从而利用FFT等快速算法,实现有效的计算,节省运算代价。 有这么一副图像,可以看到,图像上有很多噪点:自然图像有其固有特性,也就是说,图像的一部分的统计特性与其他部分是一样的。这也意味着我们在这一部分学习的特征也能用在另一部分上,所以对于这个图像上的所有位置,我们都能使用同样的学习特征。 更恰当的解释是,当从一个大尺寸图像中随机选取一小块,比如说 8x8 作为样本,并且从这个小块样本中学习到了一些特征,这时我们可以把从这个 8x8 样本中学习到的特征作为探测器,应用到这个图像的任意地方中去。特别是,我们可以用从 8x8 样本中所学习到的特征跟原本的大尺寸图像作卷积,从而对这个大尺寸图像上的任一位置获得一个不同特征的激活值。 下面给出一个具体的例子:假设你已经从一个 96x96 的图像中学习到了它的一个 8x8 的样本所具有的特征,假设这是由有 100 个隐含单元的自编码完成的。为了得到卷积特征,需要对 96x96 的图像的每个 8x8 的小块图像区域都进行卷积运算。也就是说,抽取 8x8 的小块区域,并且从起始坐标开始依次标记为(1,1),(1,2),...,一直到(89,89),然后对抽取的区域逐个运行训练过的稀疏自编码来得到特征的激活值。在这个例子里,显然可以得到 100 个集合,每个集合含有 89x89 个卷积特征。以上,未知来源出处无法一一注明。
2023-08-16 10:45:271

卷积神经网络结构由哪几部分组成

卷积神经网络主要结构有:卷积层、池化层、和全连接层组词。一、卷积层卷积核是一系列的滤波器,用来提取某一种特征我们用它来处理一个图片,当图像特征与过滤器表示的特征相似时,卷积操作可以得到一个比较大的值。当图像特征与过滤器不相似时,卷积操作可以得到一个比较小的值,实际上,卷积的结果特征映射图显示的是对应卷积核所代表的特征在原始特征图上的分布情况。每个滤波器在空间上(宽度和高度)都比较小,但是深度和输入数据保持一致(特征图的通道数),当卷积核在原图像滑动时,会生成一个二维激活图,激活图上每个空间位置代表原图像对该卷积核的反应。每个卷积层,会有一整个集合的卷积核,有多少个卷积核,输出就有多少个通道。每个卷积核生成一个特征图,这些特征图堆叠起来组成整个输出结果。卷积核体现了参数共享和局部连接的模式。每个卷积核的大小代表了一个感受野的大小。卷积后的特征图大小为(W-F+2*P)/s+1 ;P 为填充 s 为步长。二、池化层池化层本质上是下采样,利用图像局部相关性的原理(认为最大值或者均值代表了这个局部的特征),对图像进行子抽样,可以减少数据处理量同时保留有用信息。这里池化有平均池化,L2范式池化,最大池化,经过实践,最大池化的效果要好于平均池化(平均池化一般放在卷积神经网络的最后一层),最大池化有利于保存纹理信息。平均池化有利于保存背景信息。实际上(因为信息损失的原因)我们可以看到,通过在卷积时使用更大的步长也可以缩小特征映射的尺寸,并不一定要用池化,有很多人不建议使用池化层。32*32在5*5卷积核步长为1下可得到28*28。池化操作可以逐渐降低数据体的空间尺寸,这样的话就能减少网络中参数的数量,使得计算资源耗费变少,也能有效控制过拟合。三、全连接层通过全连接层将特征图转化为类别输出。全连接层不止一层,在这个过程中为了防止过拟合会引入DropOut。最新研究表明,在进入全连接层之前,使用全局平均池化可以有效降低过拟合。随着神经网络训练的进行,每个隐层的参数变化使得后一层的输入发生变化,从而每一批的训练数据的分布也随之改变,致使网络在每次迭代中都需要拟合不同的数据分布,增大训练复杂度和过拟合的风险,只能采用较小的学习率去解决。通常卷积层后就是BN层加Relu。BN已经是卷积神经网络中的一个标准技术。标准化的过程是可微的,因此可以将BN应用到每一层中做前向和反向传播,同在接在卷积或者全连接层后,非线性层前。它对于不好的初始化有很强的鲁棒性,同时可以加快网络收敛速度。
2023-08-16 10:45:421

请问卷积神经网络的概念谁最早在学术界提出的?

福岛邦彦。2021年4月29日,福岛邦彦(Kunihiko Fukushima)获得 2021 年鲍尔科学成就奖。他为深度学习做出了杰出贡献,其最有影响力的工作当属「Neocognitron」卷积神经网络架构。其实,熟悉这位Jürgen Schmidhuber人都知道,他此前一直对自己在深度学习领域的早期原创性成果未能得到业界广泛承认而耿耿于怀。1979年,福岛博士在STRL开发了一种用于模式识别的神经网络模型:Neocognitron。很陌生对吧?但这个Neocognitron用今天的话来说,叫卷积神经网络(CNN),是深度神经网络基本结构的最伟大发明之一,也是当前人工智能的核心技术。什么?卷积神经网络不是一个叫Yann LeCun的大佬发明的吗?怎么又换成了福岛邦彦(Kunihiko Fukushima)了?严格意义上讲,LeCun是第一个使用误差反向传播训练卷积神经网络(CNN)架构的人,但他并不是第一个发明这个结构的人。而福岛博士引入的Neocognitron,是第一个使用卷积和下采样的神经网络,也是卷积神经网络的雏形。福岛邦彦(Kunihiko Fukushima)设计的具有学习能力的人工多层神经网络,可以模仿大脑的视觉网络,这种「洞察力」成为现代人工智能技术的基础。福岛博士的工作带来了一系列实际应用,从自动驾驶汽车到面部识别,从癌症检测到洪水预测,还会有越来越多的应用。
2023-08-16 10:47:041

残差神经网络和卷积神经网络的区别

1、残差神经网络是由来自Microsoft的4位学者提出的卷积神经网络,在2015年的ImageNet大规模视觉识别竞赛中获得了图像分类和物体识别的优胜。2、卷积神经网络是一类包含卷积计算且具有深度结构的前馈神经网络是深度学习的代表算法之一。
2023-08-16 10:47:351

卷积神经网络CNN在图像识别问题应用综述(20191219)

u2003 u2003这两天在公司做PM实习,主要是自学一些CV的知识,以了解产品在解决一些在图像识别、图像搜索方面的问题,学习的主要方式是在知网检索了6.7篇国内近3年计算机视觉和物体识别的硕博士论文。由于时间关系,后面还会继续更新图片相似度计算(以图搜图)等方面的学习成果 u2003 u2003将这两天的学习成果在这里总结一下。你将会看到计算机视觉在解决特定物体识别问题(主要是卷积神经网络CNNs)的基础过程和原理,但这里不会深入到技术的实现层面。 u2003u2003计算机视觉(Computer vision)是一门研究如何使机器“看”的科学,更进一步的说,就是指用摄影机和计算机代替人眼对目标进行识别、跟踪和测量等机器视觉,并进一步做图像处理,用计算机处理成为更适合人眼观察或传送给仪器检测的图像。 u2003u2003 u2003u2003 u2003u2003 u2003u2003 u2003u2003 u2003u2003 u2003u2003 u2003u2003 u2003u2003 u2003u2003 u2003u2003 u2003u2003 u2003u2003 u2003u2003————维基百科 u2003u2003通常而言,计算机视觉的研究包括三个层次: (1)底层特征的研究: u2003u2003这一层次的研究主要聚焦如何高效提取出图像对象具有判别性能的特征,具体的研究内容通常包括:物体识别、字符识别等 (2)中层语义特征的研究: u2003u2003 该层次的研究在于在识别出对象的基础上,对其位置、边缘等信息能够准确区分。现在比较热门的:图像分割;语义分割;场景标注等,都属于该领域的范畴 (3)高层语义理解: u2003u2003这一层次建立在前两层的基础上,其核心在于“理解”一词。 目标在于对复杂图像中的各个对象完成语义级别的理解。这一层次的研究常常应用于:场景识别、图像摘要生成及图像语义回答等。 u2003u2003而我研究的问题主要隶属于底层特征和中层语义特征研究中的物体识别和场景标注问题。 人类的视觉工作模式是这样的: u2003 u2003首先,我们大脑中的神经元接收到大量的信息微粒,但我们的大脑还并不能处理它们。 u2003u2003 于是接着神经元与神经元之间交互将大量的微粒信息整合成一条又一条的线。 u2003 u2003接着,无数条线又整合成一个个轮廓。 u2003 u2003最后多个轮廓累加终于聚合我们现在眼前看到的样子。 u2003u2003计算机科学受到神经科学的启发,也采用了类似的工作方式。具体而言,图像识别问题一般都遵循下面几个流程 u2003u2003(1)获取底层信息。获取充分且清洁的高质量数据往往是图像识别工作能否成功的关键所在 u2003u2003(2)数据预处理工作,在图像识别领域主要包括四个方面的技术:去噪处理(提升信噪比)、图像增强和图像修复(主要针对不够清晰或有破损缺失的图像);归一化处理(一方面是为了减少开销、提高算法的性能,另一方面则是为了能成功使用深度学习等算法,这类算法必须使用归一化数据)。 u2003u2003(3)特征提取,这一点是该领域的核心,也是本文的核心。图像识别的基础是能够提取出足够高质量,能体现图像独特性和区分度的特征。 u2003u2003过去在10年代之前我们主要还是更多的使用传统的人工特征提取方法,如PCALCA等来提取一些人工设计的特征,主要的方法有(HOG、LBP以及十分著名的SIFT算法)。但是这些方法普遍存在(a)一般基于图像的一些提层特征信息(如色彩、纹理等)难以表达复杂的图像高层语义,故泛化能力普遍比较弱。(b)这些方法一般都针对特定领域的特定应用设计,泛化能力和迁移的能力大多比较弱。 u2003u2003另外一种思路是使用BP方法,但是毕竟BP方法是一个全连接的神经网络。这以为这我们非常容易发生过拟合问题(每个元素都要负责底层的所有参数),另外也不能根据样本对训练过程进行优化,实在是费时又费力。 u2003u2003因此,一些研究者开始尝试把诸如神经网络、深度学习等方法运用到特征提取的过程中,以十几年前深度学习方法在业界最重要的比赛ImageNet中第一次战胜了SIFT算法为分界线,由于其使用权重共享和特征降采样,充分利用了数据的特征。几乎每次比赛的冠军和主流都被深度学习算法及其各自改进型所占领。其中,目前使用较多又最为主流的是CNN算法,在第四部分主要也研究CNN方法的机理。 u2003u2003上图是一个简易的神经网络,只有一层隐含层,而且是全连接的(如图,上一层的每个节点都要对下一层的每个节点负责。)具体神经元与神经元的作用过程可见下图。 u2003u2003在诸多传统的神经网络中,BP算法可能是性能最好、应用最广泛的算法之一了。其核心思想是:导入训练样本、计算期望值和实际值之间的差值,不断地调整权重,使得误差减少的规定值的范围内。其具体过程如下图: u2003u2003一般来说,机器学习又分成浅层学习和深度学习。传统的机器学习算法,如SVM、贝叶斯、神经网络等都属于浅层模型,其特点是只有一个隐含层。逻辑简单易懂、但是其存在理论上缺乏深度、训练时间较长、参数很大程度上依赖经验和运气等问题。 u2003u2003如果是有多个隐含层的多层神经网络(一般定义为大于5层),那么我们将把这个模型称为深度学习,其往往也和分层训练配套使用。这也是目前AI最火的领域之一了。如果是浅层模型的问题在于对一个复杂函数的表示能力不够,特别是在复杂问题分类情况上容易出现分类不足的弊端,深度网络的优势则在于其多层的架构可以分层表示逻辑,这样就可以用简单的方法表示出复杂的问题,一个简单的例子是: u2003u2003如果我们想计算sin(cos(log(exp(x)))), u2003u2003那么深度学习则可分层表示为exp(x)—>log(x)—>cos(x)—>sin(x) u2003u2003图像识别问题是物体识别的一个子问题,其鲁棒性往往是解决该类问题一个非常重要的指标,该指标是指分类结果对于传入数据中的一些转化和扭曲具有保持不变的特性。这些转化和扭曲具体主要包括了: (1)噪音(2)尺度变化(3)旋转(4)光线变化(5)位移 u2003u2003该部分具体的内容,想要快速理解原理的话推荐看[知乎相关文章] ( https://www.zhihu.com/search?type=content&q=CNN ), u2003u2003特别是其中有些高赞回答中都有很多动图和动画,非常有助于理解。 u2003u2003但核心而言,CNN的核心优势在于 共享权重 以及 感受野 ,减少了网络的参数,实现了更快的训练速度和同样预测结果下更少的训练样本,而且相对于人工方法,一般使用深度学习实现的CNN算法使用无监督学习,其也不需要手工提取特征。 CNN算法的过程给我的感觉,个人很像一个“擦玻璃”的过程。其技术主要包括了三个特性:局部感知、权重共享和池化。 u2003u2003CNN中的神经元主要分成了两种: (a)用于特征提取的S元,它们一起组成了卷积层,用于对于图片中的每一个特征首先局部感知。其又包含很关键的阈值参数(控制输出对输入的反映敏感度)和感受野参数(决定了从输入层中提取多大的空间进行输入,可以简单理解为擦玻璃的抹布有多大) (b)抗形变的C元,它们一起组成了池化层,也被称为欠采样或下采样。主要用于特征降维,压缩数据和参数的数量,减小过拟合,同时提高模型的容错性。 (c*)激活函数,及卷积层输出的结果要经过一次激励函数才会映射到池化层中,主要的激活函数有Sigmoid函数、Tanh函数、ReLU、Leaky ReLU、ELU、Maxout等。 u2003u2003也许你会抱有疑问,CNN算法和传统的BP算法等究竟有什么区别呢。这就会引出区域感受野的概念。在前面我们提到,一个全连接中,较高一层的每个神经元要对低层的每一个神经元负责,从而导致了过拟合和维度灾难的问题。但是有了区域感受野和,每个神经元只需要记录一个小区域,而高层会把这些信息综合起来,从而解决了全连接的问题。 u2003u2003了解区域感受野后,你也许会想,区域感受野的底层神经元具体是怎么聚合信息映射到上一层的神经元呢,这就要提到重要的卷积核的概念。这个过程非常像上面曾提到的“神经元与神经元的联系”一图,下面给大家一个很直观的理解。 u2003u2003上面的这个过程就被称为一个卷积核。在实际应用中,单特征不足以被系统学习分类,因此我们往往会使用多个滤波器,每个滤波器对应1个卷积核,也对应了一个不同的特征。比如:我们现在有一个人脸识别应用,我们使用一个卷积核提取出眼睛的特征,然后使用另一个卷积核提取出鼻子的特征,再用一个卷积核提取出嘴巴的特征,最后高层把这些信息聚合起来,就形成了分辨一个人与另一个人不同的判断特征。 u2003u2003现在我们已经有了区域感受野,也已经了解了卷积核的概念。但你会发现在实际应用中还是有问题: u2003u2003给一个100 100的参数空间,假设我们的感受野大小是10 10,那么一共有squar(1000-10+1)个,即10的六次方个感受野。每个感受野中就有100个参数特征,及时每个感受野只对应一个卷积核,那么空间内也会有10的八次方个次数,,更何况我们常常使用很多个卷积核。巨大的参数要求我们还需要进一步减少权重参数,这就引出了权重共享的概念。 u2003u2003 用一句话概括就是,对同一个特征图,每个感受野的卷积核是一样的,如这样操作后上例只需要100个参数。 u2003u2003池化是CNN技术的最后一个特性,其基本思想是: 一块区域有用的图像特征,在另一块相似的区域中很可能仍然有用。即我们通过卷积得到了大量的边缘EDGE数据,但往往相邻的边缘具有相似的特性,就好像我们已经得到了一个强边缘,再拥有大量相似的次边缘特征其实是没有太大增量价值的,因为这样会使得系统里充斥大量冗余信息消耗计算资源。 具体而言,池化层把语义上相似的特征合并起来,通过池化操作减少卷积层输出的特征向量,减少了参数,缓解了过拟合问题。常见的池化操作主要包括3种: 分别是最大值池化(保留了图像的纹理特征)、均值池化(保留了图像的整体特征)和随机值池化。该技术的弊端是容易过快减小数据尺寸,目前趋势是用其他方法代替池化的作用,比如胶囊网络推荐采用动态路由来代替传统池化方法,原因是池化会带来一定程度上表征的位移不变性,传统观点认为这是一个优势,但是胶囊网络的作者Hinton et al.认为图像中位置信息是应该保留的有价值信息,利用特别的聚类评分算法和动态路由的方式可以学习到更高级且灵活的表征,有望冲破目前卷积网络构架的瓶颈。 u2003u2003CNN总体来说是一种结构,其包含了多种网络模型结构,数目繁多的的网络模型结构决定了数据拟合能力和泛化能力的差异。其中的复杂性对用户的技术能力有较高的要求。此外,CNN仍然没有很好的解决过拟合问题和计算速度较慢的问题。 u2003u2003 该部分的核心参考文献: 《深度学习在图像识别中的应用研究综述》郑远攀,李广阳,李晔.[J].计算机工程与应用,2019,55(12):20-36. u2003u2003深度学习技术在计算机图像识别方面的领域应用研究是目前以及可预见的未来的主流趋势,在这里首先对深度学习的基本概念作一简介,其次对深度学习常用的结构模型进行概述说明,主要简述了深度信念网络(DBN)、卷积神经网络(CNN)、循环神经网络(RNN)、生成式对抗网络(GAN)、胶囊网络(CapsNet)以及对各个深度模型的改进模型做一对比分析。 u2003u2003深度学习按照学习架构可分为生成架构、判别架构及混合架构。 其生成架构模型主要包括: u2003u2003受限波尔兹曼机、自编码器、深层信念网络等。判别架构模型主要包括:深层前馈网络、卷积神经网络等。混合架构模型则是这两种架构的集合。深度学习按数据是否具有标签可分为非监督学习与监督学习。非监督学习方法主要包括:受限玻尔兹曼机、自动编码器、深层信念网络、深层玻尔兹曼机等。 u2003u2003监督学习方法主要包括:深层感知器、深层前馈网络、卷积神经网络、深层堆叠网络、循环神经网络等。大量实验研究表明,监督学习与非监督学习之间无明确的界限,如:深度信念网络在训练过程中既用到监督学习方法又涉及非监督学习方法。 [1]周彬. 多视图视觉检测关键技术及其应用研究[D].浙江大学,2019. [2]郑远攀,李广阳,李晔.深度学习在图像识别中的应用研究综述[J].计算机工程与应用,2019,55(12):20-36. [3]逄淑超. 深度学习在计算机视觉领域的若干关键技术研究[D].吉林大学,2017. [4]段萌. 基于卷积神经网络的图像识别方法研究[D].郑州大学,2017. [5]李彦冬. 基于卷积神经网络的计算机视觉关键技术研究[D].电子科技大学,2017. [6]李卫. 深度学习在图像识别中的研究及应用[D].武汉理工大学,2014. [7]许可. 卷积神经网络在图像识别上的应用的研究[D].浙江大学,2012. [8]CSDN、知乎、机器之心、维基百科
2023-08-16 10:47:431

卷积是什么意思

卷积(Convolution)是一种数学运算,通常用于信号处理、图像处理和机器学习中。在最简单的情况下,卷积可以理解为两个函数经过叠加、翻转和移位等操作所得到的新函数。在图像处理中,卷积操作可以通过一个固定的滤波器与原始图像进行卷积运算,以提取出图像中的不同特征。例如,在边缘检测中,可以使用一个称为Sobel滤波器的卷积核,将其应用于原始图像中的每个像素,然后输出表示该像素周围边缘强度的数值。在机器学习中,卷积神经网络(Convolutional Neural Network,CNN)则是使用了卷积层的一种深度学习算法,通过对输入数据中的空间结构进行模拟来实现对图像、音频、文本等不同类型的数据进行分类或识别的任务。总之,卷积是一种重要的数学工具,广泛应用于不同领域的科学研究和技术应用中。
2023-08-16 10:47:521

卷积神经网络通俗理解

卷积神经网络是一类包含卷积计算且具有深度结构的前馈神经网络,是深度学习的代表算法之一 。卷积神经网络具有表征学习能力,能够按其阶层结构对输入信息进行平移不变分类,因此也被称为“平移不变人工神经网络。卷积神经网络仿造生物的视知觉机制构建,可以进行监督学习和非监督学习,其隐含层内的卷积核参数共享和层间连接的稀疏性使得卷积神经网络能够以较小的计算量对格点化特征,例如像素和音频进行学习、有稳定的效果且对数据没有额外的特征工程要求
2023-08-16 10:48:341

什么是卷积、卷积神经网络?

卷积内容如下:卷积神经网络(Convolutional Neural Networks, CNN)是一类包含卷积计算且具有深度结构的前馈神经网络(Feedforward Neural Networks),是深度学习(deep learning)的代表算法之一。对卷积神经网络的研究始于二十世纪80至90年代,时间延迟网络和LeNet-5是最早出现的卷积神经网络;在二十一世纪后,随着深度学习理论的提出和数值计算设备的改进,卷积神经网络得到了快速发展,并被应用于计算机视觉、自然语言处理等领域。性质卷积神经网络中卷积层间的连接被称为稀疏连接(sparse connection),即相比于前馈神经网络中的全连接,卷积层中的神经元仅与其相邻层的部分,而非全部神经元相连。具体地,卷积神经网络第l层特征图中的任意一个像素(神经元)都仅是l-1层中卷积核所定义的感受野内的像素的线性组合。卷积神经网络的稀疏连接具有正则化的效果,提高了网络结构的稳定性和泛化能力,避免过度拟合,同时,稀疏连接减少了权重参数的总量,有利于神经网络的快速学习,和在计算时减少内存开销。
2023-08-16 10:48:571

卷积神经网络的结构

卷积神经网络的基本结构由以下几个部分组成:输入层,卷积层,池化层,激活函数层和全连接层。卷积神经网络(Convolutional Neural Networks, CNN)是一类包含卷积计算且具有深度结构的前馈神经网络(Feedforward Neural Networks),是深度学习(deep learning)的代表算法之一。卷积神经网络具有表征学习(representation learning)能力,能够按其阶层结构对输入信息进行平移不变分类(shift-invariant classification),因此也被称为“平移不变人工神经网络(Shift-Invariant Artificial Neural Networks, SIANN)”。对卷积神经网络的研究始于二十世纪80至90年代,时间延迟网络和LeNet-5是最早出现的卷积神经网络;在二十一世纪后,随着深度学习理论的提出和数值计算设备的改进,卷积神经网络得到了快速发展,并被应用于计算机视觉、自然语言处理等领域。卷积神经网络仿造生物的视知觉(visual perception)机制构建,可以进行监督学习和非监督学习,其隐含层内的卷积核参数共享和层间连接的稀疏性使得卷积神经网络能够以较小的计算量对格点化(grid-like topology)特征。连接性卷积神经网络中卷积层间的连接被称为稀疏连接(sparse connection),即相比于前馈神经网络中的全连接,卷积层中的神经元仅与其相邻层的部分,而非全部神经元相连。具体地,卷积神经网络第l层特征图中的任意一个像素都仅是l-1层中卷积核所定义的感受野内的像素的线性组合。卷积神经网络的稀疏连接具有正则化的效果,提高了网络结构的稳定性和泛化能力,避免过度拟合。
2023-08-16 10:49:181

简述卷积神经网络的结构

卷积神经网络的结构如下:1、输入层。输入层是整个神经网络的输入,在处理图像的卷积神经网络中,它一般代表了一张图片的像素矩阵。2、卷积层。从名字就可以看出,卷积层是一个卷积神经网络中最重要的部分。和传统全连接层不同,卷积层中的每一个节点的输入只是上一层神经网络中的一小块,这个小块的大小有3*3或者5*5。3、池化层。池化层神经网络不会改变三维矩阵的深度,但是它可以缩小矩阵的大小。池化操作可以认为是将一张分辨率较高的图片转化为分辨率较低的图片。4、全连接层。在经过多轮卷积层和池化层处理之后,在卷积神经网络的最后一般会由1到2个全连接层来给出最后的分类结果。经过几轮的卷积层和池化层的处理之后,可以认为图像中的信息已被抽象成了信息含量更高的特征。5、Softmax层。Softmax层主要用于分类问题。经过Softmax层,可以得到当前样例中属于不同种类的概率分布情况。卷积神经网络简介:卷积神经网络是一类包含卷积计算且具有深度结构的前馈神经网络,是深度学习的代表算法之一。卷积神经网络具有表征学习能力,能够按其阶层结构对输入信息进行平移不变分类,因此也被称为“平移不变人工神经网络”。对卷积神经网络的研究始于二十世纪80至90年代,时间延迟网络和LeNet-5是最早出现的卷积神经网络;在二十一世纪后,随着深度学习理论的提出和数值计算设备的改进,卷积神经网络得到了快速发展,并被应用于计算机视觉、自然语言处理等领域。卷积神经网络仿造生物的视知觉机制构建,可以进行监督学习和非监督学习,其隐含层内的卷积核参数共享和层间连接的稀疏性使得卷积神经网络能够以较小的计算量对格点化特征,例如像素和音频进行学习、有稳定的效果且对数据没有额外的特征工程要求。
2023-08-16 10:49:411

怎样通俗易懂地解释卷积?

在2015中国计算机大会特邀报告上,中国人工智能学会理事长李德毅院士的主题报告。在报告中提到了卷积的理解问题。他举例说,在一根铁丝某处不停地弯曲,假设发热函数是f(t) ,散热函数是 g(t) ,此时此刻的温度就是 f(t) 跟g(t)的卷积。在一个特定环境下,发声体的声源函数是f(t) ,该环境下对声源的反射效应函数是 g(t) ,那么这个环境下的接受到声音就是 f(t) 和 g(t) 的卷积。
2023-08-16 10:50:3912

深度卷积网络

LeNet网络的结构如下图所示,可以看出,LeNet网络并没有使用padding,每进行一次卷积,图像的高度和宽度都会缩小,而通道数会一直增加。在全连接层中有400个节点,每个极点都有120个神经元,有时还会从这400个节点抽取一部分节点构建一个全连接层,即有两个全连接层。在该网络中,最后一步就是利用84个特征得到最后的输出,该网络刚开始使用的是 sigmoid 函数 tanh 函数,而现在常常倾向于使用 softmax 函数。需要注意的是,LeNet-5网络进行图像分类时,输入的图像是单通道的灰度图像。 AlexNet是以论文第一作者的名字命名的,该网络的结构,如下图所示,该网络的输出层使用了 softmax 函数。AlexNet网络比LeNet网络规模更大,大约有6000万个参数,用于训练图像和数据集时,能够处理非常相似的基本构造模块,这些模块中包含着大量的隐藏单元,并且与LeNet网络不同的是,该网络使用了ReLu的激活函数。VGG-16网络没有太多的超参数,这是一种专注于构建卷积层的简单网络。如下图所示,该网络首先利用64个过滤器进行了两次卷积,接着在池化层将输入图像压缩,接着又是128个过滤器进行两次卷积,接着载池化。继续用256个过滤器进行3次卷积,再池化,接着再利用512个过滤器卷积3次,再池化,将稍后得到的特征图进行全连接操作,再进 softmax 激活。 由于存在梯度消失和梯度爆炸的原因,深层次的神经网络是很难训练的,如果采用一种跳跃连接的方式,即从某一层网络层获取激活,然后迅速反馈给另外一层,甚至是神经网络的更深层。这种利用跳跃连接构建的深度神经网络ResNets,深度能够超过100层 一个简单的两层神经网络示例,如下图所示: 常规的输出和输出之间的关系可以用如下的公式表示:如上公式所述,这是一条神经网络的主路径。如果将 的输入直接到深层的激活函数之前,此时,神经网络有了一条副路径,其对应输出将有公式(5)变成如下所示的公式(6)此时的输入除了原先的输入 外,多了一个 项,即由于 产生了一个残差块。 构建一个ResNet网络就是将很多这样的残差块堆积在一起,形成一个深度神经网络,如下所示: 使用传统的标准优化算法训练一个网络,随着网络深度的增加,训练误差会先减小再增加,随着网络层数的增加,优化算法会越难以训练,训练误差也会越来越多。但是,使用ResNet网络,能够有效地避免这种情况。 如上所述,加入残差网络之后,其输出计算公式如公式(6)所示,展开这个公式,则有:如果使用L2正则化或者权重衰减,则会压缩权重参数 的值,如果参数 和参数 等于0,其输出将由公式(7)变成 ,假定使用ReLU激活函数,则有: 由于残差网络存在的这种跳跃连接,很容易得出以上等式,这意味着,即使给神经网络增加两层,但是其效率并不逊色与更简单的神经网络。并且由于存在以上恒等式,使得网络学习隐藏层的单元的信息更加容易。而普通网络,随着网络层数的增加,学习参数会变得很困难。 此外,关于残差网络,如公式(6)所示,假设 与 具有相同的维度,由于ResNets使用了许多same卷积, 的维度等于输出层的维度。如果输入和输出具有不同的维度,可以再增加一个矩阵 ,使得 和 具有相同的维度。而 的维度可以通过0值填充调节。 在卷积网络的架构设计中,一种有趣的想法是会使用到1×1的过滤矩阵,实际上,对于单通道的图像而言,1×1的过滤矩阵,意义不大,但是,对于多通道的图像而言,1×1的过滤矩阵能够有效减少图像卷积之后的通道数量。 根据卷积和池化的基本知识,随着神经网络层数的增加,图像的通道数量会逐渐增加,采用1×1的过滤矩阵卷积之后,可以有效减少图像的通道数量,一个简单的示例,如下所示: 假设有一个6×6×32的图片,使用1×1×32的过滤矩阵进行卷积运算,整个运算过程将会遍历36个单元格,并计算过滤矩阵所覆盖区域的元素积之和,将其应用到ReLu非线性函数,会得到一个输出值。此计算过程中,可能会用到多个1×1×32的过滤器,那么,通过以上计算会得到一个 6×6×过滤器数量 的矩阵。 构建卷积神经网络时,有时会很难决定过滤器的大小,而Inception网络的引入,却能很好的解决这个问题。 Inception网络的作用就是代替人工确定选择卷积层的过滤器类型。如下图所示,对于一个多通道图像,可以使用不同的过滤矩阵或者池化层,得到不同的输出,将这些输出堆积起来。 有了如上图所示的Inception块,最终输出为32+32+64+128=256,而Inception模块的输入为28×28×192,其整个计算成本,以5×5的过滤矩阵为例,其乘法的计算次数为:28×28×32×5×5×192,整个计算次数超过了1.2亿次。而如果使用如下所示的优化计算方法,则可以有效减少计算量。 如果利用1×1的过滤器,将输入矩阵的通道减少至16,则可以有效减少计算量,如下所示: 如上图所示的价格中,整个网络的运算次数为:28×28×192×16+28×28×32×5×5×16=1240万,整个计算成本降低至原来的十分之一。而,通过1×1×192过滤器卷积得到的这个网络层被称之为瓶颈层。 如上,所示,可以给每一个非1×1的卷积层之前,加入一个1×1的瓶颈层,就可以构建一个基本的inception模块了,如下图所示: 而一个inception网络就是多个Inception模块连接起来,如下图所示: 事实上,以上网络中,还存在一些分支,如编号1所示,这些分支就是全连接层,而全连接层之后就是一个softmax层用于预测。又如分支2所示,包含一些隐藏层(编号3),通过全连接层和softmax进行预测。这些分支结构能够确保,即使是隐藏层和中间层也参与了特征计算,并且也能够预测图片的分类。这种做法能够有效避免网络过拟合。 对于计算机视觉领域而言,神经网络的训练可能需要大量的数据,但是当数据量有限时,可以通过数据增强来实现数据量的扩充,以提高系统的鲁棒性,具体的数据增强方法如下所示: 除了以上三种数据增强的方法外,更多的数据增强方法和实现可以参考 图像数据增强 数据增强可以利用计算机多线程实现,一个线程用来实现加载数据,实现数据增强,其他线程可以训练这些数据以加快整体的运算速度。
2023-08-16 10:52:321

卷积神经网络卷积的目的是什么?深度学习神经网络学习的是什么?

卷积的目的是提取特征,学习特征,深度学习的模型很多,比如RNN,CNN,ResNet,DenceNet等等,各种模型的功能也不同,主要应用在图像分类,目标识别,自然语言处理,预测等。
2023-08-16 10:52:411

卷积的本质

人生实在是有太多事情难以把控,并不是说人的力量多么渺小,而是在宇宙环境的大背景下,许多事情结果的本质往往取决于某些细节的某种程度的随机性。人生不如意事常八九,可与言者无二三。年轻时候遇到不开心的事情喜欢想想书本里的东西,感觉上,解读研究知识最为踏实,没有装模作样没有逆来顺受,可以敞开心扉忘却世间烦恼。现在看来那时是有些天真,想必若非为了生计应该不会甘心沉迷于此吧,况且我自身在科学技术领域并不擅长。花花世界有太多东西扰人心智,好在追求本质尚且是我一贯的执念。 就我个人来说,cv领域有很多基本理论尚需学习。尽管也做了几个项目但仍有必要回过头来探讨一些基础概念。那么,从卷积开始。 先不局限于图像领域,其实卷积是有特定的物理意义的,我本科学自动化的,那时候学习信号处理是学习了卷积的概念,但没能深刻理解,后来初接触到卷积神经网络发现好像又推翻了之前的理解。但实际上是没有建立感性到理性的认识联系。 学过物理的都知道,物理学中有冲量的概念,可以简单描述为力F作用了t时间的结果F*t,假如保持冲量不变,让这个时间t无限短,于是在用t做横坐标、F做纵坐标的坐标系中,就形成一个高度极大宽度极小的形象,计算冲量可以用积分对它求面积,数学上叫卷积。 卷积其实就是为冲击函数诞生的。“冲击函数”是狄拉克为了解决一些瞬间作用的物理现象而提出的符号。在“信号与系统”中卷积用来表示系统对输入信号的响应,假设系统H其响应函数为h(t),在t时刻其输入为x(t),输出为y(t),直观上理解其输出应该是y(t)=x(t)h(t),然而实际上并非如此,系统的输出不仅和当前时刻t的响应有关还与t时刻之前的响应有关,只不过t时刻之前响应应该是衰减的过程(也可以理解为t时刻之后的衰减),s时刻(s<t)对应的响应为x(t)h(t-s),这个过程可能是连续的也可能是离散的,但总可以理解为t 时刻的响应等于每一个输入信号在 t 时刻所产生的响应的叠加。可表示为: 图像处理中,用一个模板和一幅图像进行卷积可以描述为:对于图像上的每个点,先对模板旋转180度,为什么旋转看卷积公式就知道,在数学里我们知道f(-x)的图像是f(x)对y轴的反转, h(-m)就是把g(m)的序列反转,h(n-m)的意义是把h(-m)平移的n点,由于大多数模板都是对称的,旋转后和原模板相同,所以模板不旋转,然后让模板的中心点和该点重合,模板上的点和图像上对应的点相乘,然后各点的积相加,就得到了该点的卷积值。对图像上的每个点都这样处理,对于图像上的边角点与模板上的点无法对应的一般用0补齐,这就是padding方法。卷积是一种积分运算,用来求两个曲线重叠区域面积。可以看作加权求和,可以用来消除噪声、特征增强。深度卷积网络中一层层的卷积本质上就是大量的卷积核在发挥不同的作用,有的去噪声、有的做锐化、有的增强边缘、有的做滤波等等。 图像中一般是离散卷积,这里以离散卷积计算为例,对于S2式,N为信号f(n)的长度,y(n)为卷积结果序列,长度为len(f(n))+len(g(n))-1。 以3个元素的信号为例: 最终结果为: y(n) = [2 7 13 11 3] 计算过程如下图: 相应的二维卷积定义如下: 有个更加形象的图示,针对3*3的卷积核: 针对图像处理中的卷积理解: 总结一下,卷积的概念尽管在不同领域具有不同的含义,但似乎有一种共性,可以总结为某种系统对某个物理量或输入的调制或污染。 至此总算对卷积的定义及计算有了基本的理解,从感性到理性是知识化理论化的过程,从理性到感性是进一步升华知识提升理解层次的过程,在这个过程中往往能体会到事事共通万物归一的感觉。嗯,说的有点过分了。 https://www.cnblogs.com/wujing-hubei/p/5682766.html https://blog.csdn.net/u013539952/article/details/80610260 https://blog.csdn.net/alvinlyb/article/details/78892252 https://blog.csdn.net/tiandijun/article/details/40080823
2023-08-16 10:52:501

乘法的竖式运算与卷积→卷积的本质

乘法的竖式运算是非常有效的算法,其原理却让人捉摸不透,很难看出有什么几何意义。在看了《深入浅出通信原理》关于卷积的介绍后,才发现,原来它是一种卷积运算。卷积,对普通人来说是非常陌生的,即使对于学习过积分变换中的卷积定理的人而言,似乎也从未真正理解它的含义,仅仅是记住了公式然后去套用。所以,这篇文章希望通过类比的方式,告诉你卷积不过是竖式运算的一种抽象,在我们很小的时候就掌握了它的计算方法。 首先让我们回顾乘法的竖式运算,如下图所示 先用被乘数乘最右边的数,对应写下来,然后用被乘数乘右起第二个数,像左平移一位后对应写下来,这样直到把乘数的所有位乘一遍,最后把得到的这些数对应加起来,就得到了最终结果。整个计算过程中,我们都是在做平移,乘积,求和的简单步骤,一个复杂的大数乘积问题,就被分解为这样的基础运算,非常高效。 现在,换一个角度来看这个过程,由于数字是十进制的,所以总可以分解为这样的数字多项式,也就是一般的多项式,将未知数取为10。既然当x=10的时候,我们可以这样来计算,x为其他的值的时候能否这样算呢?答案就在下面的图。 多项式的乘法也可以通过竖式运算来求结果,而且同样的简单。移位,乘积,求和。不过,也是有所区别的,就比如结果出现了超过10的数,之前是十进制的,满足关系所以逢10进位,类似的对于其他进制的数,有类似的进位关系: 二进制八进制但是,现在,x是未知的,所以进位关系就不再成立了。于是出现了超过10的数,其实这个数可以任意大,因为x可以任意大。 好的,中间穿插了一些数制的讨论,现在回到正题。经过上面的讨论,我们发现竖式运算可以轻易推广到多项式的情形,那么再贪心一些,能不能将他推广到更一般的情形上呢?我们都知道,多项式是泰勒级数的特例,是有限项的泰勒级数。那么能否推广到泰勒级数的乘积上去呢?当然也是可以的,但是,对于无穷项书写起来就太麻烦了,所以还是选择另一个推广方向。傅里叶多项式是傅里叶级数的有限形式,所以,我们可以试着推广竖式运算到傅里叶多项式。 如图所示,竖式运算同样可以求解傅里叶多项式的乘法,不过,出现了新的变化,傅里叶多项式的基有正有负,所以逐位相乘的时候需要仔细确定他的平移位置,像这里,由于有一次的负基,所以整体向右平移了一位。 于是,竖式运算其实反映了这样的一种多项式乘法的本质,多项式的系数乘法往往被称为卷积,竖式运算就是这种系数乘法的表现形式。 于是,至少在有限情形下,对卷积的理解做了些探索,对于连续的情形,就涉及一些问题,收敛性,基之间的运算。姑且当作一种直观对应吧,接下来是我尝试使用连续基向量空间模型来理解函数的卷积的内容。关于连续基向量空间模型的解释可以去看我之前写的线性算符和矩阵的四篇文章。 首先任意可测函数都可以视为连续基向量空间中的向量,这个向量空间的基可以取实数集中的任意点,也就是集合 ,我们考虑的函数可以记为连续基的线性组合。 于是通常的函数乘法,给出的是也就是逐点乘积,两个基相同的时候才可以将系数相乘,基的作用可有可无。 而卷积则是这就是一种高明的向量运算,利用到了连续基的运算性质 ,这种性质可以类比傅里叶级数中的复指数基 ,因为连续基可以视为复指数基的极限情形。 这样看来,卷积是一种更加自然的运算,有着更好的性质,本质上就是有限维向量空间上乘法的一种推广,还是多项式乘法。而函数的乘法则是一种粗糙的运算,丢失了很多向量空间的性质。 这篇文章,有点久了,没有发出来,是因为后面的部分有一些错误,而且感觉并没有找到卷积的本质。 最近在看信号与系统,响应信号的卷积求法,又借助于看广义函数论的一些认识,总算是明白了卷积的本质。 下面就是我的理解,可能需要对测度有一定了解。 广义函数作用于函数,表现为积分的形式,比如狄拉克分布,int[f(x)*δ(x)]dx=f(0), 可以视为对函数f的定义域空间定义了一个测度,仅在原点处质量为1,其他部分均为零,这只是一种形象的描述,这种描述的正式定义还是比较复杂的。 类比考虑广义函数的卷积形式,int[f(x)δ(t-x)]dx, 也就是发生了一些变化,测度还是一样的,但是原点位置却随着参数t的变化而不断变化,于是从点变成了函数。 所以卷积就是一种带参数的广义函数作用,他给出了一种带权值的测量网格,随参数的改变,网格的位置发生变化。 可以考虑卷积神经网络,也就是图像处理中的卷积运算,虽然是离散情形,却给出了本质特征,他就是一个权值网格,比如3*3的卷积模板,就是对这九个像素分别赋予一个权值,然后对初始像素反转后加权求和,而参数就是起到了移动模板的作用,一次移动一个像素,直到计算完所有的像素,就得到了输出,输入一个像素矩阵,卷积后输出一个像素矩阵。 解释:右图是离散卷积模版的权值,对应的像素要乘上相应的倍数,然后相加,左图的圆圈代表卷积模板的中心,参数的作用就是移动这个中心,计算每一个像素的值。 对于信号处理中涉及的连续情形,其实是一样的道理,这里的像素就是冲激信号,任何信号都可以表示为冲激信号的线性组合。这种表示,可以理解为函数空间的连续基。其实也可以这样理解,函数是定义在实数集上的,对于可测函数而言,每一个实数上的取值都是独立的,所以,对每一个实数对应一个冲激信号,就可以将函数变成不可数个冲激信号乘上对应函数值之和,一般可简化为积分。卷积就是利用这样的连续性的模板,进行加权求和,也就是加权积分,其实就是泛函作用,或者说广义函数作用。而参数则是起到移动这个连续性模板的作用,直到计算完所有的实数。就得到了输出,输入一个实函数,输出一个实函数。 解释:右图是连续性卷积模版的权值分布,竖线是连续性卷积模版的中心,参数的作用同样是移动这个中心,计算每一个实数的值。 至此,卷积的本质可以说被完全的揭示出来了。它是一种含参数的泛函作用,也就是说定义域每一点都对应一个泛函,每一个点的输出就是对应泛函与输入函数的作用。 值得注意的是,卷积不仅包括这种泛函作用及参数平移,还有一个翻转的运算,将图像矩阵,或者信号先翻转过来,然后再进行这种运算,这也是他的重要特征。所以理解卷积,首先要知道这种作用,这种作用有正有反,采用原始输入就是正作用,采用翻转后的原始输入就是反作用,卷积就是反作用。 通过卷积模版,也可理解为什么具紧支集的连续函数或可测函数非常重要,因为,这样的函数,往往可以保证卷积积分的收敛,也就是卷积的存在,所以也可是认为是可进行卷积运算的恰当的函数集。预先给出这个假设,就可以毫无顾忌的使用卷积运算了。 这个问题总算是得到了解决,确实不容易,求随机变量函数的概率分布,时域卷积与频域乘积,图像处理的卷积模板,信号处理中响应的卷积算法,积分变换里面的卷积定理,多项式乘积的卷积本质,卷积确实是无处不在,可是,却很难找到一个合理的解释。要么就太过唯象了,试图使用图片来解释这个抽象概念,要么太过理论化了,数学的描述非常正确,却无法给出图像。不过,我感觉,我给出的这个解释还是比较难以理解的。不过,对我而言,却是足够清晰了,将一个运算的大杂烩,拆分成了有明确意义的两步操作,如此简单,却是几年都未曾发觉。只能说世事奇妙,没有如此多的对比与积累,这种本质还是很难发现的。
2023-08-16 10:53:051

深度学习具体要学哪些东西?

深度学习是一类模式分析方法的统称,就具体研究内容而言,主要涉及三类方法:(1)基于卷积运算的神经网络系统,即卷积神经网络(CNN)。(2)基于多层神经元的自编码神经网络,包括自编码( Auto encoder)以及近年来受到广泛关注的稀疏编码两类( Sparse Coding)。(3)以多层自编码神经网络的方式进行预训练,进而结合鉴别信息进一步优化神经网络权值的深度置信网络(DBN)。
2023-08-16 10:53:163

卷积神经网络(CNN)和循环神经网络(RNN)有什么区别?

卷积神经网络(CNN)主要用于处理具有网格结构的数据,例如图像和语音。它通过卷积层和池化层来提取输入数据中的局部特征,并通过全连接层进行分类或回归。CNN的卷积操作可以有效地捕捉到图像中的空间局部特征,并且具有参数共享的特性,减少了模型的参数量。循环神经网络(RNN)则更适合处理序列数据,例如自然语言和时间序列。RNN通过循环单元(如LSTM或GRU)来处理序列中的每个元素,并利用记忆单元来记住之前的上下文信息。这使得RNN能够对序列中的长期依赖关系进行建模,并在生成输出时考虑到先前的信息。
2023-08-16 10:53:231

卷积神经网络中用1*1 卷积有什么作用或者好处

卷积神经网络几种应用供研究:1、基于卷积网络形状识别物体形状视觉系统析识别物体基础几何形状物体本质特征表现并具平移、缩放旋转变等特点所模式识别领域于形状析识别具十重要意义二维图像作三维图像特例及组部二维图像识别三维图像识别基础2、基于卷积网络脸检测卷积神经网络与传统脸检测同通直接作用于输入本用本训练网络并终实现检测任务非参数型脸检测省传统建模、参数估计及参数检验、重建模型等系列复杂程本文针图像任意、位置、姿势、向、肤色、面部表情光照条件脸3、文字识别系统经典模式识别般事先提取特征提取诸特征要些特征进行相关性析找能代表字符特征掉类关自相关特征些特征提取太依赖经验主观意识提取特征同类性能影响甚至提取特征顺序影响类性能同图像预处理坏影响提取特征
2023-08-16 10:53:325

第五章 神经网络

神经网络 :神经网络是由具有适应性的简单单元组成的广泛并行互连的网络,它的组织能够模拟生物神经系统对真实世界物体所作出的交互反应。 神经网络中最基本的成分便是 神经元模型 。 M-P神经元模型: 感知机由两层神经元组成,分别为输入层、输出层。 以下是具体过程: 多层神经网络的拓扑结构如图: 如上图可知,多层网络由输入层、隐含层和输出层组成,顶层是输出层,底层是输入层,中间的便是隐含层。隐含层与输出层都具有功能神经元。 多层前馈神经网络的结构需要满足: 1、每层神经元必须与下一层完全互连 2、神经元之间不存在同层连接 3、神经元不可跨层连接 只需包含一个足够多神经元的隐层,就能以任意精度逼近任意复杂度的连续函数 BP神经网络由于学习能力太强大比较荣誉造成过拟合问题,故有两种策略来减缓过拟合的问题: 1、早停:将数据分成训练集和验证集,训练集学习,验证集评估性能,在训练过程中,若训练集的累积误差降低,而验证集的累积误差提高,则终止训练; 2、引入正则化:其基本思想是在误差目标函数中增加一个用于描述网络复杂程度的部分,有如连接权和阈值的平方和: 其中λ∈(0,1)用于对累积经验误差与网络复杂度这两项进行折中,常通过交叉验证法来估计。 神经网络的训练过程可看作一个参数寻优的过程,即寻找到适当的参数使得E最小。于是我们时常会谈及“全局最小”和“局部最小”。 1、全局最小:即全局最小解,在参数空间中,所有其他点的误差函数值均大于该点; 2、局部最小:即局部最小解,在参数空间中,其邻近的点的误差函数值均大于该点。 我们要达到局部极小点,很容易,只要满足梯度为零的点便是了,局部极小点可以有多个,但全局最小点只有一个。显然,我们追求的是全局最小,而非局部极小,于是人们通常采用以下策略来试图“跳出”局部极小,使其接近全局最小: 1、以多组不同参数值初始化多个神经网络,按标准方法训练,在迭代停止后,取其中误差最小的解作为最终参数; 2、使用随机梯度下降(在计算梯度时加入了随机因素),使得在局部最小时,计算的梯度仍可能不为0,从而可能跳出局部极小,继续进行迭代; 3、“模拟退火”技术,在每一步都以一定的概率接受比当前解更差的结果,但接受“次优解”的概率要随着迭代进行,时间推移而逐渐减低以确保算法的稳定。 1、RBF网络 单隐层前馈神经网络 ,使用径向基函数作为隐层神经元激活函数,输出层是对隐层神经元输出的线性组合。RBF网络可表示为: 2、ART网络 竞争型学习 (神经网络中一种常用的 无监督学习 策略),由 比较层、识别层、识别阈值和重置模块 组成。接收到比较层的输入信号后,识别层神经元相互竞争以产生获胜神经元,最简单的方式就是计算输入向量与每个识别层神经元所对应的模式类代表向量间的距离,距离小者获胜。若获胜神经元对应的代表向量与输入向量间 相似度大于识别阈值 ,则将输入样本归为该代表向量所属类别,网络 连接权 也会进行 更新 以保证后面接收到相似的输入样本时该模式类会计算出更大的相似度,使得这样的样本能够归于一类;如果 相似度不大于识别阈值 ,则 重置模块 会在 识别层 加一个神经元,其 代表向量 就 设置 为当前 输入向量 。 3、SOM网络 竞争型学习的无监督神经网络 ,将高维输入数据映射到低维空间(通常是二维),且保持输入数据在高维空间的拓扑结构。 4、级联相关网络 结构自适应网络 。 5、Elman网络 递归神经网络 。 6、Boltzmann机 基于能量的模型,其神经元分为显层与隐层,显层用于数据输入输出,隐层被理解为数据的内在表达。其神经元皆为布尔型,1为激活,0为抑制。 理论上,参数越多的模型其复杂程度越高,能完成更加复杂的学习任务。但是复杂模型的训练效率低下,容易过拟合。但由于大数据时代、云计算,计算能力大幅提升缓解了训练效率低下,而训练数据的增加则可以降低过拟合风险。 于是如何增加模型的复杂程度呢? 1、增加隐层数; 2、增加隐层神经元数. 如何有效训练多隐层神经网络? 1、无监督逐层训练:每次训练一层隐节点,把上一层隐节点的输出当作输入来训练,本层隐结点训练好后,输出再作为下一层的输入来训练,这称为预训练,全部预训练完成后,再对整个网络进行微调。“预训练+微调”即把大量的参数进行分组,先找出每组较好的设置,再基于这些局部最优的结果来训练全局最优; 2、权共享:令同一层神经元使用完全相同的连接权,典型的例子是卷积神经网络。这样做可以大大减少需要训练的参数数目。 深度学习 可理解为一种特征学习或者表示学习,是通过 多层处理 ,逐渐将初始的 低层特征表示 转化为 高层特征表示 后,用 简单模型 即可完成复杂的分类等 学习任务 。
2023-08-16 10:53:461

深度学习中的神经网络编写需要设计到哪些算法?

涉及到的算法有很多,比如反向传播算法、前向传播、卷积算法、矩阵远点的算法、梯度优化的算法、评估算法等等。单纯用算法来描述过于笼统,一般都是直接用对应的数学原理和公式去描述神经网络的编写过程的。常见的深度学习算法有三种:来卷积神经网络、循环神经网络、生成对抗网络。深度学习常见的3种算法有:卷积神经网络、循环神经网络、生成对抗网络。卷积神经网络(ConvolutionalNeuralNetworks,CNN)是一类包含卷积计算且具有深度结构的前馈神经网络(FeedforwardNeuralNetworks),是深度学习的代表算法之一。BP算法是迄今最成功的神经网络学习算法,现实任务中使用神经网络时,大多是在使用BP算法进行训练[2],包括最近炙手可热的深度学习概念下的卷积神经网络(CNNs)。其实神经网络也称之为人工神经网络,简单就是ANN,而算法是80年代机器学习界非常流行的算法,不过在90年代中途衰落。现在,随着深度学习的发展,神经网络再次出现在大家的视野中,重新成为最强大的机器学习算法之一。这种模型一般采用计算机科学中的图模型来直观的表达,而深度学习的“深度”便指的是图模型的层数以及每一层的节点数量,相对于之前的神经网络而言,有了很大程度的提升。
2023-08-16 10:54:071

神经网络包括卷积层,还包括哪些层

1、卷积神经网络(ConvolutionalNeuralNetwork,CNN)是一种前馈神经网络,它的人工神经元可以响应一部分覆盖范围内的周围单元,对于大型图像处理有出色表现。2、卷积神经网络的基本结构由以下几个部分组成:输入层,卷积层,池化层,激活函数层和全连接层。3、目前的卷积神经网络一般是由卷积层、汇聚层和全连接层交叉堆叠而成的前馈神经网络,使用反向传播算法进行训练。卷积神经网络有三个结构上的特性:局部连接,权重共享以及汇聚。
2023-08-16 10:54:151

哪些算法通常用于解决深度学习问题

深度学习算法有哪些深度学习常见的3种算法有:卷积神经网络、循环神经网络、生成对抗网络。卷积神经网络(ConvolutionalNeuralNetworks,CNN)是一类包含卷积计算且具有深度结构的前馈神经网络(FeedforwardNeuralNetworks),是深度学习的代表算法之一。常见的深度学习算法有三种:来卷积神经网络、循环神经网络、生成对抗网络。深度学习算法是学习样本数据的内在规律和表示层次,这些学习过程中获得的信息对诸如文字,图像和声音等数据的解释有很大的帮助。它的最终目标是让机器能够像人一样具有分析学习能力,能够识别文字、图像和声音等数据。简述深度学习的基本方法。深度学习算法以下三种:回归算法。回归算法是试图采用对误差的衡量来探索变量之间的关系的一类算法,是统计机器学习的利器。基于实例的算法。深度学习常见的3种算法有:卷积神经网络、循环神经网络、生成对抗网络。卷积神经网络(ConvolutionalNeuralNetworks,CNN)是一类包含卷积计算且具有深度结构的前馈神经网络(FeedforwardNeuralNetworks),是深度学习的代表算法之一。深度学习的具体过程可简述为:挖掘所给样本数据的内在规律与联系,提取、分析样本的特征信息,如图像、文本和声音,处理数据信息并发出指令,控制机器的行为,使机器具有类似于人类的学习、分析、识别、处理等能力。)机器学习(MachineLearning)是一个大的方向,里面包括了很多种approach,比如deeplearning,GMM,SVM,HMM,dictionarylearning,knn,Adaboosting不同的方法会使用不同的模型,不同的假设,不同的解法。深度学习是一类模式分析方法的统称,就具体研究内容而言,主要涉及三类方法:(1)基于卷积运算的神经网络系统,即卷积神经网络(CNN)。深度学习是机器学习领域中对模式(声音、图像等等)进行建模的一种方法,它也是一种基于统计的概率模型。深度学习的应用领域有哪些?无人驾驶汽车:深度学习在无人驾驶领域主要用于图像处理,可以用于感知周围环境、识别可行驶区域检测、以及识别行驶路径识别。图片识别及分类:识别出图片中的对象,并建立关键词,对图片进行分类。谷歌利用深度学习算法使自动驾驶汽车领域达到了一个全新的水平。现在谷歌已经不再使用老的手动编码算法,而是编写程序系统,使其可以通过不同传感器提供的数据来自行学习。比如家居行业,智能家居的应用也用到了深度学习技术,比如智能冰箱通过图像识别等技术记录食材种类和用户日常饮食数据,进而分析用户的饮食习惯,并根据多维度给出最全面的健康膳食建议。主要应用有:推荐系统,计算机视觉,自然语言处理等。目前我国的大学学科设置里面,最接近目前学术界意义的人工智能专业是控制工程与科学下的:模式识别与智能系统。深度学习是基于机器学习延伸出来的一个新的领域,由以人大脑结构为启发的神经网络算法为起源加之模型结构深度的增加发展,并伴随大数据和计算能力的提高而产生的一系列新的算法。本项目主要关注深度学习在自然语言处理中的应用,利用循环神经网络及长短时记忆网络来实现该领域中的词嵌入学习和上下文推断。项目将选取部分文学作品文本,依次实现词嵌入特征提取和基于长短时记忆的上下文推断。哪个是深度学习中常用的优化算法1、MBGD每一次利用一小批样本,即n个样本进行计算,这样它可以降低参数更新时的方差,收敛更稳定,另一方面可以充分地利用深度学习库中高度优化的矩阵操作来进行更有效的梯度计算。2、深度学习常见的3种算法有:卷积神经网络、循环神经网络、生成对抗网络。卷积神经网络(ConvolutionalNeuralNetworks,CNN)是一类包含卷积计算且具有深度结构的前馈神经网络(FeedforwardNeuralNetworks),是深度学习的代表算法之一。3、经验上,RMSProp已被证明是一种有效且实用的深度神经网络优化算法。目前它是深度学习从业者经常采用的优化方法之一。4、梯度下降是非常常用的优化算法。作为机器学习的基础知识,这是一个必须要掌握的算法。借助本文,让我们来一起详细了解一下这个算法。深度学习中的神经网络编写需要设计到哪些算法?涉及到的算法有很多,比如反向传播算法、前向传播、卷积算法、矩阵远点的算法、梯度优化的算法、评估算法等等。单纯用算法来描述过于笼统,一般都是直接用对应的数学原理和公式去描述神经网络的编写过程的。常见的深度学习算法有三种:来卷积神经网络、循环神经网络、生成对抗网络。深度学习常见的3种算法有:卷积神经网络、循环神经网络、生成对抗网络。卷积神经网络(ConvolutionalNeuralNetworks,CNN)是一类包含卷积计算且具有深度结构的前馈神经网络(FeedforwardNeuralNetworks),是深度学习的代表算法之一。BP算法是迄今最成功的神经网络学习算法,现实任务中使用神经网络时,大多是在使用BP算法进行训练[2],包括最近炙手可热的深度学习概念下的卷积神经网络(CNNs)。其实神经网络也称之为人工神经网络,简单就是ANN,而算法是80年代机器学习界非常流行的算法,不过在90年代中途衰落。现在,随着深度学习的发展,神经网络再次出现在大家的视野中,重新成为最强大的机器学习算法之一。这种模型一般采用计算机科学中的图模型来直观的表达,而深度学习的“深度”便指的是图模型的层数以及每一层的节点数量,相对于之前的神经网络而言,有了很大程度的提升。目前深度学习的模型有哪几种,适用于哪些问题对抗生成网络GAN,是一种概率生成模型transformer注意力模型,用来做序列到序列计算的更多的是他们的变种。在深度学习中,计算机模型学习直接从图像、文本或声音中执行分类任务。深度学习模式可以达到新的精确度,有时甚至超过人类的表现。大多数深度学习方法使用神经网络的架构,这也是深度学习模型通常被称为深度神经网络的原因。无人驾驶汽车:深度学习在无人驾驶领域主要用于图像处理,可以用于感知周围环境、识别可行驶区域检测、以及识别行驶路径识别。图片识别及分类:识别出图片中的对象,并建立关键词,对图片进行分类。语音识别深度学习的发展使语音识别有了很大幅度的效果提升,类似于在计算机视觉中处理图像数据一样,深度学习中将声音转化为特征向量,然后对这些数字信息进行处理输入到网络中进行训练,得到一个可以进行语音识别的模型。深度学习模型是一种人工神经网络模型,通过多层非线性变换来实现高级别的抽象表达和学习。深度学习模型是机器学习的一种,并在人工智能领域中得到广泛应用。
2023-08-16 10:54:221

卷积神经网络和深度神经网络的区别是什么

作者:杨延生链接:来源:知乎著作权归作者所有,转载请联系作者获得授权。"深度学习"是为了让层数较多的多层神经网络可以训练,能够work而演化出来的一系列的 新的结构和新的方法。新的网络结构中最著名的就是CNN,它解决了传统较深的网络参数太多,很难训练的问题,使用了逗局部感受野地和逗权植共享地的概念,大大减少了网络参数的数量。关键是这种结构确实很符合视觉类任务在人脑上的工作原理。新的结构还包括了:LSTM,ResNet等。新的方法就多了:新的激活函数:ReLU,新的权重初始化方法(逐层初始化,XAVIER等),新的损失函数,新的防止过拟合方法(Dropout, BN等)。这些方面主要都是为了解决传统的多层神经网络的一些不足:梯度消失,过拟合等。---------------------- 下面是原答案 ------------------------从广义上说深度学习的网络结构也是多层神经网络的一种。传统意义上的多层神经网络是只有输入层、隐藏层、输出层。其中隐藏层的层数根据需要而定,没有明确的理论推导来说明到底多少层合适。而深度学习中最著名的卷积神经网络CNN,在原来多层神经网络的基础上,加入了特征学习部分,这部分是模仿人脑对信号处理上的分级的。具体操作就是在原来的全连接的层前面加入了部分连接的卷积层与降维层,而且加入的是一个层级。 输入层 - 卷积层 -降维层 -卷积层 - 降维层 -- .... -- 隐藏层 -输出层简单来说,原来多层神经网络做的步骤是:特征映射到值。特征是人工挑选。深度学习做的步骤是 信号->特征->值。 特征是由网络自己选择。
2023-08-16 10:54:321

三值神经网络

权重压缩:三值神经网络 卷积神经网络(Convolutional Neural Network,CNN)尤其适合于目标识别、分类、检测及图像分割等计算机视觉应用。 典型的模型有数百万参数并 运算量大 ;例如,AlexNet有6100万参数(浮点数权值共占用249MB存储空间),分类一张图片需要15亿高精度运算。 所以为降低CNN规模和使用资源,现在有模型修剪(model pruning,去掉值较小的权值)和权值压缩(weight compression,利用少数几位量化权值) 两种方法。 权值压缩:二值神经网络 重要点:网络中的权重更新使用三值{+1,0,-1};并最小化全精度权重W和三值权重W的欧式距离。 传播过程: 公式1的优化问题化解为如下: 从而 解: 最终确定一个阈值 、 来构建三值神经网络;根据 W 具体的分布情况来确定阈值 : 均匀分布:在 大于阈值的条件下 : 约等于均值( )*数量( ) [图片上传失败...(image-885207-1554553493996)] 正态分布: [图片上传失败...(image-2a3804-1554553493996)] 最后本文章作者根据经验: 确定三值网络中的阈值与W期望的关系 : : 均值分布: (注 在[-a,a]均匀取值,均值为 ) 正态分布: (注: 算法: [图片上传失败...(image-d013ce-1554553493996)] 只在前向和后向过程中使用使用权值简化 ,但是更新是仍然是使用连续的权值。 优化方法:随机梯度下降(SGD+动量)、批量标准化和学习率衰减 Momentum动量: 本实验基于数据集MNIST、CIFAR-10、ImageNet以及三种网络结构(LeNet-5、VGG-7、ResNet-18(B))进行测试,分别使用二值神经网络、三值神经网络及全精度网络,评测其效果。 TWNs在benchmark表现比全精度网络稍微差一点,但是模型压缩率达到了16/32倍。 源码: 前向后向 更改在conv_layer.cpp line 30-100 Forward_cpu | backward_cpu
2023-08-16 10:54:511

CNN卷积神经网络结构有哪些特点?

局部连接,权值共享,池化操作,多层次结构。  1、局部连接使网络可以提取数据的局部特征;  2、权值共享大大降低了网络的训练难度,一个Filter只提取一个特征,在整个图片(或者语音/文本) 中进行卷积;  3、池化操作与多层次结构一起,实现了数据的降维,将低层次的局部特征组合成为较高层次的特征,从而对整个图片进行表示。
2023-08-16 10:55:071

想要学习人工智能,有推荐的书籍和课程么?

由人民邮电出版社出版的《人工智能通识》面向我国人工智能的通识教育与专业技术人才的培养。全书共8章,分为3篇,分别为人工智能的基本理论、人工智能的应用以及人工智能的融合拓展,涵盖了目前主流的人工智能技术。《人工智能通识》在介绍人工智能的基本原理时,尽量回避了相关的复杂模型和算法设计,方便读者在社会层面理解人工智能的应用形式和未来的发展路径。此外,书中每章都设计了一些思考与练习的题目,以便读者在课堂练习和研讨中使用。
2023-08-16 10:55:382

目标检测算法的分步介绍(第 1 部分)

英文原文: https://www.analyticsvidhya.com/blog/2018/10/a-step-by-step-introduction-to-the-basic-object-detection-algorithms-part-1/ 对原文的表达有部分改动 在本文中,我们将更深入地研究可用于目标检测的各种算法。我们将从 RCNN 家族的算法开始,即 RCNN、Fast RCNN 和 Faster RCNN。在本系列即将发布的文章中,我们将介绍更高级的算法,如 YOLO、SSD 等。 下图是说明目标检测算法如何工作的一个流行示例。图像中的每个物体,从一个人到一只风筝,都以一定的精度被定位和识别。 让我们从最简单的深度学习方法开始,也是一种广泛使用的方法,用于检测图像中的目标——卷积神经网络( CNN)。CNN 的内部工作原理如下: 我们将图像传递给网络,然后通过各种卷积和池化层处理,发送给全连接层。最后,我们以目标类别的形式获得输出。这相当简单,不是吗?对于每个输入图像,我们得到一个相应的类作为输出。我们可以使用这种技术来检测图像中的各种目标吗?让我们看看如何使用 CNN 解决一般的目标检测问题。 使用这种方法的问题在于图像中的目标可能具有不同的纵横比和空间位置。例如,在某些情况下,目标可能覆盖图像的大部分,而在某些情况下,目标可能仅覆盖图像的一小部分。目标的形状也可能不同(在现实生活中经常发生)。由于这些因素,我们将需要大量的区域,从而导致大量的计算时间。因此,为了解决这个问题并减少区域数量,我们可以使用基于区域的 CNN,它使用提案法选择区域。让我们了解这个基于区域的 CNN 可以为我们做什么。 与在大量区域上工作不同的是,RCNN 算法是在图像中选取一堆框并检查这些框中是否有任何一个包含任何目标。 RCNN 使用 selective search 从图像中提取这些框(这些框称为 regions)。 让我们首先了解什么是 selective search 以及它如何识别不同的 regions。基本上四个模式可以构成一个物体:不同的尺度、颜色、纹理和外壳。selective search 识别图像中的这些模式,并在此基础上提出各种regions。以下是selective search 工作原理的简要概述: 举个例子: 到目前为止,我们已经看到了 RCNN 如何实现目标检测。但是这种技术有其自身的局限性。由于以下步骤,训练 RCNN 模型既昂贵又缓慢: 所有这些过程结合起来使 RCNN 非常慢。对每张新图像进行预测大约需要 40-50 秒,这实质上使得模型在面对庞大的数据集时变得笨重且几乎无法构建。 好消息是——我们有另一种目标检测技术,它修复了我们在 RCNN 中看到的大部分问题。 我们还能做些什么来减少 RCNN 算法通常需要的计算时间?我们是否可以每张图像只运行一次并获取所有感兴趣的区域(包含某个目标的区域)。 RCNN 的作者 Ross Girshick 提出了这个想法,即每张图像只运行一次 CNN,然后找到一种方法在 2,000 个区域之间共享该计算。在 Fast RCNN 中,我们将输入图像提供给 CNN,后者反过来生成卷积特征图。使用这些地图,提取提议的区域。然后我们使用 RoI 池化层将所有提议的区域重塑为固定大小,以便可以将其馈入全连接网络。 让我们将其分解为简化概念的步骤: 因此,Fast RCNN 不是使用三个不同的模型(如 RCNN),而是使用单个模型从区域中提取特征,将它们分成不同的类,并同时返回识别类的边界框。 为了进一步分解,我将对每个步骤进行可视化。 这就是 Fast RCNN 如何解决 RCNN 的两个主要问题,1. 将每个图像的一个而不是 2,000 个区域传递给 ConvNet。2. 使用一个而不是三个不同的模型来提取特征、分类和生成边界框。 但即使是 Fast RCNN 也存在某些问题。它还使用 selective search 作为寻找感兴趣区域的建议方法,这是一个缓慢且耗时的过程。每张图像检测目标大约需要 2 秒,这与 RCNN 相比要好得多。但是当我们考虑大型现实生活数据集时,即使是 Fast RCNN 看起来也不那么快了。 Faster RCNN 是 Fast RCNN 的修改版本。它们之间的主要区别在于 Fast RCNN 使用 selective search 来生成感兴趣的区域,而 Faster RCNN 使用 Region Proposal Network ,又名 RPN。 RPN 将图像特征图作为输入并生成一组目标提议,每个提议的目标以分数作为输出。 Faster RCNN 方法通常遵循以下步骤: 让我简要解释一下这个区域提议网络(RPN)实际上是如何工作的。 首先,Faster RCNN 从 CNN 获取特征图并将它们传递给区域提议网络。 RPN 在这些特征图上使用一个滑动窗口,在每个窗口,它生成 k 个不同形状和大小的 Anchor 框: Anchor 框是固定大小的边界框,它们放置在整个图像中,具有不同的形状和大小。对于每个 Anchor,RPN 预测两件事: 我们现在有不同形状和大小的边界框,它们被传递到 RoI 池化层。在 RPN 步骤之后,有可能存在没有分配给它们的类别提议。我们可以获取每个建议并对其进行裁剪,以便每个建议都包含一个目标。这就是 RoI 池化层所做的。它为每个锚点提取固定大小的特征图: 然后将这些特征图传递到具有 softmax 和线性回归层的全连接层。它最终对目标进行分类并预测已识别目标的边界框。 到目前为止,我们讨论的所有目标检测算法都使用区域来识别目标。网络不会一次性查看完整图像,而是依次关注图像的各个部分。这会造成两个并发症:
2023-08-16 10:55:451

循环神经网络

为什么卷积神经网络不会出现严重的数值问题呢? 卷积神经网络中每一层的权重矩阵 W 是不同的,并且在初始化时它们是独立同分布的,因此可以相互抵消,在多层之后一般不会出现严重的数值问题。 循环神经网络采用 ReLu 激活函数,只有当 W 的取值在单位矩阵附近时才能取得比较好的效果,因此需要将 W 初始化为单位矩阵。 Seq2Seq 模型最基础的解码方法是贪心法,即选取一种度量标准后,每次都在当前状态下选择最佳的一个结果,直到结束。贪心法的计算代价低,适合作为基准结果与其他方法相比较。贪心法获得的是一个局部最优解,由于实际问题的复杂性,该方法往往不能取得最好的结果。 集束搜索: 是一种启发式算法,会保存 beam size 个当前的较佳选择,然后解码时每一步根据保存的选则进行下一步扩展和排序,接着选择前 b 个进行保存,循环迭代,知道结束时选择最佳的一个作为解码的结果。 b 往往选择一个适中的范围,以 8-12 为佳。 Seq2Seq 模型引入注意力机制是为了解决什么问题?为什么选用了双向的循环神经网络模型? 编码时输入序列的全部信息压缩到了一个向量中,随着序列增长,句子越前面的词的信息丢失越严重。同时,Seq2Seq 模型的输出序列中,常常会损失部分输入序列信息,这是解码时,当前词及对应的源语言词的上下文信息和位置信息在编解码过程中丢失了。 引入注意力机制,解决上述问题 。使用双向的循环神经网络进行建模,可以获取前后文的信息。
2023-08-16 10:56:031

神经网络算法三大类

具体如下:1、多层感知机,一种前馈人工神经网络模型,其将输入的多个数据集映射到单一的输出的数据集上,也称为全连接神经网络。2、卷积神经网络核心是卷积层,是一类包含卷积计算且具有深度结构的前馈神经网络算法之一。3、残差收缩网络,残差收缩网络是卷积神经网络的改进,引入了软阈值化,更适合强噪数据。属于深度残差网络(DeepResidualNetwork,ResNet)的新型改进形式。人工神经网络(ArtificialNeuralNetwork,即ANN),是20世纪80年代以来人工智能领域兴起的研究热点。它从信息处理角度对人脑神经元网络进行抽象,建立某种简单模型,按不同的连接方式组成不同的网络。在工程与学术界也常直接简称为神经网络或类神经网络。
2023-08-16 10:56:131

从深度神经网络到物理过程

深度学习是这么一个过程,它将节点分解为输入层、输出层以及中间的隐藏层,且同一层之间的节点不能相连,只能与相邻层的节点相连。 如果我们将输入层的序号定为0而将输出层的序号定位N,那么节点也可以赋予一个序号列,记为$x_{i,n}$,其中n表示层的序号,i表示x在层中的序号。激活函数记为f,连接权重记为$omega^i_{i,n}$,表示从n层的第i个节点连接到n+1层第j个节点的连接。这样一个多层神经网络中的数据流转过程就可以记为下述方程: 这里采用Einstein约定,相同指标自动求和。 上述方程可以通过如下符号形式改写: 我们将原来层内指标i改记为x,每个节点的输出值从x改记为$phi$,层序号用t标记,连接权重改成了函数G。 这只是符号的改变,意义并没有发生丝毫变化。 但这个方程的形式却值得玩味,因为如果忽略激活函数f,那么下述方程的形式其实是量子力学中用两点关联函数(Green函数)改写的离散本征态系统的波函数演化方程: 因此,一个很直接的想法,就是如果x是连续,会怎么样? 也即,如果我们将离散的每一层节点构成的空间,连续化为一维空间,会得到什么? 答案很直接: 第二步直接取了反函数,这对于sigmoid激活函数来说不成问题,但对于ReLU激活函数来说恐怕不能这儿干,因为其在负半轴是常值函数0,反函数不存在。对于基于ReLU改造的Swish激活函数也不好用,因为它在负半轴非单调,会出现双值,所以也没有反函数。 因此,这个写法颇为形式性。 对空间(神经元节点指标)的连续化挺“顺利”的,如果我们忽略反函数不存在所带来的问题的话。 而对于时间(神经元层指标)的连续化则有点麻烦。 我们先来对上面的结果做一些形变: 然后就可以做很强硬的形式上的连续化: 这里其实就等价于引入了一个隐形的归一化条件: 或者可以写得对激活函数更加“普适”一点: 更准确地说,由于这里无论是节点输出值$phi$还是激活函数f还是两点连接函数G,都是已知的,所以上式的归一化要求事实上是对G的一次归一化调整,即: 我们可以取归一化调整之后的两点连接函数为新的两点连接函数,从而有最终的运动方程: 从形式上来说,可以看做是非相对论性哈密顿量显含时的薛定谔方程,或者,更加类似的其实是热扩散方程(因为没有关键的虚数单位i)。 我们可以将两点关联函数做一个分离。两点关联函数我们归一化到1,那么此时动力学方程为: 对最后的方程再做一次形变: 由于现在两点关联函数是归一化的,我们可以很任性很形式化地认为它是运动项与非定域的包含了波函数与波函数的动量项的非定域势(原因下面会说),而后面减掉的那一项则可以认为是一个定域的势能项与质量项的结合。 让我们对比一下非相对论性薛定谔方程: 是不是感觉形式上很像? 主要的区别就在于中间的积分那一项。 所以下面我们就来处理这一项。 将积分的部分做一下形变(同时我们这里直接取层内指标为坐标的形式,从而为矢量): 其中,第一步是将全空间分解为一系列以x为圆心的同心球,第二步中的$vec n$是同心球上的单位径向量,第三步利用了Stokes定理,第四到第六步则利用了D维空间中的散度的特性。 最后的结果,第一部分是一个径向梯度,加上一个中心势,从而就是前面所说的“运动项与非定域的包含了波函数与波函数的动量项的非定域势”。 接下来,我们取无穷小曲面,即r只在0的邻域范围内,宏观范围的两点关联函数为0,这么一种特殊的情况,其对应的深度神经网络稍后再说,那么此时就有: 假如我们取G的对称部分为$hat G$而反对称部分为$ ilde G$,则有: 第二部分,将G看做是一个Finsler度量函数,从而这里给出的就是Finsler度量下的二阶微分算符$ abla^2_G$,乘上一个Finsler度量下指标球相关的常数系数$g_G$。 而第一项则是Finsler度量的反对称部分诱导的类纤维丛联络与波函数梯度的矢量积,乘上另一个指标球相关的常数系数$A_G$。 这方面可以看以前写的老文: 《从弱Finsler几何到规范场》 。 因此,在无穷小连接函数的约束下,上面的方程就是: 形式上是不是很简洁? 而每一项的意义也都明确了: 连接系数给出了Finsler度量,其反对称部分给出了类似纤维丛联络的规范力,其全局变更给出了类时空曲率变化的引力;而激活函数要求的连接系数的归一化系数则是时空上的全局势。 因此深度神经网络的整个学习过程,就是通过输入与输出的散射矩阵,来逆推整个时空的Finsler联络和全局势。 所谓的无穷小邻域内才有效的两点关联函数,在连续化之前,其实对应的就是卷积神经网络中的最小卷积核(3*3卷积)。 假如我们继续引入卷积神经网络的另一个要求,即卷积核是同一层内相同的,那么就等于将Finsler度量限定为只是时间t的函数: 很明显,整个结构被简化了许多。 如果这个卷积网络还是所有层都共享参数的,那么等于把上述方程中的时间t也取消了,那就更简单了。 而假如我们取激活函数为f(x)=nx,那么就等于取消了全局势。最关键的是,如果两个这样的函数在原点处拼接起来,得到的也是取消全局势的激活函数,这样的激活函数中最著名的就是ReLU函数了,其在负半轴(当然$phi$的取值也不可能到负半轴……)$Gamma$恒为0,而在正半轴$Gamma$恒为1,从而等效的势能函数V恒为0。 从而,ReLU对应的可以认为就是某Finsler时空中的“自由”量子系统或者“自由”热扩散系统了,吧………… 对于不是无穷小邻域的情况,其实可以通过无穷小邻域的情况在有限区间内做积分来获得,从而实际上是一个关于一阶与二阶导的非定域算符。 同样的,残差网络引入了不同间隔的层之间的连接,可以看做是将原本对时间的一阶导替换为一阶导的(时间上)非定域算符。 至于说循环神经网络,因为引入了与层数n不同的“时间”,所以这里暂不考虑——或者可以认为是引入了虚时间??? 如果我们采用量子场论的视角(虽然很显然不是量子场论),那么深度学习的就是这么一个过程: 首先,我们通过实验知道系统的初态(输入层)与末态(输出层的目标值),而我们不知道的是系统所处的时空的度量(连接系数)与时空上的势能(激活函数)。 于是,我们通过大量的实验(通过大量输入与输出的学习素材)来分析这个时空的特性,通过选择恰当的系统能量函数(Hinton最早给出的RBM与热统中配分函数的相似性,用的就是一维Ising模型的能量函数来类比输出层的误差函数),使得整个系统的最低能态对应的时空就是我们要找的目标时空——这个也容易理解,时空上的测地线一般就是最低能态,而测地线在有相互作用的时候对应散射矩阵,散射矩阵刻画的就是末态与初态的关联,所以反过来知道末态初态就可以设法找出散射矩阵,从而可以设法得到测地线,从而可以设法获得测地线为最低能态的时空,从而得到时空的属性,这个逻辑很合理。 最终,我们利用找到的时空来预测给定初态对应的末态——利用神经网络学习到的结果来进行预测与应用。 所以,训练神经网络的过程,完全可以看做是物理学家通过实验结果来反推时空属性的过程。 很科学。 最后需要说明的是,虽然上面的推导很High,但实际上对于我们解决神经网络的学习这类问题来说,一点帮助都没有。 充其量,只能算是换了一个角度看待神经网络,吧………… 本文遵守 创作共享CC BY-NC-SA 4.0协议
2023-08-16 10:56:201

线性分类的基本原理

在机器学习领域,分类的目标是指将具有相似特征的对象聚集。而一个线性分类器则透过特征的线性组合来做出分类决定,以达到此种目的。对象的特征通常被描述为特征值,而在向量中则描述为特征向量。K最近邻(k-Nearest Neighbor,KNN)分类器存在以下不足:分类器必须记住所有训练数据并将其存储起来,以便于未来测试数据用于比较。这在存储空间上是低效的,数据集的大小很容易以GB计。对一个测试图像进行分类需要和所有训练图像做对比,算法计算资源耗费高。接下来将实现一种方法来解决图像分类问题,该方法可以自然地延伸到神经网络和卷积神经网络上。这种方法由两部分组成:1、评分函数(score function):它是原始图像数据到类别分值的映射。2、损失函数(loss function):它是用来量化预测分类标签的得分与真实标签之间一致性。该方法可转化为一个最优化问题,在最优化过程中,将通过更新评分函数的参数来最小化损失函数值。总的说就是三个过程:前向推断、损失函数、优化器
2023-08-16 10:56:481

何凯明在2015提出的卷积神经网络模型的里程碑的模型是

何凯明在2015提出的卷积神经网络模型的里程碑的模型是ResNet。卷积神经网络是由YannLeCun在1989年提出的LeNet中首先被使用,但是由于当时的计算能力不够,并没有得到广泛的应用,到了1998年YannLeCun及其合作者构建了更加完备的卷积神经网络LeNet-5并在手写数字的识别问题中取得成功,LeNet-5的成功使卷积神经网络的应用得到关注。LeNet-5沿用了LeCun(1989)的学习策略并在原有设计中加入了池化层对输入特征进行筛选。LeNet-5基本上定义了现代卷积神经网络的基本结构,其构筑中交替出现的卷积层-池化层被认为有效提取了输入图像的平移不变特征,使得对于特征的提取前进了一大步,所以我们一般的认为,YannLeCun是卷积神经网络的创始人。卷积神经网络是近年发展起来的,并引起广泛重视的一种高效识别方法,20世纪60年代,Hubel和Wiesel在研究猫脑皮层中用于局部敏感和方向选择的神经元时发现其独特的网络结构可以有效地降低反馈神经网络的复杂性,继而提出了卷积神经网络(ConvolutionalNeuralNetworks-简称CNN)。
2023-08-16 10:57:491

那些人或者那几类人适合参加深度学习的培训?

伴随着深度学习技术的发展,人工智能领域再次兴起。近年来,越来越多的小伙伴想加入深度学习的队伍,提升个人的核心竞争力。哪些人适合参加深度学习培训呢?主要有以下几类1.计算机/人工智能相关专业的本科生在就业时,人工智能其实是个很不错的发展领域,是目前国家大力支持的热门行业,尤其是近几年,国家以及各个省份出台了一系列的支持政策,比如《关于促进人工智能和实体经济深度融合的指导意见》、《新一代人工智能治理原则——发展负责任的人工智能》等,进入这个行业,未来的发展还是很可期的。在考人工智能方向的研究生或者公务员时,如果你对人工智能方向的前沿技术很是了解,很容易在复试过程中脱颖而出,并且较好的人工智能院校会有关于专业技术知识的相关复试,学习了深度学习这种人工智能热门技术也是一大助力。2.计算机/人工智能相关方向的研究生2020年企业对应届生的招聘需求规模同比下降22%,但是人工智能这样的战略新兴行业的应届生岗位需求却有所增长,面向应届生的岗位规模较去年同期普遍有1-5个百分点的提高,应届生岗位占比也高于全行业均值。岗位需求大,研究生就业竞争压力也会更小。如果想继续在人工智能领域深造,读博最重要的一项技能是读Paper写文章,这里面比较重要的一个环节就是复现论文中的一些方法,很多方法都是在基础方法上的改进或变种。深度学习领域常见的模型方法和技术框架,不仅能快速复现相关论文,还能帮助自己论文方法提供技术支撑。3.高校讲师近几年,国家很重视人工智能领域人才的培养,包括建设人工智能相关学科、促进人工智能领域本科生、研究生的培养,但是目前除小部分顶尖高校师资力量较雄厚外,更多高校老师在该领域的专业知识还是比较薄弱的,还需要进一步去提升,去接触学习人工智能国家甚至国际前沿技术还是很有必要的。4.对AI感兴趣的在职人员如果你是对人工智能领域感兴趣的IT领域从业者或是人工智能领域的初级从业者,了解当前人工智能领域最热门的技术深度学习,用于助力自己的职业进阶,将会有很大帮助。最近中公教育联合中科院自动化所专家合作推出了AI深度学习的在线课程,受到很多同学的关注和好评。课程由中科院自动化研究所专家亲自传授,结合行业发展情况,带你逐一攻破大厂级项目难题。课程期间贴心答疑,加强巩固训练,全方位保证学习效果。在为期5周的课程学习中,你将全面了解AI深度学习的相关知识,掌握人工神经网络及卷积神经网络原理、循环神经网络原理、生成式对抗网络原理和深度学习的分布式处理,并应用于企业级项目实战。同时,赠送课程中企业级项目的源码,帮你无缝对接课程重点,分分钟掌握大厂人才必备技能。
2023-08-16 10:58:101

如何通过人工神经网络实现图像识别

1. 神经元个数的设计:第二层就比第一层少一半的神经元,基本没有起到压缩维度的作用。这个问题中的图像比较简单,觉得压缩到20-50维左右比较合适;2. 既然是一个分类问题,顶层的至少还得有一个分类器吧。。。通常用softmax就行了,比较简单,求解也容易。当然别的分类器,SVM,Random Forest都可以。另外,建议图像问题最好神经网的层数多一些,这个问题至少有两个隐层效果会比较的好。
2023-08-16 10:58:282

常见卷积网络训练时间

常见卷积网络训练时间为3到6个月。卷积神经网络是一类包含卷积计算且具有深度结构的前馈神经网络,是深度学习的代表算法之一。卷积神经网络具有表征学习能力,能够按其阶层结构对输入信息进行平移不变分类,也被称为平移不变人工神经网络,随着深度学习理论的提出和数值计算设备的改进,卷积神经网络得到了快速发展,并被应用于计算机视觉、自然语言处理等领域。根据查询相关公开信息显示,卷积神经网络理论复杂,学习难度较大,训练时间通常需要三到六个月。
2023-08-16 10:59:211

《人工智能原理课程设计》课程设计

1. 内容及要求 在以下3个选择一个作为课程设计内容: 1)产生式系统实验 A) 系统设置,包括系统名称和系统谓词,给出谓词名及其含义。 B) 编辑知识库,通过输入规则或修改规则等,建立规则库。 C) 建立事实库(综合数据库),输入多条事实或结论。 D) 运行推理,包括正向推理和反向推理,给出相应的推理过程、事实区和规则区。 2)A*算法求解迷宫寻路问题 A) 画出用 A*算法求解迷宫最短路径的流程图。 B) 设置不同的地图,以及不同的初始状态和目标状态,记录 A*算法的求解结果,包括最短路径、扩展节点数、生成节点数和算法运行时间。 C) 对于相同的初始状态和目标状态,设计不同的启发式函数,比较不同启发式函数对迷宫寻路速度的提升效果,包括扩展节点数、生成节点数和算法运行时间。 3)采用卷积神经网络分类MINIST数据集 A) 从网上下载MINIST数据集,训练所编写的网络,要求记录每次迭代的损失值; B) 改变卷积神经网络卷积层和池化层数,观察分类准确率。思考网络层数的多少对分类准确率的影响; C) 改变卷积神经网络的卷积核大小,观察分类准确率。思考卷积核大小对分类准确率的影响。
2023-08-16 10:59:291

想进入大厂做深度学习方面的工作,在中公学习深度学习行吗?

为了让同学们更好的掌握深度学习技术,成为人工智能领域的高级人才,中公教育联合中科院自动化所专家,研发推出了深度学习课程。优质师资+前沿技术+服务保障,课程一经上线就受到了很多同学的关注和欢迎。有的小伙伴可能会好奇,中公教育的深度学习课程有什么优势?为什么吸引了这么多的关注和学习?主要有以下三个方面1) 直面人工智能行业标准制定者,由中科院自动化研究所专家团队全程直播教学,亲自指导授课和实践。主讲老师曾主持国家自然科学基金基金,参与多个国家级科研项目,并出版人工智能专著。2) 真实企业级项目实操,直面复杂开发环境,摆脱开源项目理想化开发,更加符合企业真实需求,六大项目循序渐进,以实操贯穿理论,避免纸上谈兵,助力跻身人工智能领域专家3) 技术紧跟市场需求,落地领域宽泛,不限于语音识别、图像识别、机器对话等前沿技术 ,涵盖行业内75%技术要点,契合各类就业需求。在为期5周的课程学习中,你将全面了解AI深度学习的相关知识,掌握人工神经网络及卷积神经网络原理、循环神经网络原理、生成式对抗网络原理和深度学习的分布式处理,并应用于企业级项目实战。同时,赠送课程中企业级项目的源码,帮你无缝对接课程重点,分分钟掌握大厂人才必备技能。
2023-08-16 10:59:361

挡道的英文

“挡道”的英文可以用“obstacle”来表达,它可以是任何妨碍进程或发展的事物,包括实体障碍物、抽象概念以及具有负面影响的环境和条件等等,以下将更详细地阐述其相关内容。首先,“obstacle”的基本概念是指阻碍、妨碍、限制进程的人、事、物等因素。在实际生活和工作中,“obstacle”的出现可能会对个人、组织、社会等方面造成不良影响,例如阻碍个人事业发展、组织项目推进、社会和谐稳定等。因此,在解决问题和促进发展的过程中,我们需要排除这些“obstacle”,找到更好地解决问题和实现目标的方法。其次,“obstacle”在各个领域都有其特定的意义和应用。在商业领域,随着市场和竞争的变化,“obstacle”出现的可能性增加,如管理层失误、策略失误、市场格局变化等,需要制定相应的计划、措施和举措,以克服“obstacle”并实现企业持续发展。在教育领域,“obstacle”可能来自学生本身、家庭环境、教学资源不足等诸多方面,需要教育工作者和政策制定者共同努力,为学生提供更好的学习环境和机会,帮助他们克服障碍,实现自我发展。最后,“obstacle”对于个人成长和职业发展也具有重要意义。在面对困难和挑战时,很容易出现动力不足、信心萎靡等负面情绪。此时,我们需要认识到“obstacle”的存在,并制定针对性的解决方案,充分发挥个人的能动性和创造力,在克服障碍的过程中获得成长和提升。总之,“obstacle”是一个普遍存在的概念,涉及各个领域,对于解决问题和推进事业发展都有着重要意义。我们需要认真对待“obstacle”,发挥自身的创造力和应变能力,全力克服困难,实现目标。
2023-08-16 10:57:101

求用单片机8051设计交通灯的论文

随着社会经济的发展,城市交通问题越来越引起人们的关注。人、车、路三者关系的协调,已成为交通管理部门需要解决的重要问题之一。城市交通控制系统是用于城市交通数据监测、交通信号灯控制与交通疏导的计算机综合管理系统,它是现代城市交通监控指挥系统中最重要的组成部分。 随着城市机动车量的不断增加,许多大城市如北京、上海、南京等出现了交通超负荷运行的情况,因此,自80年代后期,这些城市纷纷修建城市高速道路,在高速道路建设完成的初期,它们也曾有效地改善了交通状况。然而,随着交通量的快速增长和缺乏对高速道路的系统研究和控制,高速道路没有充分发挥出预期的作用。而城市高速道路在构造上的特点,也决定了城市高速道路的交通状况必然受高速道路与普通道路耦合处交通状况的制约。所以,如何采用合适的控制方法,最大限度利用好耗费巨资修建的城市高速道路,缓解主干道与匝道、城区同周边地区的交通拥堵状况,越来越成为交通运输管理和城市规划部门亟待解决的主要问题。为此,笔者进行了深入的研究,本文就城乡交通灯模拟控制系统的电路原理、设计计算和实验调试等问题来进行具体分析讨论。 实现路口交通灯系统的控制方法很多,可以用标准逻辑器件、可编程序控制器PLC、单片机等方案来实现。其中用标准逻辑器件来实现电路在很大程度上要受到逻辑器件如门电路等的影响,调试工作极为不易,而笔者对单片机运用来进行系统的设计开发也不是很熟悉,因此,最终笔者选择了用可编程的控制器PLC来实现系统功能的设计,完成本次课设的题目。 关键字:PLC 交通灯 程序 报告 设计ABSTRACTAuthor:jun hua, zhouGuide a teacher: zhi hong ,yang Along with the development of the society economy, the city transportation problem causes people"s concern more and more.The coordination of the person,car,the road threes relation, have become one of the important problems that the transportation management section demand resolve.The city transportation control system is the calculator that useds for the city transportation data monitor,the transportation signal beacon control and transportation to appease comprehensive management system, it is in the modern city transportation supervision conductor system to constitute part most importantly. Carry out the control method of the street corner transportation light system a lot of, can carry out with the standard logic spare part,programmable preface controller PLC,single slice machine etc. project.Carries out the influence that the electric circuit wants to be subjected to the logic spare part,such as door, electric circuit to a large extent etc. with the standard logic spare part among them, adjust to try a work extremely not easy, and writer to single slice the luck use is not very either to acquaint with to the design development of carry on the system, therefore, the end writer chooses to use programmable controller PLC to carry out the design of the system function, completion originally time the lesson establish of topic.Key word:The PLC transportation light procedure report design
2023-08-16 10:57:151

请问零和博弈最多只能有一个纳什均衡吗?

一次博弈最终总会形成一个结果,好比讨价还价,这就是博弈均衡。"纳什均衡"是一种最常见的、也是最重要的博弈均衡。它是美国天才数学家纳什在1950年正在攻读博士学位时提出来的,论文题为《n人博弈的均衡问题》。纳什巧妙运用数学技巧,证明了如下定理:对一任何一个n人参与的非合作博弈(零和或非零和),如果每个参与者的策略是有限的,那么一定存在至少一个纳什均衡解集。该论文只有短短一页纸,但却成了博弈论的经典文献,并使他获得了诺贝尔经济学奖。 "纳什均衡"的经典案例是"囚徒困境":两个作案嫌疑人分别关在两件牢房,警察告知,如果两人都招供,则各坐牢3年;如果两人都不招供,则放出;如果一人招供而另一人不招供,则招供的坐牢3年,不招供的坐牢10年。局外人看来,最好两人都不招供。但从每个人来看,招与不招的代价分别为{3;3}与{0;10},还是招供为好。 但从纳什均衡却得出一个悖论:单个人的最优选择却没有导致全局最佳的结果。现实中的例子很多,如价格战的结果是两败俱伤。"纳什均衡"证明了一个道理:非合作博弈的情况下困境无法解脱。纳什均衡,Nash equilibrium ,又称为非合作博弈均衡,是博弈论的一个重要术语,以约翰·纳什命名。约翰·纳什1948年作为年轻数学博士生进入普林斯顿大学。其研究成果见于题为《非合作博弈》(1950)的博士论文。该博士论文导致了《n人博弈中的均衡点》(1950)和题为《非合作博弈》(1951)两篇论文的发表。纳什在上述论文中,介绍了合作博弈与非合作博弈的区别。他对非合作博弈的最重要贡献是阐明了包含任意人数局中人和任意偏好的一种通用解概念,也就是不限于两人零和博弈。该解概念后来被称为纳什均衡。 假设有n个局中人参与博弈,给定其他人策略的条件下,每个局中人选择自己的最优策略(个人最优策略可能依赖于也可能不依赖于他人的战略),从而使自己效用最大化。所有局中人策略构成一个策略组合(Strategy Profile)。纳什均衡指的是这样一种战略组合,这种策略组合由所有参与人最优策略组成。即在给定别人策略的情况下,没有人有足够理由打破这种均衡。 纳什均衡经典案例:囚徒困境 (1950年,数学家塔克任斯坦福大学客座教授,在给一些心理学家作讲演时,讲到两个囚犯的故事。) 假设有两个小偷A和B联合犯事、私入民宅被警察抓住。警方将两人分别置于不同的两个房间内进行审讯,对每一个犯罪嫌疑人,警方给出的政策是:如果一个犯罪嫌疑人坦白了罪行,交出了赃物,于是证据确凿,两人都被判有罪。如果另一个犯罪嫌疑人也作了坦白,则两人各被判刑8年;如果另一个犯罪嫌人没有坦白而是抵赖,则以妨碍公务罪(因已有证据表明其有罪)再加刑2年,而坦白者有功被减刑8年,立即释放。如果两人都抵赖,则警方因证据不足不能判两人的偷窃罪,但可以私入民宅的罪名将两人各判入狱1年。表2.2给出了这个博弈的支付矩阵。 表2.2 囚徒困境博弈 —————————————————————————— ┃ B ┃ B ┃ ————————┃————————┃————————┃ ┃ 坦白 ┃ 抵赖 ┃ ————————┃————————┃————————┃ A 坦白 ┃ –8, –8 ┃ 0, –10 ┃ ————————┃————————┃————————┃ A 抵赖 ┃ –10, 0 ┃ –1, –1 ┃ ————————┃————————┃————————┃ 关于案例,显然最好的策略是双方都抵赖,结果是大家都只被判1年。但是由于两人处于隔离的情况,首先应该是从心理学的角度来看,当事双方都会怀疑对方会出卖自己以求自保、其次才是亚当·斯密的理论,假设每个人都是“理性的经济人”,都会从利己的目的出发进行选择。这两个人都会有这样一个盘算过程:假如他坦白,我抵赖,得坐10年监狱,坦白最多才8年;他要是抵赖,我就可以被释放,而他会坐10年牢。综合以上几种情况考虑,不管他坦白与否,对我而言都是坦白了划算。两个人都会动这样的脑筋,最终,两个人都选择了坦白,结果都被判8年刑期。 基于经济学中Rational agent的前提假设,两个囚犯符合自己利益的选择是坦白招供,原本对双方都有利的策略不招供从而均被释放就不会出现。这样两人都选择坦白的策略以及因此被判8年的结局,纳什均衡”首先对亚当·斯密的“看不见的手”的原理提出挑战:按照斯密的理论,在市场经济中,每一个人都从利己的目的出发,而最终全社会达到利他的效果。但是我们可以从“纳什均衡”中引出“看不见的手”原理的一个悖论:从利己目的出发,结果损人不利己,既不利己也不利他。
2023-08-16 10:57:081