精华内容
下载资源
问答
  • 什么是图神经网络

    万次阅读 2020-08-05 10:25:32
    01 什么是图神经网络?1. 和属性要了解图神经网络,首先要了解是由节点和边组成的,如下所示。一般中的节点表示实体对象(比如一个用户、一件商品、一辆车、一张银行卡等都可以作为节点),边代表事件...

    2019年可以说是图神经网络元年。

    01 什么是图神经网络?

    1. 图和属性图

    要了解图神经网络,首先要了解图。图是由节点和边组成的,如下图所示。一般图中的节点表示实体对象(比如一个用户、一件商品、一辆车、一张银行卡等都可以作为节点),边代表事件或者实体之间的特殊关系(比如用户和商品之间的购买关系)。

    一文带你全面了解图神经网络

    在数学中,我们一般使用邻接矩阵来表示图,如上图右边所示。邻接矩阵中的值为 1 表示节点之间有边,即有连接关系。所以邻接矩阵其实很好的将图的这种结构信息表达出来了。

    还要介绍一个概念是属性图。就是说,图中的节点和边都带有属性(这是一种信息)。如下图所示:

    一文带你全面了解图神经网络

    这个图里的用户节点有姓名、性别,话题节点具体的话题类别,公司节点有名称,注册时间等属性信息。边也可以有属性信息,比如开始工作时间是边“工作于”的一种属性。所以,属性图就是节点和边带有自己的属性信息,同时每个节点又有自己的拓扑结构信息。这是工业界最常用的一种图表示方法,因为我们需要更丰富的信息。

    前几年神经网络很火,相信大家对神经网络都有一定的了解。图神经网络就是将图数据和神经网络进行结合,在图数据上面进行端对端的计算。

    2. 图神经网络的计算机制

    单层的神经网络计算过程:

    一文带你全面了解图神经网络

    相比较于神经网络最基本的网络结构全连接层(MLP),特征矩阵乘以权重矩阵,图神经网络多了一个邻接矩阵。计算形式很简单,三个矩阵相乘再加上一个非线性变换。

    一文带你全面了解图神经网络

    一文带你全面了解图神经网络

    图神经网络的计算过程总结起来就是聚合邻居。如下面的动图所示,每个节点都在接收邻居的信息。为了更加全面的刻画每个节点,除了节点自身的属性信息,还需要更加全面的结构信息。所以要聚合邻居,邻居的邻居.....

    一文带你全面了解图神经网络

    图神经网络是直接在图上进行计算,整个计算的过程,沿着图的结构进行,这样处理的好处是能够很好的保留图的结构信息。而能够对结构信息进行学习,正是图神经网络的能力所在,下面我们就来看看图神经网络为什么强大?

    02 图神经网络的强大能力

    现实生活中的大量的业务数据都可以用图来表示。万事万物皆有联系,节点+关系这样一种表示足以包罗万象。

    比如人类的社交网络,个体作为节点,人与人之间的各种关系作为边;电商业务中,用户和商品也可以构建成图网络;而物联网、电网、生物分子这些是天然的节点+关系结构;甚至,可以将实物物体抽象成 3D 点云,以图数据的形式来表示。图数据可以说是一种最契合业务的数据表达形式。

    一文带你全面了解图神经网络

    图神经网络的强大能力我认为可以归纳为三点:

    • 对图数据进行端对端学习
    • 擅长推理
    • 可解释性强

    1. 端对端学习

    近几年,深度学习带来了人脸识别、语音助手以及机器翻译的成功应用。这三类场景的背后分别代表了三类数据:图像、语音和文本。

    深度学习在这三类场景中取得突破的关键是它背后的端对端学习机制。端对端代表着高效,能够有效减少中间环节信息的不对称,一旦在终端发现问题,整个系统每一个环节都可以进行联动调节。

    既然端对端学习在图像、语音以及文本数据上的学习是如此有效,那么将该学习机制推广到具有更广泛业务场景的图数据就是自然而然的想法了。

    这里我们引用 DeepMind 论文中的一段话,来说明其重要性:

    我们认为,如果 AI 要实现人类一样的能力,必须将组合泛化(combinatorial generalization)作为重中之重,而结构化的表示和计算是实现这一目标的关键。正如生物学里先天因素和后天因素是共同发挥作用的,我们认为“人工构造”(hand-engineering)和“端到端”学习也不是只能从中选择其一,我们主张结合两者的优点,从它们的互补优势中受益。

    2. 擅长推理

    业界认为大规模图神经网络是认知智能计算强有力的推理方法。图神经网络将深度神经网络从处理传统非结构化数据(如图像、语音和文本序列)推广到更高层次的结构化数据(如图结构)。

    大规模的图数据可以表达丰富和蕴含逻辑关系的人类常识和专家规则,图节点定义了可理解的符号化知识,不规则图拓扑结构表达了图节点之间的依赖、从属、逻辑规则等推理关系。

    以保险和金融风险评估为例,一个完备的 AI 系统不仅需要基于个人的履历、行为习惯、健康程度等进行分析处理,还需要通过其亲友、同事、同学之间的来往数据和相互评价进一步进行信用评估和推断。基于图结构的学习系统能够利用用户之间、用户与产品之间的交互,做出非常准确的因果和关联推理。

    ——达摩院2020十大科技趋势白皮书

    3. 可解释性强

    图具有很强的语义可视化能力,这种优势被所有的 GNN 模型所共享。比如在异常交易账户识别的场景中,GNN 在将某个账户判断为异常账户之后,可以将该账户的局部子图可视化出来,如下图所示:

    一文带你全面了解图神经网络

    我们可以直观地从子图结构中发现一些异常模式,比如同一设备上有多个账户登录,或者同一账户在多个设备上有行为。还可以从特征的维度,比如该账户与其他有关联的账户行为模式非常相似(包括活跃时间集中,或者呈现周期性等),从而对模型的判断进行解释。

    论文 “GNNExplainer: Generating Explanations for Graph Neural Networks” 提供了一种自动从子图中提取重要子图结构和节点特征的方法,可以为 GNN 的判断结果提供重要依据。

    03 图神经网络的应用

    图数据无处不在,图神经网络的应用场景自然非常多样。笔者在这里选择一部分应用场景为大家做简要的介绍,更多的还是期待我们共同发现和探索。

    一文带你全面了解图神经网络

    1. 计算机视觉

    在计算机视觉的应用有根据提供的语义生成图像,如下图所示(引用)。输入是一张语义图,GNN通过对“man behind boy on patio”和“man right of man throwing firsbee”两个语义的理解,生成了输出的图像。

    一文带你全面了解图神经网络

    ▲图片来源:https://arxiv.org/pdf/1804.01622.pdf

    再说说视觉推理人类对视觉信息的处理过程往往参杂着推理。比如下图的场景中,左上角第4个窗户虽然有部分遮挡,我们仍可以通过其他三扇窗户推断出它是窗户;再看右下角的校车,虽然车身不完整,但我们可以通过这个车身颜色推断出其是校车。

    一文带你全面了解图神经网络

    ▲图片来源:https://arxiv.org/pdf/1803.11189.pdf

    人类可以从空间或者语义的维度进行推理,而图可以很好的刻画空间和语义信息,让计算机可以学着像人类一样,利用这些信息进行推理。

    一文带你全面了解图神经网络

    ▲图片来源:https://arxiv.org/abs/1803.11189

    当然还有动作识别视觉问答等应用,这里我们就不一一列举了,感兴趣的同学推荐大家阅读文章:

    图像生成

    https://arxiv.org/pdf/1804.01622.pdf

    视觉推理

    https://arxiv.org/pdf/1803.11189.pdf

    2. 自然语言处理

    GNNs 在自然语言处理中的应用也很多,包括多跳阅读、实体识别、关系抽取以及文本分类等。多跳阅读是指给机器有很多语料,让机器进行多链条推理的开放式阅读理解,然后回答一个比较复杂的问题。在2019年,自然语言处理相关的顶会论文使用 GNN 作为推理模块已经是标配了。

    多跳阅读:

    https://arxiv.org/pdf/1905.06933.pdf

    关系抽取和文本分类应用也十分多,这里推荐大家阅读:

    https://mp.weixin.qq.com/s/i2pgW4_NLCB1Bs3qRWRYoA

    3. 生物医疗

    我们在高中都接触过生物化学,知道化合物是由原子和化学键构成的,它们天然就是一种图数据的形式,所以图神经网络在生物医疗领域应用特别广泛。包括新药物的发现、化合物筛选、蛋白质相互作用点检测、以及疾病预测。

    据笔者所知,目前国外包括耶鲁、哈佛,国内像北大清华都有很多实验室研究图神经网络在医学方面的应用,而且我相信这会是图神经网络最有价值的应用方向之一。

    除了上述的方向,还有像在自动驾驶和 VR 领域会使用的 3D 点云;与近两年同样很火的知识图谱相结合;智慧城市中的交通流量预测;芯片设计中的电路特性预测;甚至还可以利用图神经网络编写代码。

    目前在真正在工业场景中付诸应用,并取得了显著成效的场景主要有两个,一是推荐,二是风控。

    4. 工业应用之推荐

    推荐是机器学习在互联网中的重要应用。互联网业务中,推荐的场景特别说,比如内容推荐、电商推荐、广告推荐等等。这里,我们介绍三种图神经网络赋能推荐的方法。

    (1)可解释性推荐

    可解释性推荐,就是不仅要预测推荐的商品,还要给出推荐的理由。推荐中有一个概念叫元路径。在电影推荐的场景里,如下图所示。我们用 U 表示用户,用 M 表示电影,那么 UUM 是一条元路径。它表示一位用户关注了另一位用户,那么我们可以将用户看过的电影,推荐给关注他的人。

    当然,还有比如 UMUM 表示与你看过相同电影的人还在看什么电影这条路径;UMTM 表示与你看过同一类型电影的路径.....元路径有很多,不同元路径对于不同的业务语义。在这个场景中,图神经网络模型有两个任务,一个是推荐影片给用户,二是给出哪条元路径的权重更高。而这正式 GNN 可解释性的体现。

    一文带你全面了解图神经网络

    ▲论文链接:http://www.shichuan.org/doc/47.pdf

    (2)基于社交网络的推荐

    利用用户之间的关注关系,我们也可以实现推荐。用户的购买行为首先会受到其在线社交圈中朋友的影响。如果用户 A 的朋友是体育迷,经常发布关于体育赛事、体育明星等信息,用户 A 很可能也会去了解相关体育主题的资讯。

    其次,社交网络对用户兴趣的影响并非是固定或恒定的,而是根据用户处境(Context)动态变化的。举例来说,用户在听音乐时更会受到平时爱好音乐的朋友影响,在购买电子产品时更会受到电子发烧友的朋友影响。目前有许多的电商平台,包括像京东、蘑菇街、小红书等都在尝试做基于社交的推荐。

    一文带你全面了解图神经网络

    ▲论文链接:http://www.cs.toronto.edu/~lcharlin/papers/fp4571-songA.pdf

    (3)基于知识图谱的推荐

    要推荐的商品、内容或者产品,依据既有的属性或者业务经验,可以得到他们之间很多的关联信息,这些关联信息即是我们通常说的知识图谱。知识图谱可以非常自然地融合进已有的用户-商品网络构成一张更大、且包含更加丰富信息的图。

    一文带你全面了解图神经网络

    ▲论文链接:https://arxiv.org/pdf/1803.03467.pdf

    其实不管是社交网络推荐,还是知识图谱,都是拿额外的信息补充到图网络中。既能有聚合关系网络中复杂的结构信息,又能囊括丰富的属性信息,这就是图神经网络强大的地方。

    国外图片社交媒体 Pinterest 发表了利用图神经网络做推荐的模型 PinSage 。大家应该也都比较熟悉了,这里就不再赘述了。

    5. 工业应用之风控

    我们公司利用图来做风控还是有一些时间了。我们的业务场景中每天都会有很多网络请求,一个请求过来,需要实时的判断这是真实用户还是机器流量。一个简单的模型,使用的数据包括设备ID、IP、用户以及他们的行为数据,构图如下:

    一文带你全面了解图神经网络

    我们全网一天有将近十亿次网络请求,全部日志构成一张图,包括 1.6 亿节点、12亿边。相较于之前的深度学习方法,AUC 指标提升1.2倍,上线测试该模型的稳定性指标最优,提升 1.5 倍。

    去年 12 月我们做了一个项目,总共是 2800 万的网站业务(包括 IP、UA、域名、访问时间等等)以及第三方的威胁情报库数据。该场景下的任务是预测网络请求是否为恶意请求。比如说黑产可能通过 POST 端注入一些恶意代码,操作数据库。

    我们的解决方案很简单,只使用了 4 个字段。某个请求在某个IP哪个域名注入了某种脚本,以及 POST 特征码。前三个字段(请求事件ID,IP,域名)构成了一个图,是模型的输入。最后一个 POST 特征码是网络需要预测的或者说在预测时候的监督信号。

    我们模型结果的输出首先是攻击语言的识别,2800 万的流量里面有 70% 的是异常流量,分别来自于六个不同的攻击语言,并且识别出相应的作案手段。然后也发现第三方威胁 IP 库,实际上是有大量的误封的。攻击目标的识别,输出了对应被攻击的域名列表 2000 条。仅仅用了4个字段,就完成了异常流量、攻击目的以及攻击语言的识别。

    一文带你全面了解图神经网络

    在很多互联网营销场景里存在着大量薅羊毛的恶意账户。识别恶意账户就是对图中的用户节点进行分类。薅羊毛用户有一个非常本质的特点,就是他们的行为模式非常相似。由于他们的资源不是无限的,会共用一些设备账号,包括手机号等。所以他们的数据有非常多的关联。

    另一个特点是在短时间内活跃,薅羊毛用户往往是在做活动的时间段行为非常活跃,而在其他的业务场景里面,活跃度很低,具有短时高频的特点。所以,要识别这样的恶意账户,我们主要用了两份信息,第一个是资源的关联信息,另一个就是时间上的行为信息, 他们和正常用户在时间上的行为模式是不太一样的。

    GNN 可以端对端的去学习这两类信息。这个场景阿里也发了一篇论文去讲,恶意账户的识别,最后相比较其他的方法,比如像图分区去挖掘这种团伙,包括像 GBDT 这种浅层的机器学习模型,效果是比较突出的。

    论文链接:

    http://shichuan.org/hin/topic/Others/2018.CIKM%202018%20Heterogeneous%20Graph%20Neural%20Networks%20for%20Malicious%20Account%20Detection.pdf

    图数据包罗万象,图神经网络的应用场景将会非常丰富。从 2020 年 AAAI 和 ICLR 的情况来看,图神经网络在学术界已经掀起了一阵新的潮流。当然,工业界也会迎来更多的投入和关注,毕竟图数据是最贴合业务的数据。

    这里要向大家推荐一本关于图神经网络的书《深入浅出图神经网络》。这是我以及我的公司极验图数据团队结合自己在图神经网络领域的研究和实践经验撰写的一本入门书籍,从原理、算法、实现、应用 4 个维度为大家详细全面的讲解了图神经网络。希望能够对大家学习和利用图神经网络技术有所帮助。

    展开全文
  • 卷积神经网络

    万次阅读 多人点赞 2014-11-29 16:20:41
    自今年七月份以来,一直在实验室负责卷积神经网络(Convolutional Neural Network,CNN),期间配置和使用过theano和cuda-convnet、cuda-convnet2。为了增进CNN的理解和使用,特写此博文,以其与人交流,互有增益。...

    卷积神经网络

    转载请注明:http://blog.csdn.net/stdcoutzyx/article/details/41596663

    自今年七月份以来,一直在实验室负责卷积神经网络(Convolutional Neural Network,CNN),期间配置和使用过theano和cuda-convnet、cuda-convnet2。为了增进CNN的理解和使用,特写此博文,以其与人交流,互有增益。正文之前,先说几点自己对于CNN的感触。先明确一点就是,Deep Learning是全部深度学习算法的总称,CNN是深度学习算法在图像处理领域的一个应用。

    • 第一点,在学习Deep learning和CNN之前,总以为它们是很了不得的知识,总以为它们能解决很多问题,学习了之后,才知道它们不过与其他机器学习算法如svm等相似,仍然可以把它当做一个分类器,仍然可以像使用一个黑盒子那样使用它。

    • 第二点,Deep Learning强大的地方就是可以利用网络中间某一层的输出当做是数据的另一种表达,从而可以将其认为是经过网络学习到的特征。基于该特征,可以进行进一步的相似度比较等。

    • 第三点,Deep Learning算法能够有效的关键其实是大规模的数据,这一点原因在于每个DL都有众多的参数,少量数据无法将参数训练充分。

    接下来话不多说,直接奔入主题开始CNN之旅。

    1. 神经网络

    首先介绍神经网络,这一步的详细可以参考资源1。简要介绍下。神经网络的每个单元如下:

     

    其对应的公式如下:

     

    其中,该单元也可以被称作是Logistic回归模型。当将多个单元组合起来并具有分层结构时,就形成了神经网络模型。下图展示了一个具有一个隐含层的神经网络。

     

    其对应的公式如下:

     

    比较类似的,可以拓展到有2,3,4,5,…个隐含层。

    神经网络的训练方法也同Logistic类似,不过由于其多层性,还需要利用链式求导法则对隐含层的节点进行求导,即梯度下降+链式求导法则,专业名称为反向传播。关于训练算法,本文暂不涉及。

    2 卷积神经网络

    在图像处理中,往往把图像表示为像素的向量,比如一个1000×1000的图像,可以表示为一个1000000的向量。在上一节中提到的神经网络中,如果隐含层数目与输入层一样,即也是1000000时,那么输入层到隐含层的参数数据为1000000×1000000=10^12,这样就太多了,基本没法训练。所以图像处理要想练成神经网络大法,必先减少参数加快速度。就跟辟邪剑谱似的,普通人练得很挫,一旦自宫后内力变强剑法变快,就变的很牛了。

    2.1 局部感知

    卷积神经网络有两种神器可以降低参数数目,第一种神器叫做局部感知野。一般认为人对外界的认知是从局部到全局的,而图像的空间联系也是局部的像素联系较为紧密,而距离较远的像素相关性则较弱。因而,每个神经元其实没有必要对全局图像进行感知,只需要对局部进行感知,然后在更高层将局部的信息综合起来就得到了全局的信息。网络部分连通的思想,也是受启发于生物学里面的视觉系统结构。视觉皮层的神经元就是局部接受信息的(即这些神经元只响应某些特定区域的刺激)。如下图所示:左图为全连接,右图为局部连接。

     

    在上右图中,假如每个神经元只和10×10个像素值相连,那么权值数据为1000000×100个参数,减少为原来的万分之一。而那10×10个像素值对应的10×10个参数,其实就相当于卷积操作。

    2.2 参数共享

    但其实这样的话参数仍然过多,那么就启动第二级神器,即权值共享。在上面的局部连接中,每个神经元都对应100个参数,一共1000000个神经元,如果这1000000个神经元的100个参数都是相等的,那么参数数目就变为100了。

    怎么理解权值共享呢?我们可以这100个参数(也就是卷积操作)看成是提取特征的方式,该方式与位置无关。这其中隐含的原理则是:图像的一部分的统计特性与其他部分是一样的。这也意味着我们在这一部分学习的特征也能用在另一部分上,所以对于这个图像上的所有位置,我们都能使用同样的学习特征。

    更直观一些,当从一个大尺寸图像中随机选取一小块,比如说 8x8 作为样本,并且从这个小块样本中学习到了一些特征,这时我们可以把从这个 8x8 样本中学习到的特征作为探测器,应用到这个图像的任意地方中去。特别是,我们可以用从 8x8 样本中所学习到的特征跟原本的大尺寸图像作卷积,从而对这个大尺寸图像上的任一位置获得一个不同特征的激活值。

    如下图所示,展示了一个3×3的卷积核在5×5的图像上做卷积的过程。每个卷积都是一种特征提取方式,就像一个筛子,将图像中符合条件(激活值越大越符合条件)的部分筛选出来。

     

    2.3 多卷积核

    上面所述只有100个参数时,表明只有1个10*10的卷积核,显然,特征提取是不充分的,我们可以添加多个卷积核,比如32个卷积核,可以学习32种特征。在有多个卷积核时,如下图所示:

     

    上图右,不同颜色表明不同的卷积核。每个卷积核都会将图像生成为另一幅图像。比如两个卷积核就可以将生成两幅图像,这两幅图像可以看做是一张图像的不同的通道。如下图所示,下图有个小错误,即将w1改为w0,w2改为w1即可。下文中仍以w1和w2称呼它们。

    下图展示了在四个通道上的卷积操作,有两个卷积核,生成两个通道。其中需要注意的是,四个通道上每个通道对应一个卷积核,先将w2忽略,只看w1,那么在w1的某位置(i,j)处的值,是由四个通道上(i,j)处的卷积结果相加然后再取激活函数值得到的。

     

     

     

    所以,在上图由4个通道卷积得到2个通道的过程中,参数的数目为4×2×2×2个,其中4表示4个通道,第一个2表示生成2个通道,最后的2×2表示卷积核大小。

    2.4 Down-pooling

    在通过卷积获得了特征 (features) 之后,下一步我们希望利用这些特征去做分类。理论上讲,人们可以用所有提取得到的特征去训练分类器,例如 softmax 分类器,但这样做面临计算量的挑战。例如:对于一个 96X96 像素的图像,假设我们已经学习得到了400个定义在8X8输入上的特征,每一个特征和图像卷积都会得到一个 (96 − 8 + 1) × (96 − 8 + 1) = 7921 维的卷积特征,由于有 400 个特征,所以每个样例 (example) 都会得到一个 7921 × 400 = 3,168,400 维的卷积特征向量。学习一个拥有超过 3 百万特征输入的分类器十分不便,并且容易出现过拟合 (over-fitting)。

    为了解决这个问题,首先回忆一下,我们之所以决定使用卷积后的特征是因为图像具有一种“静态性”的属性,这也就意味着在一个图像区域有用的特征极有可能在另一个区域同样适用。因此,为了描述大的图像,一个很自然的想法就是对不同位置的特征进行聚合统计,例如,人们可以计算图像一个区域上的某个特定特征的平均值 (或最大值)。这些概要统计特征不仅具有低得多的维度 (相比使用所有提取得到的特征),同时还会改善结果(不容易过拟合)。这种聚合的操作就叫做池化 (pooling),有时也称为平均池化或者最大池化 (取决于计算池化的方法)。

     

    至此,卷积神经网络的基本结构和原理已经阐述完毕。

    2.5 多层卷积

    在实际应用中,往往使用多层卷积,然后再使用全连接层进行训练,多层卷积的目的是一层卷积学到的特征往往是局部的,层数越高,学到的特征就越全局化。

    3 ImageNet-2010网络结构

    ImageNet LSVRC是一个图片分类的比赛,其训练集包括127W+张图片,验证集有5W张图片,测试集有15W张图片。本文截取2010年Alex Krizhevsky的CNN结构进行说明,该结构在2010年取得冠军,top-5错误率为15.3%。值得一提的是,在今年的ImageNet LSVRC比赛中,取得冠军的GoogNet已经达到了top-5错误率6.67%。可见,深度学习的提升空间还很巨大。

    下图即为Alex的CNN结构图。需要注意的是,该模型采用了2-GPU并行结构,即第1、2、4、5卷积层都是将模型参数分为2部分进行训练的。在这里,更进一步,并行结构分为数据并行与模型并行。数据并行是指在不同的GPU上,模型结构相同,但将训练数据进行切分,分别训练得到不同的模型,然后再将模型进行融合。而模型并行则是,将若干层的模型参数进行切分,不同的GPU上使用相同的数据进行训练,得到的结果直接连接作为下一层的输入。

     

    上图模型的基本参数为:
    
    • 输入:224×224大小的图片,3通道
    • 第一层卷积:11×11大小的卷积核96个,每个GPU上48个。
    • 第一层max-pooling:2×2的核。
    • 第二层卷积:5×5卷积核256个,每个GPU上128个。
    • 第二层max-pooling:2×2的核。
    • 第三层卷积:与上一层是全连接,3*3的卷积核384个。分到两个GPU上个192个。
    • 第四层卷积:3×3的卷积核384个,两个GPU各192个。该层与上一层连接没有经过pooling层。
    • 第五层卷积:3×3的卷积核256个,两个GPU上个128个。
    • 第五层max-pooling:2×2的核。
    • 第一层全连接:4096维,将第五层max-pooling的输出连接成为一个一维向量,作为该层的输入。
    • 第二层全连接:4096维
    • Softmax层:输出为1000,输出的每一维都是图片属于该类别的概率。

    4 DeepID网络结构

    DeepID网络结构是香港中文大学的Sun Yi开发出来用来学习人脸特征的卷积神经网络。每张输入的人脸被表示为160维的向量,学习到的向量经过其他模型进行分类,在人脸验证试验上得到了97.45%的正确率,更进一步的,原作者改进了CNN,又得到了99.15%的正确率。

    如下图所示,该结构与ImageNet的具体参数类似,所以只解释一下不同的部分吧。

     

    上图中的结构,在最后只有一层全连接层,然后就是softmax层了。论文中就是以该全连接层作为图像的表示。在全连接层,以第四层卷积和第三层max-pooling的输出作为全连接层的输入,这样可以学习到局部的和全局的特征。

    5 参考资源

    • [1] http://deeplearning.stanford.edu/wiki/index.php/UFLDL%E6%95%99%E7%A8%8B 栀子花对Stanford深度学习研究团队的深度学习教程的翻译
    • [2] http://blog.csdn.net/zouxy09/article/details/14222605 csdn博主zouxy09深度学习教程系列
    • [3] http://deeplearning.net/tutorial/ theano实现deep learning
    • [4] Krizhevsky A, Sutskever I, Hinton G E. Imagenet classification with deep convolutional neural networks[C]//Advances in neural information processing systems. 2012: 1097-1105.
    • [5] Sun Y, Wang X, Tang X. Deep learning face representation from predicting 10,000 classes[C]//Computer Vision and Pattern Recognition (CVPR), 2014 IEEE Conference on. IEEE, 2014: 1891-1898.

    更多内容欢迎关注微信公众后【雨石记】。

     

    展开全文
  • 卷积神经网络特征是如何学习的?

    千次阅读 多人点赞 2019-06-11 08:30:55
    引言 卷积神经网络,这玩意儿乍一听像是生物和数学再带点计算机技术混合起来的奇怪东西。奇怪归奇怪,不得不说,卷积...这一年,Alex Krizhevsky带着卷积神经网络参加了ImageNet竞赛(其重要程度相当于奥运会...

    https://www.toutiao.com/a6700385442048508420/

     

    引言

    卷积神经网络,这玩意儿乍一听像是生物和数学再带点计算机技术混合起来的奇怪东西。奇怪归奇怪,不得不说,卷积神经网络是计算机视觉领域最有影响力的创造之一。

    2012年是卷积神经网络崛起之年。这一年,Alex Krizhevsky带着卷积神经网络参加了ImageNet竞赛(其重要程度相当于奥运会)并一鸣惊人,将识别错误率从26%降到了15%,。从那开始,很多公司开始使用深度学习作为他们服务的核心。比如,Facebook在他们的自动标记算法中使用了它,Google在照片搜索中使用了,Amazon在商品推荐中使用,Printerst应用于为他们的家庭饲养服务提供个性化定制,而Instagram应用于他们的搜索引擎。

    卷积神经网络的特征是如何学习的?

     

    然而,神经网络最开始也是最多的应用领域是图像处理。那我们就挑这块来聊聊,怎样使用卷积神经网络(下面简称CNN)来进行图像分类。

    问题描述

    图像分类是指,向机器输入一张图片,然后机器告诉我们这张图片的类别(一只猫,一条狗等等),或者如果它不确定的话,它会告诉我们属于某个类别的可能性(很可能是条狗但是我不太确定)。对我们人类来说,这件事情简单的不能再简单了,从出生起,我们就可以很快地识别周围的物体是什么。当我们看到一个场景,我们总能快速地识别出所有物体,甚至是下意识的,没有经过有意的思考。但这种能力,机器并不具有。所以我们更加要好好珍惜自己的大脑呀!_(:зゝ∠)_

    卷积神经网络的特征是如何学习的?

     

    输入与输出

    电脑和人看到的图片并不相同。当我们输入一张图片时,电脑得到的只是一个数组,记录着像素的信息。数组的大小由图像的清晰度和大小决定。假设我们有一张jpg格式的480*480大小的图片,那么表示它的数组便是480*480*3大小的。数组中所有数字都描述了在那个位置处的像素信息,大小在[0,255]之间。

    这些数字对我们来说毫无意义,但这是电脑们可以得到的唯一的信息(也足够了)。抽象而简单的说,我们需要一个接受数组为输入,输出一个数组表示属于各个类别概率的模型。

    我们想让电脑干啥?

    既然问题我们已经搞明白了,现在我们得想想办法解决它。我们想让电脑做的事情是找出不同图片之间的差别,并可以识别狗狗(举个例子)的特征。

    我们人类可以通过一些与众不同的特征来识别图片,比如狗狗的爪子和狗有四条腿。同样地,电脑也可以通过识别更低层次的特征(曲线,直线)来进行图像识别。电脑用卷积层识别这些特征,并通过更多层卷积层结合在一起,就可以像人类一样识别出爪子和腿之类的高层次特征,从而完成任务。这正是CNN所做的事情的大概脉络。下面,我们进行更具体的讨论。

    与生物学的关联

    在正式开始之前,我们先来聊聊CNN的背景故事。当你第一次听说卷积神经网络的时候,你可能就会联想到一些与神经学或者生物学有关的东西,不得不说,卷积神经网络还真的与他们有某种关系。

    CNN的灵感的确来自大脑中的视觉皮层。视觉皮层某些区域中的神经元只对特定视野区域敏感。1962年,在一个Hubel与Wiesel进行的试验(视频)中,这一想法被证实并且拓展了。他们发现,一些独立的神经元只有在特定方向的边界在视野中出现时才会兴奋。比如,一些神经元在水平边出现时兴奋,而另一些只有垂直边出现时才会。并且所有这种类型的神经元都在一个柱状组织中,并且被认为有能力产生视觉。

    在一个系统中,一些特定的组件发挥特定的作用(视觉皮层中的神经元寻找各自特定的特征)。这一想法应用于很多机器中,并且也是CNN背后的基本原理。(译者注:作者没有说清楚。类比到CNN中,应是不同的卷积核寻找图像中不同的特征)

    神经网络结构

    回到主题。

    更详细的说,CNN的工作流程是这样的:你把一张图片传递给模型,经过一些卷积层,非线性化(激活函数),池化,以及全连层,最后得到结果。就像我们之前所说的那样,输出可以是单独的一个类型,也可以是一组属于不同类型的概率。现在,最不容易的部分来了:理解各个层的作用。

    第一层(卷积层) - 数学描述

    首先,你要搞清楚的是,什么样的数据输入了卷积层。就像我们之前提到的那样,输入是一个32 × 32 × 3(打个比方)的记录像素值的数组。现在,让我来解释卷积层是什么。解释卷积层最好的方法,是想象一个手电筒照在图片的左上角。让我们假设手电筒的光可以招到一个5 × 5的区域。现在,让我们想象这个手电筒照过了图片的所有区域。在机器学习术语中,这样一个手电筒被称为卷积核(或者说过滤器,神经元)(kernel, filter, neuron)。而它照到的区域被称为感知域(receptive field)。卷积核同样也是一个数组(其中的数被称为权重或者参数)。很重要的一点就是卷积核的深度和输入图像的深度是一样的(这保证可它能正常工作),所以这里卷积核的大小是5 × 5 × 3。

    现在,让我们拿卷积核的初始位置作为例子,它应该在图像的左上角。当卷积核扫描它的感知域(也就是这张图左上角5 × 5 × 3的区域)的时候,它会将自己保存的权重与图像中的像素值相乘(或者说,矩阵元素各自相乘,注意与矩阵乘法区分),所得的积会相加在一起(在这个位置,卷积核会得到5 × 5 × 3 = 75个积)。现在你得到了一个数字。然而,这个数字只表示了卷积核在图像左上角的情况。现在,我们重复这一过程,让卷积核扫描完整张图片,(下一步应该往右移动一格,再下一步就再往右一格,以此类推),每一个不同的位置都产生了一个数字。当扫描完整张图片以后,你会得到一组新的28 × 28 × 1的数。(译者注:(32 - 5 + 1) × (32 - 5 + 1) × 1)。这组数,我们称为激活图或者特征图(activation map or feature map)

    卷积神经网络的特征是如何学习的?

     

    如果增加卷积核的数目,比如,我们现在有两个卷积核,那么我们就会得到一个28 × 28 × 2的数组。通过使用更多的卷积核,我们可以更好的保留数据的空间尺寸。

    在数学层面上说,这就是卷积层所做的事情。

    第一层(卷积层) - 更高角度

    让我们来谈谈,从更高角度来说,卷积在做什么。每一个卷积核都可以被看做特征识别器。我所说的特征,是指直线、简单的颜色、曲线之类的东西。这些都是所有图片共有的特点。拿一个7 × 7 × 3的卷积核作为例子,它的作用是识别一种曲线。(在这一章节,简单起见,我们忽略卷积核的深度,只考虑第一层的情况)。作为一个曲线识别器,这个卷积核的结构中,曲线区域内的数字更大。(记住,卷积核是一个数组)

    卷积神经网络的特征是如何学习的?

     

    现在我们来直观的看看这个。举个例子,假设我们要把这张图片分类。让我们把我们手头的这个卷积核放在图片的左上角。

    卷积神经网络的特征是如何学习的?

     

    记住,我们要做的事情是把卷积核中的权重和输入图片中的像素值相乘。

    卷积神经网络的特征是如何学习的?

     

    (译者注:图中最下方应是由于很多都是0所以把0略过不写了。)

    基本上,如果输入图像中有与卷积核代表的形状很相似的图形,那么所有乘积的和会很大。现在我们来看看,如果我们移动了卷积核呢?

    卷积神经网络的特征是如何学习的?

     

    可以看到,得到的值小多了!这是因为感知域中没有与卷积核表示的相一致的形状。还记得吗,卷积层的输出是一张激活图。所以,在单卷积核卷积的简单情况下,假设卷积核是一个曲线识别器,那么所得的激活图会显示出哪些地方最有可能有曲线。在这个例子中,我们所得激活图的左上角的值为6600。这样大的数字表明很有可能这片区域中有一些曲线,从而导致了卷积核的激活(译者注:也就是产生了很大的数值。)而激活图中右上角的数值是0,因为那里没有曲线来让卷积核激活(简单来说就是输入图像的那片区域没有曲线)。

    但请记住,这只是一个卷积核的情况,只有一个找出向右弯曲的曲线的卷积核。我们可以添加其他卷积核,比如识别向左弯曲的曲线的。卷积核越多,激活图的深度就越深,我们得到的关于输入图像的信息就越多。

    在文中提到的卷积核的主要目的是说明,是经过简化的。在下图中你会看到真正的经过训练后的神经网络中第一层卷积层中卷积核可视化后的样子。不管怎样,道理还是一样的。第一层的卷积核扫描整张网络,并在识别到相应特征时激活。

    卷积神经网络的特征是如何学习的?

     

    走向网络的深处

    在传统的CNN结构中,还会有其他层穿插在卷积层之间。我强烈建议有兴趣的人去阅览并理解他们。但总的来说,他们提供了非线性化,保留了数据的维度,有助于提升网络的稳定度并且抑制过拟合。一个经典的CNN结构是这样的:

    卷积神经网络的特征是如何学习的?

     

    网络的最后一层很重要,我们稍后会讲到它。

    现在,然我们回头看看我们已经学到了什么。

    我们讲到了第一层卷积层的卷积核的目的是识别特征,他们识别像曲线和边这样的低层次特征。但可以想象,如果想预测一个图片的类别,必须让网络有能力识别高层次的特征,例如手、爪子或者耳朵。让我们想想网络第一层的输出是什么。假设我们有5个5 × 5 × 3的卷积核,输入图像是32 × 32 × 3的,那么我们会得到一个28 × 28 × 5的数组。来到第二层卷积层,第一层的输出便成了第二层的输入。这有些难以可视化。第一层的输入是原始图片,可第二层的输入只是第一层产生的激活图,激活图的每一层都表示了低层次特征的出现位置。如果用一些卷积核处理它,得到的会是表示高层次特征出现的激活图。这些特征的类型可能是半圆(曲线和边的组合)或者矩形(四条边的组合)。随着卷积层的增多,到最后,你可能会得到可以识别手写字迹、粉色物体等等的卷积核。

    如果,你想知道更多关于可视化卷积核的信息,可以看这篇研究报告,以及这个视频。

    还有一件事情很有趣,当网络越来越深,卷积核会有越来越大的相对于输入图像的感知域。这意味着他们有能力考虑来自输入图像的更大范围的信息(或者说,他们对一片更大的像素区域负责)。

    全连层

    到目前为止,我们已经识别出了那些高层次的特这个吧。网络最后的画龙点睛之笔是全连层。

    简单地说,这一层接受输入(来自卷积层,池化层或者激活函数都可以),并输出一个N维向量,其中,N是所有有可能的类别的总数。例如,如果你想写一个识别数字的程序,那么N就是10,因为总共有10个数字。N维向量中的每一个数字都代表了属于某个类别的概率。打个比方,如果你得到了[0 0.1 0.1 0.75 0 0 0 0 0 0.05],这代表着这张图片是1的概率是10%,是2的概率是10%,是3的概率是75%,是9的概率5%(小贴士:你还有其他表示输出的方法,但现在我只拿softmax(译者注:一种常用于分类问题的激活函数)来展示)。全连层的工作方式是根据上一层的输出(也就是之前提到的可以用来表示特征的激活图)来决定这张图片有可能属于哪个类别。例如,如果程序需要预测哪些图片是狗,那么全连层在接收到一个包含类似于一个爪子和四条腿的激活图时输出一个很大的值。同样的,如果要预测鸟,那么全连层会对含有翅膀和喙的激活图更感兴趣。

    基本上,全连层寻找那些最符合特定类别的特征,并且具有相应的权重,来使你可以得到正确的概率。

    卷积神经网络的特征是如何学习的?

     

    训练(也即:如何让网络工作)

    现在让我们来说说我之前有意没有提到的神经网络的可能是最重要的一个方面。刚刚在你阅读的时候,可能会有一大堆问题想问。第一层卷积层的卷积核们是怎么知道自己该识别边还是曲线的?全连层怎么知道该找哪一种激活图?每一层中的参数是怎么确定的?机器确定参数(或者说权重)的方法叫做反向传播算法。

    在讲反向传播之前,我们得回头看看一个神经网络需要什么才能工作。我们出生的时候并不知道一条狗或者一只鸟长什么样。同样的,在CNN开始之前,权重都是随机生成的。卷积核并不知道要找边还是曲线。更深的卷积层也不知道要找爪子还是喙。

    等我们慢慢长大了,我们的老师和父母给我们看不同的图片,并且告诉我们那是什么(或者说,他们的类别)。这种输入一幅图像以及这幅图像所属的类别的想法,是CNN训练的基本思路。在细细讲反向传播之前,我们先假设我们有一个包含上千张不同种类的动物以及他们所属类别的训练集。

    反向传播可以被分成四个不同的部分。前向传播、损失函数、反向传播和权重更新。

    在前向传播的阶段,我们输入一张训练图片,并让它通过整个神经网络。对于第一个输入图像,由于所有权重都是随机生成的,网络的输出很有可能是类似于[.1 .1 .1 .1 .1 .1 .1 .1 .1 .1]的东西,一般来说并不对任一类别有偏好。具有当前权重的网络并没有能力找出低层次的特征并且总结出可能的类别。

    下一步,是损失函数部分。注意,我们现在使用的是训练数据。这些数据又有图片又有类别。打个比方,第一张输入的图片是数字“3”。那么它的标签应该是[0 0 0 1 0 0 0 0 0 0]。一个损失函数可以有很多定义的方法,但比较常见的是MSE(均方误差)。被定义为(实际−预测)22(实际−预测)22。

    卷积神经网络的特征是如何学习的?

     

    记变量L为损失函数的值。正如你想象的那样,在第一组训练图片输入的时候,损失函数的值可能非常非常高。来直观地看看这个问题。我们想到达CNN的预测与数据标签完全一样的点(这意味着我们的网络预测的很对)。为了到达那里,我们想要最小化误差。如果把这个看成一个微积分问题,那我们只要找到哪些权重与网络的误差关系最大。

    卷积神经网络的特征是如何学习的?

     

    这就相当于数学中的δLδWδLδW(译者注:对L关于W求导),其中,W是某个层的权重。现在,我们要对网络进行反向传播。这决定了哪些权重与误差的关系最大,并且决定了怎样调整他们来让误差减小。计算完这些导数以后,我们就来到了最后一步:更新权重。在这里,我们以与梯度相反的方向调整层中的权重。

    卷积神经网络的特征是如何学习的?

     

    学习率是一个有程序员决定的参数。一个很高的学习率意味着权重调整的幅度会很大,这可能会让模型更快的拥有一组优秀的权重。然而,一个太高的学习率可能会让调整的步伐过大,而不能精确地到达最佳点。

    卷积神经网络的特征是如何学习的?

     

    前向传播、损失函数、反向传播和更新权重,这四个过程是一次迭代。程序会对每一组训练图片重复这一过程(一组图片通常称为一个batch)。当对每一张图片都训练完之后,很有可能你的网络就已经训练好了,权重已经被调整的很好。

    测试

    最后,为了验证CNN是否工作的很好,我们还有另一组特殊的数据。我们把这组数据中的图片输入到网络中,得到输出并和标签比较,这样就能看出网络的表现如何了。

    免责声明

    虽然这篇文章是学习CNN的一个不错的开始,但这并不是一个全面的描述。有关非线性化、池化层和网络的超参数(比如卷积核的大小,步长,边缘处理)并没有在这篇文章中讨论。还有网络结构、数据归一化、梯度消失、Dropout(译者注:防止网络过拟合的一个方法,找不到合适的译名)、初始化技巧、非凸优化、偏移、损失函数的选择、数据增强、标准化方法,以及有关运算的考虑、反向传播的优化等等我们都还没有讨论。

    展开全文
  • 卷积神经网络特征的应用

    千人学习 2018-06-01 17:02:26
    卷积神经网络特征、模型视频入门教程,该课程内容包含神经网络的起源、发展、计算和训练,卷积神经网络基础,生成对抗网络、卷积神经网络的实战应用、GAN实例、人工智能案例分享及行业趋势分析。通过本次课程的学习...
  • 图神经网络,这到底是个什么

    千次阅读 2021-03-01 14:27:54
    1、什么是图神经网络 图神经网络(Graph Neu做ral Networks, GNNs)是一种基于结构的深度学习方法,从其定义中可以看出图神经网络主要由两部分组成,即“”和“神经网络”。这里的“”是图论中的数据结构,...
    摘要:图神经网络是一种基于图结构的深度学习方法。

    1、什么是图神经网络

    图神经网络(Graph Neu做ral Networks, GNNs)是一种基于图结构的深度学习方法,从其定义中可以看出图神经网络主要由两部分组成,即“图”和“神经网络”。这里的“图”是图论中的图数据结构,“神经网络”是我们熟悉的深度学习NN结构,如MLP,CNN,RNN等。要了解图神经网络我们需要先回顾一下“图”和“神经网络”的基本概念。

    1.1图的定义

    1.2典型神经网络

    典型的神经网络结构有两条主线,一条主线是卷积神经网络,简称CNN,主要用于图像类数据的处理。另一条主线是循环神经网络,简称RNN,主要用于时序类数据的处理。由于神经网络结构的介绍不是本篇的重点,因此在这里不做重点介绍。只展示如下两图典型的CNN和RNN的结构:

    下图展示了当前的主流神经网络结构以及适用的场景:

    1.3图神经网络

    根据上述对图和神经网络的回顾,我们可以看出,图神经网络就是借助神经网络的“能力”如深度特征抽取等来处理图结构的数据,因此对于图神经网络,其直观的结构应该如下图:

     

    其中图结构的数据有许多,如社交网络图、交通路线图、人物关系图、分子结构图、计算结网络拓扑图等等。这些数据都可以作为图神经网络的输入。之后经过特定的神经网络结构,如MLP,CNN,RNN等的基于图结构的运算,可以完成对于图表示的分类,图的节点或边的预测等功能。

    2、为什么需要图神经网络

    近年来,深度学习已经彻底改变了许多机器学习任务,从图像分类和视频处理,到语音识别和自然语言理解,这些任务中的数据通常表示在欧几里得空间中。然而,在越来越多的应用程序中,数据是从非欧几里得域生成的,并表示为具有复杂关系和对象之间相互依赖的图形。图数据的复杂性给现有的机器学习算法带来了巨大的挑战。下图左为图像(欧几里得空间),右为图(非欧几里得空间)。

    传统的神经网络结构如CNN、RNN等都是接受欧几里得空间的数据作为输入,他们无法处理非欧几里得空间的数据结构,比如图和流行结构。因此对于此类数据,图神经网络就更加适合处理。近年来图神经网络的研究热度也不断提升,如下图所示:

    3、图神经网络典型的应用场景

    本章节基于图神经网络近年来的一些研究进展,展示一下图神经网络当前典型的应用场景以及一些典型的任务。

    将图结构和节点内容信息作为模型的输入,GNNs的输出可以通过以下机制之一专注于不同的图分析任务:

    • Node-level输出用于点回归和分类任务。
    • Edge-level输出与边分类和链路预测任务相关。
    • Graph-level输出和图分类任务相关,比如图表示。

    下面以典型论文为例介绍几个GNNs的典型任务:

    3.1图分类

    我们知道很多有机物或者化合物的分子结构都是可以用图结构来表示的,比如下图的4-nitroindole,该GNN的作用是训练一个图神经网络,接收一个分子结构来判断该分子结构会不会导致发生突变。在训练的过程中如果有现存的已标注的可导致发生突变的分子结构,我们就可以训练该图神经网络,然后用他来预测一个新的未知的分子会不会导致突变。

    3.2图生成

    我们知道在图像和语言的领域里分别有embedding和generation技术,比如常见的图像和语言生成技术,比如动态静态的预训练和词嵌入技术。相应的在图领域,我们也有图的嵌入表示比如graph embedding representation和图的generation技术。比如下图的graphvae,变分图自编码器就是一个图生成模型,其主要是为图中节点找寻合适的 Embedding 向量,并通过 Embedding 向量实现图重构。其中获取到的节点 Embedding 可以用于支撑下游任务。比如在新的分子结构生成发现中可以使用该技术来加快分子发现速度。

    3.3社交网络分析

    在社交网络分析中,实体之间的关系往往会是非常重要的特征,图结构就能很好的表示这种关系特征。如下图的社交网络图中,每个实体的关系可以用边来描述,这样在进行实体分类或者关系分类时,利用图数据结构,完成特定任务的标注,就可以训练出一个图神经网络来完成此类任务。

    3.4网络拓扑分析

    网络的拓扑天然就是图结构的表示,计算机网络中的路由技术就是以图轮为基础的算路技术。同时网络中每两个节点之间也会有时延,丢包,抖动等网络KPI信息。这些点对之间的KPI往往是动态变化的,这就影响到了实时路由决策和优化的问题。比如当前链路的时延或者丢包过大,路由算法就需要选择新的路径进行数据包传递。图神经网络在这个问题中就可以接收底层的网络拓扑、网络配置信息和流量矩阵信息来实时预测每一个点对,每一条流的实验丢包抖动,这样就可以更好的配合路由和优化算法,使能网络的自动驾驶。

    4、图神经网络典型训练框架

    4.1Semi-supervised learning for node-level classification:

    给定一个网络,其中部分节点被标记,其他节点未标记,ConvGNNs可以学习一个鲁棒模型,有效地识别未标记节点的类标签。为此,可以通过叠加一对图卷积层,然后是用于多类分类的softmax层来构建端到端框架。见图(a)

    4.2Supervised learning for graph-level classification:

    图级分类的目的是预测整个图的类标签。该任务的端到端学习可以结合图卷积层、图池层和/或readout层来实现。图卷积层负责精确的高级节点表示,图池层则扮演下采样的角色,每次都将每个图粗化成一个子结构。readout层将每个图的节点表示折叠成一个图表示。通过在图表示中应用一个多层感知器和一个softmax层,我们可以建立一个端到端图分类框架。见图(b)

    4.3Unsupervised learning for graph embedding:

    当图中没有可用的类标签时,我们可以学习在端到端框架中以完全无监督的方式嵌入图。这些算法以两种方式利用边缘级信息。一种简单的方法是采用自编码器框架,编码器使用图卷积层将图嵌入到潜在表示中,在潜在表示上使用解码器重构图结构。另一种常用的方法是利用负采样方法(negative sampling),即对图中有链接的部分节点对进行负采样,而对图中有链接的节点对进行正采样。然后应用逻辑回归层对的正负配对进行区分。见图(c)

    参考文献

    [1]. https://mp.weixin.qq.com/s/PSrgm7frsXIobSrlcoCWxw

    [2]. http://speech.ee.ntu.edu.tw/~tlkagk/courses/ML2020/GNN.pdf

    [3]. https://persagen.com/files/misc/scarselli2009graph.pdf

    [4]. https://arxiv.org/pdf/1802.03480.pdf

    [5]. https://arxiv.org/abs/1901.00596

    [6]. https://arxiv.org/abs/1910.01508

     

    本文分享自华为云社区《2021年必火的图神经网络到底是什么?》,原文作者:就挺突然。

     

    点击关注,第一时间了解华为云新鲜技术~

    展开全文
  • 自组织特征映射神经网络(SOM)

    千次阅读 2020-04-01 18:37:40
    自组织特征映射神经网络简介: 自组织特征映射神经网络(SOM)也是无教师学习网络,主要用于对输入向量进行区域分类。其结构与基本竞争型神经网络很相似。与自组织竞争网络的不同之处:SOM网络不但识别属于区域邻近...
  • Tensorflow+VGG16实现卷积神经网络特征图可视化

    万次阅读 多人点赞 2019-01-03 08:48:03
    使用Tensorflow和vgg16预训练好的模型实现了卷积神经网络特征图(feature map)的可视化,可以更明了的知道这个黑箱中到底发生了什么。 卷积神经网络特征图可视化 代码如下: # -*- coding:utf-8 -*- import ...
  • 借助Keras和Opencv实现的神经网络中间层特征图的可视化功能,方便我们研究CNN这个黑盒子里到发生了什么。   自定义网络特征可视化   代码: # coding: utf-8 from keras.models import Model import cv2 ...
  • 本文综合整理常用的神经网络,包括生物神经网络、人工神经网络、卷积神经网络、循环神经网络、生成对抗网络;参考了许多高校的课程、论文、博客和视频等。文章的结构是先进行概念了解,然后结合图片、结构、一步...
  • pytorch 提取卷积神经网络特征图可视化

    万次阅读 多人点赞 2019-08-10 17:33:14
      先看效果(第一张是原,后面的都是相应的特征图,这里使用的网络是resnet50,需要注意的是下面图片显示的特征图是经过放大后的,原是比较小的,因为太小不利于我们观察): 2、完整代码 import os ...
  • 卷积神经网络什么

    万次阅读 多人点赞 2018-09-15 16:12:38
    卷积神经网络可以直接将图片作为网络的输入,自动提取特征,并且对图片的变形(如平移、比例缩放、倾斜)等具有高度不变形。 神经网络(NN) 的基本组成包括输入层、隐藏层、输出层。卷积神经网络的特点在于隐藏层...
  • 卷积神经网络提取特征原理

    千次阅读 2021-03-01 18:31:46
    众所周知,卷积神经网络是深度学习中非常有代表性的学习领域,而深度学习又是机器学习的主要分支,因此卷积神经网络就是用来让机器学习的过程途径,而机器要学的就是图像中的特征,“卷积”就是用来提取特征的。...
  • 一、什么是深度神经网络 上一篇文章我们讲到了不含激活函数的线性神经网络,这种网络一般来说是浅层神经网络,知道了在线性结构中,由于线性模型自身的局限性,线性深层神经网络变得没有意义,因为多个线性隐含层...
  • 神经网络学习小记录52——Pytorch 搭建孪生神经网络比较图片相似性学习前言什么是孪生神经网络孪生神经网络的实现思路一、预测部分1、主干网络介绍2、比较网络二、训练部分1、数据集的格式2、Loss计算训练自己的孪生...
  • 一、自组织竞争学习神经网络模型(无监督学习) (一)竞争神经网络   在竞争神经网络中,一层是输入层,一层输出层,输出层又称为竞争层或者核心层。在一次输入中,权值是随机给定的,在竞争层每个神经元获胜...
  • 卷积神经网络如何提取特征

    千次阅读 2020-06-30 09:28:38
    本文主要记录卷积神经网络提取特征的原理学习,以及一些可视化方法
  • 【案例介绍】利用竞争神经网络和自组织特征隐射网络建立根据离子浓度判别水质分类模型 山泉水中含有多种矿物质,但其是否可以直接引用还需要对水质进行鉴别。一般根据水质中的多种离子浓度进行水质的判断,现根据6...
  • 神经网络——最易懂最清晰的一篇文章

    万次阅读 多人点赞 2018-08-24 15:43:20
    神经网络是一门重要的机器学习技术。它是目前最为火热的研究方向--深度学习的基础。学习神经网络不仅可以让你掌握一门强大的机器学习方法,同时也可以更好地帮助你理解深度学习技术。  本文以一种简单的,循序的...
  • 本文主要是实现了一个简单的卷积神经网络,并对卷积过程中的提取特征进行了可视化. 卷积神经网络最早是为了解决图像识别的问题,现在也用在时间序列数据和文本数据处理当中,卷积神经网络对于数据特征的提取不用额外...
  • 训练som自组织特征映射神经网络的源代码,这是一种很常用很实用的神经网络,不下会后悔的~
  • 可视化探索卷积神经网络提取特征

    千次阅读 2018-12-06 08:16:24
    卷积神经网络的发展主要是为了解决人类视觉问题,不过现在其它方向也都会使用。发展历程主要从Lenet5->Alexnet->VGG->GooLenet->ResNet等。 传统神经网络 传统BP神经网络层与层之间都是...
  • 卷积神经网络特征图大小的计算

    万次阅读 2019-03-04 13:31:35
    特征图大小计算式卷积神经网络中一个很基础的问题,也是一个必须理解的问题。卷到最后我们要知道提取的特征的维度的大小,所以我们必须知道,卷积后特征图的大小。这里我们讲解一下卷积的不同方式以及特征图大小计算...
  • 神经网络学习小记录51——Keras 搭建孪生神经网络比较图片相似性学习前言什么是孪生神经网络孪生神经网络的实现思路一、预测部分1、主干网络介绍 学习前言 最近学习了一下如何比较两张图片的相似性,用到了孪生神经...
  • 现有的研究表明,人工神经网络可以用来提取出比人工设计的特征提取算法具有更好识别性能的特征。一种可能的方法是训练一个具有小瓶颈层的网络,然后使用该层中单元的激活为系统其余部分生成特征向量。 深度学习是...
  • 用MATLAB实现卷积神经网络,并对图像进行特征提取 文件列表: CNN CNN\cnnapplygrads.m CNN\cnnbp.m CNN\cnnff.m CNN\cnnnumgradcheck.m CNN\cnnsetup.m CNN\cnntest.m CNN\cnntrain.m CNN\expand.m CNN\...
  • 神经网络-特征组合

    2019-03-29 15:36:45
    神经网络的一层一层连接并不是特征的组合,只是将特征的比重分的更加细化,去拟合任意的函数。 特征组合是特征相乘而不是相加,DNN则是相加,Cross则是相乘,则是表示特征的组合。所以组合以后想去更优化组合特征的...
  • 自组织特征映射神经网络(Self-Organizing Feature Map,也称Kohomen映射),简称为SOM网络,主要用于解决模式识别类的问题。SOM网络属于无监督学习算法,与Kmeans算法相似。所不同的是,SOM网络不需要预先提供聚类...
  • 神经网络激活函数的作用是什么

    万次阅读 多人点赞 2017-12-03 21:22:29
    这周本来想写一篇个人笔记,关于神经网络中反向传播算法识别手写字符的实现。但是,在整理自己的思路的时候,发现本人把之前看的许多神经网络的东西都给忘了,内心很是着急啊!在看到激活函数的时候,突然不知道激活...
  • 神经网络特征可视化

    千次阅读 2015-07-09 22:04:31
    1. visualizing higher-layer...当训练完一个深层神经网络之后, 固定所有参数。 然后对于某一个神经元的activation进行梯度上升优化来寻找能使它的值最大化的input。 不断的用gradient ascent来更新一个初始化为random

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 191,293
精华内容 76,517
关键字:

是什么特征图神经网络