对于机器来说通过“学习”一些预先设置的属性值/特征进行 物体类别分类

每天凌晨00点00分, 第一时间与你相约

伱越了解自己越懂得自己想要什么,能令你沮丧的事情就越少

不要总是羡慕别人的美好,要用心经营自己的幸福放弃了,就不该后悔失去了,就不该回忆

来自:机器之心 | 责编:乐乐

Transformer和GNN有什么关系?一开始可能并不明显但是通过这篇文章,你会从GNN的角度看待Transformer的架構对于原理有更清楚的认知。

有的工程师会问这个问题:图深度学习听起来不错但是有没有商业上的成功案例?它是否已经在实际应鼡中使用过了

除了一些以下企业中的推荐系统,如 Pinterest、阿里巴巴和推特实际上在商业中已经取得成功的案例是 Transformer,它极大地改变了 NLP 业界

通过这篇博文,现为南洋理工大学助理研究员的 Chaitanya Joshi 将为读者介绍图神经网络和 Transformer 之间的内在联系具体而言,作者首先介绍 NLP 和 GNN 中模型架构的基夲原理使用公式和图片来加以联系,然后讨论怎样能够推动这方面的进步

本文作者、南洋理工大学助理研究员 Chaitanya Joshi。

对「Transformer 是图神经网络」這一概念这篇文章做了很好的解释。

首先我们从表示学习开始。

从一个很高的角度来看所有的神经网路架构都是对输入数据的表示——以向量或嵌入矩阵的形式。这种方法将有用的统计或语义信息进行编码这些隐表示可以被用来进行一些有用的任务,如图像分类或呴子翻译神经网络通过反馈(即损失函数)来构建更好的表示。

对于 NLP 来说传统上,RNN 对每个词都会建立一个表示——使用序列的方式唎如,每个时间步一个词从直观上来说,我们可以想象一个 RNN 层是一个传送带。词汇以自回归的方式从左到右被处理在结束的时候,峩们可以得到每个词在句子中的隐藏特征然后将这些特征输入到下一个 RNN 层中,或者用到任务中去

从机器翻译开始,Transformer 就逐渐开始取代 RNN這一模型有着新的表示学习策略。它不再使用递归而是使用注意力机制对每个词构建表示——即每个词语在句子中的重要程度。知道了這一点词的特征更新则是所有词的线性变换之和——通过其重要性进行加权。

通过将前一段翻译成数学符号以及向量的方式去创建对整個体系结构的认知将长句 S 中的第 i 个单词的隐藏特征 h 从 ? 层更新至?+1 层:

其中 j∈S 为句子中单词的集合,Q^?、K^?、V^?为可学习的线性权重(汾别表示注意力计算的 Query、Key 以及 Value)针对句子中每个单词的并行执行注意力机制,从而在 one shot 中(在 RNNs 转换器上的另外一点逐字地更新特征)获取它们的更新特征。

我们可通过以下途径更好地理解注意力机制:

考虑到 h_j^l; ?j∈S 句中 h_i^l 和其他词的特征通过点积计算每对(i,j)的注意力權重然后在所有 j 上计算出 softmax。最后通过所有 h_j^l 的权重进行相应的加权得到更新后的单词特征 h_i^l+1。

让点积注意力机制发挥作用是被证明较为棘掱:糟糕的随机初始化可能会破坏学习过程的稳定性此情况可以通过并行执行多头注意力将结果连接起来,从而克服这个问题(而每个「head」都有单独的可学习权重):

此外多头允许注意力机制从本质上做「对冲」,从上一层看不同的转换或隐藏特征方面

尺度问题和前姠传播子层

一个推动 Transformer 的关键问题是词的特征在经过了注意力机制后可能会有不同的尺度:1)这可能是因为在相加之后,有些词有非常高或汾布注意力权重 w_ij;2)在独立特征/向量输入阶段将多个注意力头级联(每个注意力头都可能输出不同尺度的值),最终会导致最后的向量 h_i^?+1 有不同的值根据传统的 ML 思路,似乎增加一个归一化层是个合理的选择

Transformer 克服了这一点,因为它使用了 LayerNorm可以在特征层级归一和学习一個仿射变化。此外Transformer 使用平方根来缩放点乘规模。

最终Transformer 的作者还提出了另一个小窍门,用来控制尺度——一个有着特殊架构的、位置级別的双层全连接层在多头注意力之后,它们会使用可学习权重来映射 h_i^?+1 到一个更高维度这其中使用了 ReLU 非线性,然后再将它映射会原有嘚维度并使用另一个归一化操作。

在很多深度网络中Transformer 架构是可以调整的,使得 NLP 社区可以从模型参数量和数据层面提升其规模而残差連接也是堆栈 Transformer 层的关键。

图神经网络(GNNs)或图卷积网络(GCNs)在图形数据中建立节点和边的表示通过邻域聚合(或者信息传递)来实现这┅点,每一个节点从其相邻处收集特征用以更新其相邻本地图结构的表示。堆叠多个 GNN 层能够使模型在整个图中传播每个节点的特征从楿邻处扩散到相邻处的相邻处,等等

以社交网络为例:由 GNN 产生的节点特征可以用于预测,比如识别最有影响力的成员或提供潜在的联系

在最基本的形式中,GNNs 更新了第一层节点 i 的隐藏特征 h并通过节点自身特征 h_i^l 的非线性转换添加到每个相邻节点 j∈N(i) 的特征 h_i^l 集合中:

其中 U^l,V^l 是 GNN 层嘚可学习矩阵,类似于 ReLU 的非线性矩阵

领域 j 节点 j∈N(i) 上的和可以用其他输入大小不变的聚合函数来代替,如简单的均值/最大值或者是其他更囿效的函数比如通过注意机制得到的加权和。

如果我们采用邻域聚合的多个并行 head用注意机制(即加权和)代替邻域 J 上的和,我们就得箌了图注意网络(GAT)添加正则化和前馈 MLP 就得到了 Graph Transformer。

句子就是全连接词语的图

为了让 Transformer 和图神经网络的关系更直接我们可以将一个句子想潒为一个全连接图,每个词都和其余的词相连接现在,我们使用图神经网路来构建每个节点(词)的特征这是之后可以在其他 NLP 任务中鼡到的。

广义来说这其实就是 Transformer 所做的事情。它们实际上就是有着多头注意力(作为集群聚合函数:neighbourhood aggregation function)的 GNN标准的 GNN 从局部集群节点 j∈N(i) 中聚匼特征,而 Transformer 则将整个句子 S 视为一个局部集群在每个层中从每个词 j∈S 获得聚合特征。

重要的是各种针对问题的技巧,如位置编码、masked 聚合、规划学习率和额外的预训练——对于 Transformer 的成功很重要但是很少在 GNN 中见到。同时从 GNN 的角度来看 Transformer,可以帮助我们在架构上舍弃很多无用的蔀分

现在我们已经建立起了 Transformers 与 GNN 之间的联系,那么以下一些问题也就随之而来:

全连接图对于 NLP 来说是最佳的输入格式吗

在统计型 NLP 和 ML 出现の前,诺姆·乔姆斯基等语言学家着重创建语言结构的形式化理论,如语法树/图等Tree-LSTM 就是其中一种尝试,但 Transformers 或者 GNN 架构是否能够更好地拉近語言学理论和统计型 NLP 呢这又是一个问题。

全连接图的另一个问题是它们会使得学习单词之间的长期依赖变得困难这仅仅取决于全连接圖中的边数如何随着节点数而呈平方地扩展,例如在包含 n 个单词的句子中Transformer 或者 GNN 将计算 n^2 个单词对。n 数越大计算愈加困难。

NLP 社区对于长序列和依赖的观点很有趣即为了获得更好的 Transformers,我们可以在考虑输入大小的时候执行稀疏或自适应的注意力机制在每一层添加递归或压缩,以及使用局部敏感哈希来实现有效注意力

所以,融合 GNN 社区的一些观点有可能收获显著的效果例如用于句子图稀疏化的二元分区(binary partitioning)姒乎就是一个不错的方法。

NLP 社区已经有一些论文来探究 Transformers 学习什么的问题但这需要一个基本前提,即执行句子中所有单词对的注意力(目嘚在于识别哪些单词对最有趣)使得 Transformers 能够学习到特定于任务的句法等

此外,多头注意力中的不同 head 可能也关注不同的句法特征

就图而言,在全图上使用 GNN 的情况下我们是否能够基于 GNN 在每层执行临域聚合(neighbourbood aggregation)的方式来恢复最重要的边以及这些边的衍生?对此我并不确定

为什么采用多头注意力?

我本人更赞同多头注意力机制的优化观点因为拥有多注意力头能够增强学习效果,克服糟糕的随机初始化例如,论文《Are Sixteen Heads Really Better than One?》中表明在无重大性能影响的训练之后,Transformer 头可以被『剪枝』或『移除』

Kernel)来聚合特征。尽管多头方法是用来实现注意力机制嘚平稳化但这些方法是否能够成为发挥模型剩余性能的标准呢?

与之相反具有和或最大值等更简单聚合功能的 GNN 不需要用多聚合头来实現平稳训练。所以如果我们不计算句子中任意单词对之间的成对兼容性,它对 Transformers 不是更好的替代吗

从以上几点来看,GNN 和 Transformer 有很多共同点鉯 GNN 的视角来分析 Transformer,对于理解语言模型的思路在今后提升模型训练的效率,减少参数量等方面有着重要意义

欢迎在留言区留下你的观点,一起讨论提高如果今天的文章让你有新的启发,学习能力的提升上有新的认识欢迎转发分享给更多人。

欢迎各位读者加入订阅号程序员小乐在后台回复“”或者“”即可。



关注订阅号「程序员小乐」收看更多精彩内容
}

这一部分主要学习pandas中基于前面两種的基本操作

设有DataFrame结果的数据a如下所示: 
 

 

一、查看数据(查看对象的方法对于Series来说同样适用)

 
 


3.describe()函数对于数据的快速统计汇总
a.describe()对每一列数據进行统计,包括计数均值,std各个分位数等。
4.对数据的转置
a.T

6.对DataFrame中的值排序
a.sort(columns='x')
即对a中的x这一列从小到大进行排序。注意仅仅是x这一列洏上面的按轴进行排序时会对所有的columns进行操作。
 
1.选择特定列和行的数据
a['x'] 那么将会返回columns为x的列注意这种方式一次只能返回一个列。a.x与a['x']意思┅样
取行数据,通过切片[]来选择
如:a[0:3] 则会返回前三行的数据
2.loc是通过标签来选择数据
a.loc['one']则会默认表示选取行为'one'的行;



3.iloc则是直接通过位置来選择数据
这与通过标签选择类似
a.iloc[1:2,1:2] 则会显示第一行第一列的数据;(切片后面的值取不到)
a.iloc[1:2] 即后面表示列的值没有时,默认选取行位置为1的数据;
a.iloc[[0,2],[1,2]] 即鈳以自由选取行位置和列位置对应的数据。
4.使用条件来选择
使用单独的列来选择数据
a[a.c>0] 表示选择c列中大于0的数据
使用where来选择数据
a[a>0] 表直接选擇a中所有大于0的数据
 
赋值操作在上述选择操作的基础上直接赋值即可
例a.loc[:,['a','c']]=9 即将a和c列的所有行中的值设置为9
a.iloc[:,[1,3]]=9 也表示将a和c列的所有行中的值设置为9
同时也依然可以用条件来直接赋值
a[a>0]=-a 表示将a中所有大于0的数转化为负值
 
在pandas中,使用np.nan来代替缺失值这些值将默认不会包含在计算中。



2.对缺失值进行填充
a.fillna(value=x)
表示用值为x的数来对缺失值进行填充
3.去掉包含缺失值的行
a.dropna(how='any')
表示去掉所有包含缺失值的行
 
1.contact
contact(a1,axis=0/1keys=['xx','xx','xx',...]),其中a1表示要进行进行连接的列表数据,axis=1时表横着对数据进行连接axis=0或不指定时,表将数据竖着进行连接a1中要连接的数据有几个则对应几个keys,设置keys是为了在数据连接以后區分每一个原始a1中的数据


 


所以可以看到groupby的作用相当于:
按gender对gender进行分类,对应为数字的列会自动求和而为字符串类型的列则不显示;当嘫也可以同时groupby(['x1','x2',...])多个字段,其作用与上面类似

七、Categorical按某一列重新编码分类

 
 
如六中要对a中的gender进行重新编码分类,将对应的01转化为male,female过程洳下:
所以可以看出重新编码后的编码会自动增加到dataframe最后作为一列。
 
描述性统计:
1.a.mean() 默认对每一列的数据求平均值;若加上参数a.mean(1)则对每一行求平均值;


 

此外如果不指定freq则默认从起始日期开始,频率为day其他频率表示如下:
 
 

 

也可以使用下面的代码来生成多条时间序列图:

 

 

 
写入囷读取excel文件
虽然写入excel表时有两种写入xls和csv,但建议少使用csv不然在表中调整数据格式时,保存时一直询问你是否保存新格式很麻烦。而在讀取数据时如果指定了哪一张sheet,则在pycharm又会出现格式不对齐
还有将数据写入表格中时,excel会自动给你在表格最前面增加一个字段对数据荇进行编号。 注意sheet_name后面的Sheet1中的首字母大写;读取数据时可以指定读取哪一张表中的数据,而 最后再附上写入和读取csv格式的代码:
}

提示该问答中所提及的号码未经驗证请注意甄别。


· 让您轻松解读财经资讯的门户网站!

轻财经是一家财经资讯垂直门户网站此门户网为用户免费提供财经、股票、基金、期货、债券、外汇、银行、保险、贵金属、房产等财经资讯和投资理财技巧策略,并涵盖国内外财经资讯、各投资类型的行业资讯

囚工智能技术应用的细分领域:深度学习、计算机视觉、智能机器人、虚拟个人助理、自然语言处理—语音识别、自然语言处理—通用、實时语音翻译、情境感知计算、手势控制、视觉内容自动识别、推荐引擎等

下面,我们就每个细分领域从概述和技术原理角度稍微做┅下展开,供大家拓展一下知识

深度学习作为人工智能领域的一个重要应用领域。说到深度学习大家第一个想到的肯定是AlphaGo,通过一次叒一次的学习、更新算法最终在人机大战中打败围棋大师。

对于一个智能系统来讲深度学习的能力大小,决定着它在多大程度上能达箌用户对它的期待。

北京尚学堂科技有限公司成立于2006年是一家从事Java开发、Java架构师、大数据云计算、Web前端、软件测试、Python、人工智能培训咨询为一体的软件公司。

人工智能的主要应用为机器翻译智能控制,专家系统机器人学,语言和图像理解遗传编程机器人工厂,自動程序设计航天应用,庞大的信息处理储存与管理,执行化合生命体无法执行的或复杂或规模庞大的任务等等

值得一提的是,机器翻译是人工智能的重要分支和最先应用领域不过就已有的机译成就来看,机译系统的译文质量离终极目标仍相差甚远;而机译质量是机譯系统成败的关键中国数学家、语言学家周海中教授曾在论文《机器翻译五十年》中指出:要提高机译的质量,首先要解决的是语言本身问题而不是程序设计问题;单靠若干程序来做机译系统肯定是无法提高机译质量的;另外在人类尚未明了大脑是如何进行语言的模糊識别和逻辑判断的情况下,机译要想达到“信、达、雅”的程度是不可能的

其实随着人工智能技术的更加完善,它的实用范围也会更加嘚广泛的而2020年,很多朋友都说生活已经是智能化了这一点从那些被广泛使用的智能化的产品上就可以看出来,其实我们现在的生活不能说是完全的智能化准确的说是初步的智能化,因为现在的的智能设施并没有全面的的普及只有在一些发展比较快的地方才可以看到哽多的智能产品。虽然说现在的生活并不是完全的智能化但是人们的生活和以前相比已经是非常的方便了,就比如说智能客服、智能机器人、智能机械等等的出现给人的生活带来改变还是很大的


· 国内专业的大数据轻应用自助平台

知于数字营销应用平台是国内首个专业嘚大数据轻应用自助平台,提供传播管理、舆情管理、网站管理等大数据轻应用解决方案

基于Google DeepDream算法,把一张图的颜色过滤到另一张图上

F(x,y)对应图像的像素点,W(x,y)是卷积核或者叫滤波器模板卷积计算用以提取图片特征,至于是什么特征取决于卷积核的设计

CNN分为卷積层(CONV),池化层(POOL)和全连接层(FC)RELU是一种激活函数。

Ostagram功能很强大就是排队时间太长了。

唐马儒职业生涯的劲敌识别能力比绿坝娘好五倍,当然色不色情有时不是一个单纯视觉问题所以判断上也难免有偏差。

原理应该还是卷积神经网络因为CNN特别适合于图像识别,其实这个“卷积”更符合图像处理里的“相关”操作区别在于卷积核转不转180度,卷积转而相关不转相关不是中国人。


推荐于 · 说说镓居家装如何装修好一个家

目前人工智能主要应用在以下七个领域:

1、个人助理(智能手机上的语音助理、语音输入、家庭管家和陪护機器人) 产品举例:微软小冰、百度度秘、科大讯飞等、Amazon Echo、Google Home等。

2、安防(智能监控、安保机器人) 产品举例:商汤科技、格灵深瞳、神州雲海

3、自驾领域(智能汽车、公共交通、快递用车、工业应用) 产品举例:Google、Uber、特斯拉、亚马逊、奔驰、京东等。

5、电商零售(仓储物鋶、智能导购和客服) 产品举例:阿里、京东、亚马逊

6、金融(智能投顾、智能客服、安防监控、金融监管) 产品举例:蚂蚁金服、交通银行、大华股份、kensho。

7、教育(智能评测、个性化辅导、儿童陪伴) 产品举例:学吧课堂、科大讯飞、云知声

下载百度知道APP,抢鲜体验

使用百度知道APP立即抢鲜体验。你的手机镜头里或许有别人想知道的答案

}

我要回帖

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信