n=i>j?i-1:j+1;什么意思

a[j]=a[j+1]什么意思a[j+1]=temp什么意思_百度知道
a[j]=a[j+1]什么意思a[j+1]=temp什么意思
我有更好的答案
这是冒泡排序。大值和小值循环调换位置的(也就是相邻2个值的位置调换一下)。代码var temp=a[j];//把集合a中的第j个值存放到临时变量temp中,a[j]=a[j+1];//把集合中的第j+1个(也就是第j个值的下一个)值存到a集合中的第j个位置a[j+1]=//把临时变量temp保存到集合a中的第j+1个位置
采纳率:74%
来自团队:
if里面的就是交换两个数的顺序 temp是中间变量
后面两句是什么意思
比如开始两个数的顺序是2,3要交换就得把2先放到temp里 再把3放到2的位置 最后再把temp放到3的位置
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。matlab中 Z=X(i*N+1:(i+1)*N,j*N+1:(j+1)*N);和 Y=[Y,C]; 什么意思_百度知道
matlab中 Z=X(i*N+1:(i+1)*N,j*N+1:(j+1)*N);和 Y=[Y,C]; 什么意思
N=16;Y=[];Z=[];%生成空数组[m,n]=size(X); %确定矩阵的维数mm=m/N;nm=n/N;for i=0:mm-1
for j=0:nm-1
Z=X(i*N+1:(i+1)*N,j*N+1:(j+1)*N);
C=reshape(Z,N*N,1);%将矩阵改造为N*N行1列
我有更好的答案
就是把你的x矩阵中,依次提取N*N的矩阵,然后把每次提取的矩阵变成一个一维矩阵,最后把所有提取的一维矩阵存储在一个矩阵Y里面。
采纳率:68%
来自团队:
为您推荐:
其他类似问题
matlab的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。扫二维码下载作业帮
拍照搜题,秒出答案,一键查看所有搜题记录
下载作业帮安装包
扫二维码下载作业帮
拍照搜题,秒出答案,一键查看所有搜题记录
ACM中>?这个符号是什么意思 return a[i][j]+(i==n?0:d(i+1,j)>?d(i+1,j+1));
作业帮用户
扫二维码下载作业帮
拍照搜题,秒出答案,一键查看所有搜题记录
x>?d相当于x>d?x:d
这个符号是三目运算符的另外一种表达吗?还是一个新符号,为什么我在学习C++的时候没有看过?
因为他是ACM自己定义的
为您推荐:
其他类似问题
扫描下载二维码a[j++]=i 是什么意思啊?_百度知道
a[j++]=i 是什么意思啊?
我有更好的答案
C语言里的运算符嘛。。。这个其实可以写成两句代码:a[j]=i;j++;只不过是写在一起了后缀自加减运算符是先把变量的值调用完成调用之后,再对该变量进行自加减运算
采纳率:37%
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。&figure&&img src=&https://pic3.zhimg.com/v2-28c0cad39e4c92cc72745_b.jpg& data-rawwidth=&800& data-rawheight=&238& class=&origin_image zh-lightbox-thumb& width=&800& data-original=&https://pic3.zhimg.com/v2-28c0cad39e4c92cc72745_r.jpg&&&/figure&&blockquote&本文由 「AI前线」原创,原文链接: &a href=&http://link.zhihu.com/?target=http%3A//dwz.cn/7nBdQV& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&dwz.cn/7nBdQV&/span&&span class=&invisible&&&/span&&/a&&br&本文经阿凡题研究院授权发布&br&作者|王磊,张东祥,高联丽,宋井宽,郭龙,申恒涛&/blockquote&&p&&b&AI 前线导读:&/b& ”增强学习和人类学习的机制非常相近,DeepMind 已经将增强学习应用于 AlphaGo 以及 Atari 游戏等场景当中。作为智能教育领域的引领者,阿凡题研究院首次提出了一种基于 DQN(Deep Q-Network)的算术应用题自动求解器,能够将应用题的解题过程转化成马尔科夫决策过程,并利用 BP 神经网络良好的泛化能力,存储和逼近增强学习中状态 - 动作对的 Q 值。实验表明该算法在标准测试集的表现优异,将平均准确率提升了将近 15%。”&/p&&p&&br&&/p&&p&&b&研究背景&/b&&/p&&p&自动求解数学应用题(MWP)的研究历史可追溯到 20 世纪 60 年代,并且最近几年继续吸引着研究者的关注。自动求解应用数学题首先将人类可读懂的句子映射成机器可理解的逻辑形式,然后进行推理。该过程不能简单地通过模式匹配或端对端分类技术解决,因此,设计具有语义理解和推理能力的应用数学题自动求解器已成为通向通用人工智能之路中不可缺少的一步。&/p&&p&对于数学应用题求解器来说,给定一个数学应用题文本,不能简单的通过如文本问答的方式端到端的来训练,从而直接得到求解答案,而需要通过文本的处理和数字的推理,得到其求解表达式,从而计算得到答案。因此,该任务不仅仅涉及到对文本的深入理解,还需要求解器具有很强的逻辑推理能力,这也是自然语言理解研究中的难点和重点。&/p&&p&近几年,研究者们从不同的角度设计算法,编写求解系统,来尝试自动求解数学应用题,主要包括基于模板的方法,基于统计的方法,基于表达式树的方法,以及基于深度学习生成模型的方法。目前,求解数学应用题相关领域,面临训练数据集还不够多,求解算法鲁棒性不强,求解效率不高,求解效果不好等多种问题。由于数学题本身需要自然语言有足够的理解,对数字,语义,常识有极强的推理能力,然而大部分求解方法又受到人工干预较多,通用性不强,并且随着数据复杂度的增加,大部分算法求解效果急剧下降,因此设计一个求解效率和效果上均有不错表现的自动求解器,是既困难又非常重要的。&/p&&p&&b&相关工作&/b&&/p&&p&&b&算术应用题求解器:&/b&&/p&&p&作为早期的尝试,基于动词分类,状态转移推理的方法,只能解决加减问题。为了提高求解能力,基于标签的方法,设计了大量映射规则,把变量,数字映射成逻辑表达式,从而进行推理。由于人工干预过多,其扩展困难。&/p&&p&基于表达式树的方法,尝试识别相关数字,并对数字对之间进行运算符的分类,自底向上构建可以求解的表达式树。除此之外,会考虑一些比率单位等等的限制,来进一步保证构建的表达式的正确性。基于等式树的方法,采用了一个更暴力的方法,通过整数线性规划,枚举所有可能的等式树。基于树的方法,都面临着随着数字的个数的增减,求解空间呈指数性增加。&/p&&p&&b&方程组应用题求解器:&/b&&/p&&p&对于方程组应用题的求解,目前主要是基于模板的方法。该需要将文本分类为预定义的方程组模板,通过人工特征来推断未知插槽的排列组合,把识别出来的数字和相关的名词单元在插槽中进行填充。基于模板的方法对数据的依赖性较高,当同一模板对应的题目数量减少,或者模板的复杂性增加时,这种方法的性能将急剧下降。&/p&&p&&b&本文的主要贡献如下:&/b&&/p&&ol&&li&第一个尝试使用深度增强学习来设计一个通用的数学应用题自动求解框架&/li&&li&针对应用题场景,设计了深度 Q 网络相应的状态,动作,奖励函数,和网络结构。&/li&&li&在主要的算术应用题数据集上验证了本文提出的方法,在求解效率和求解效果上都取得了较好的结果。&/li&&/ol&&p&&b&方案介绍&/b&&/p&&figure&&img src=&https://pic3.zhimg.com/v2-eac01fae8d9daceadf2b2_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&808& data-rawheight=&945& class=&origin_image zh-lightbox-thumb& width=&808& data-original=&https://pic3.zhimg.com/v2-eac01fae8d9daceadf2b2_r.jpg&&&/figure&&p&基于深度 Q 网络的数学应用题求解器&/p&&p&本文提出的框架如上图所示。给出一个数学应用题,首先采用数字模式提取用于构建表达式树的相关数字,然后根据重排序制定的规则,对提取出来的相关数字进行顺序调整,比如对于&code&“3+4*5”&/code&, 我们希望优先计算&code&4*5&/code&,这里的数字 5,对应的文本段是“5 元每小时”,显然这里的数字“5”的单位是“元 / 小时”,当数字“4”的单位是“小时”,数字“3”的单位是“元”,遇到这种情况,调整 4 和 5 放到数字序列的最前面,随后,用已排好序的数字序列自底向上的构建表达式树。&/p&&p&首先,根据数字“4”和数字“5”各自的信息,相互之间的信息,以及与问题的关系,提取相应的特征作为增强学习组件中的状态。然后,将此特征向量作为深度 Q 网络中前向神经网络的输入,得到“+”,“-”,反向“-”,“*”,“/“,反向”/“六种动作的 Q 值,根据 epsilon-greedy 选择合适的操作符作为当前的动作,数字”4“和”5“根据当前采取的动作,开始构建表达式树。下一步,再根据数字”4“和数字”3“,或者数字”5“和数字“3”,重复上一步的过程,把运算符数字的最小公共元祖来构建表达式树。直到没有多余相关数字,建树结束。随后将详细介绍深度 Q 网络的各个部件的设计方式。&/p&&p&&b&状态:&/b&对于当前的数字对,根据数字模式,提取单个数字,数字对之间,问题相关的三类特征,以及这两个数字是否已经参与表达式树的构建,作为当前的状态。其中,单个数字,数字对,问题相关这三类特征,有助于网络选择正确的运算符作为当前的动作;数字是否参与已经参与表达式树的构建,暗示着当前数字对在当前表达式树所处的层次位置。&/p&&p&&b&动作:&/b&因为本文处理的是简单的算术应用题,所以只考虑,加减乘除四则运算。在构建树的过程中,对于加法和乘法,两个数字之间不同的数字顺序将不影响计算结果,但是减法和除法不同的顺序将导致不同的结果。由于,我们实现确定好数字的顺序,所以添加反向减法和反向除法这两个操作是非常有必要的。因此,总共加减乘除,反向减法和除法 6 种运算符作为深度 Q 网络需要学习的动作。&/p&&p&&b&奖励函数:&/b&在训练阶段,深度 Q 网络根据当前两个数字,选择正确的动作,得到正确的运算符,环境就反馈一个正值作为奖励,否则反馈一个负值作为惩罚。&/p&&p&&b&参数学习:&/b&本文采用了一个两层的前向神经网络用于深度 Q 网络计算期望的 Q 值。网络的参数θ将根据环境反馈的奖励函数来更新学习。本文使用经验重放存储器来存储状态之间的转移,并从经验重放存储器中批量采样 (s,a,s',r),用于更新网络参数θ。模型的损失函数如下:&/p&&figure&&img src=&https://pic2.zhimg.com/v2-8c09e890e0a799d0cbccc0a90b091a85_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&636& data-rawheight=&183& class=&origin_image zh-lightbox-thumb& width=&636& data-original=&https://pic2.zhimg.com/v2-8c09e890e0a799d0cbccc0a90b091a85_r.jpg&&&/figure&&p&利用损失函数的梯度值来更新参数,来缩小预测的 Q 值和期望的目标 Q 值的差距,公式如下:&/p&&figure&&img src=&https://pic2.zhimg.com/v2-f6d42dafbc2eb3e95d0f9_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&740& data-rawheight=&104& class=&origin_image zh-lightbox-thumb& width=&740& data-original=&https://pic2.zhimg.com/v2-f6d42dafbc2eb3e95d0f9_r.jpg&&&/figure&&p&算法流程如下:&/p&&figure&&img src=&https://pic2.zhimg.com/v2-a42c1b0cf2b8ccd2e450d_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&892& data-rawheight=&1128& class=&origin_image zh-lightbox-thumb& width=&892& data-original=&https://pic2.zhimg.com/v2-a42c1b0cf2b8ccd2e450d_r.jpg&&&/figure&&p&&br&&/p&&p&&b&实验&/b&&/p&&p&本文采用了 AI2, IL,CC 这三个算术应用题数据集进行实验。其中 AI2 有 395 道题目,题目中含有不相关的数字,只涉及加减法。IL 有 562 道题目,题目中含有不相关的数字,只涉及加减乘除单步运算;CC 有 600 道题,题目中不含有不相关的数字,涉及加减乘除的两步运算。&/p&&p&三个数据集准确率如下图:&/p&&figure&&img src=&https://pic2.zhimg.com/v2-60d79eea7dd63b2e8abb9_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&799& data-rawheight=&377& class=&origin_image zh-lightbox-thumb& width=&799& data-original=&https://pic2.zhimg.com/v2-60d79eea7dd63b2e8abb9_r.jpg&&&/figure&&p&观察上述实验结果发现,本文提出的方法在 AI2,CC 数据集上取得了最好的效果。ALGES 在 IL 上表现很好,但是在 AI2 和 CC 数据集上表现却很差,这从侧面证明了我们的方法有更好的通用性。UnitDep 提出的单位依赖图对只有加减运算的 AI2 数据集没有明显的效果,其增加的 Context 特征在 CC 数据集上有取得了明显的效果,但是却在 AI2 数据集上效果明显下降,这里表现出人工特征的局限性。对于本文提出的方法,重排序在 CC 数据集上,提升效果明显,由于 AI2 只有加减运算,IL 只涉及单步运算,所以在这两个数据集上效果不变。&/p&&p&除此之外,本文还做了单步和多步的断点分析,实验效果表明,本文提出的方法在多步上表现十分优异,实验结果如下图:&/p&&figure&&img src=&https://pic4.zhimg.com/v2-bb03ee61dfd12edc0144149fbcb9f57b_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&646& data-rawheight=&378& class=&origin_image zh-lightbox-thumb& width=&646& data-original=&https://pic4.zhimg.com/v2-bb03ee61dfd12edc0144149fbcb9f57b_r.jpg&&&/figure&&p&运行时间如下图:&/p&&figure&&img src=&https://pic2.zhimg.com/v2-f0ca8e3e5c8fb90d8289_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&845& data-rawheight=&264& class=&origin_image zh-lightbox-thumb& width=&845& data-original=&https://pic2.zhimg.com/v2-f0ca8e3e5c8fb90d8289_r.jpg&&&/figure&&p&观察单个题目求解需要的时间,我们可以发现,多步运算的数据集 CC,在时间上明显耗费更多。ALGES 由于要枚举所有可能的候选树,因此耗费时间最长。本文提出的方法,求解效率仅次于只有 SVM 做运算符,和相关数字分类的 ExpTree。&/p&&p&平均奖励和准确率的走势如下图:&/p&&figure&&img src=&https://pic4.zhimg.com/v2-4084bbaea71347aaa4a7edeb76f668a3_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&695& data-rawheight=&512& class=&origin_image zh-lightbox-thumb& width=&695& data-original=&https://pic4.zhimg.com/v2-4084bbaea71347aaa4a7edeb76f668a3_r.jpg&&&/figure&&figure&&img src=&https://pic1.zhimg.com/v2-6d9ac464c9caa0348ffc8a129c129650_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&658& data-rawheight=&509& class=&origin_image zh-lightbox-thumb& width=&658& data-original=&https://pic1.zhimg.com/v2-6d9ac464c9caa0348ffc8a129c129650_r.jpg&&&/figure&&p&&br&&/p&&p&&b&总结&/b&&/p&&p&本文首次提出了一个用于求解数学应用题的增强学习框架,在基准数据上其求解效率和求解效果展现出较好的效果。&/p&&p&未来,我们将继续沿着深度学习,增强学习这条线去设计数学应用题自动求解器,来避免过多的人工特征。同时在更大更多样化的数据集上,尝试求解方程组应用题。&/p&&p&&b&论文题目:&/b&《MathDQN: 利用深度增强学习求解算术应用题》&/p&&p&&b&英文:&/b&《MathDQN: Solving ArithmeticWord Problems via Deep Reinforcement Learning》&/p&&p&&b&Paper URL:&/b& &/p&&p&&a href=&http://link.zhihu.com/?target=http%3A//cfm.uestc.edu.cn/%7Ezhangdongxiang/papers/mathdqn.pdf& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&cfm.uestc.edu.cn/~zhang&/span&&span class=&invisible&&dongxiang/papers/mathdqn.pdf&/span&&span class=&ellipsis&&&/span&&/a&&/p&&p&&b&团队:&/b& 阿凡题研究院、电子科技大学、北京大学&/p&&p&&b&作者:&/b& 王磊,张东祥,高联丽,宋井宽,郭龙,申恒涛&/p&&p&更多干货内容,可关注AI前线,ID:&b&ai-front&/b&,后台回复「&b&AI&/b&」、「&b&TF&/b&」、「&b&大数据&/b&」可获得《AI前线》系列PDF迷你书和技能图谱。&/p&
本文由 「AI前线」原创,原文链接:
本文经阿凡题研究院授权发布 作者|王磊,张东祥,高联丽,宋井宽,郭龙,申恒涛AI 前线导读: ”增强学习和人类学习的机制非常相近,DeepMind 已经将增强学习应用于 AlphaGo 以及 Atari 游戏等场…
&figure&&img src=&https://pic2.zhimg.com/v2-65df511f8db846bbbffe_b.jpg& data-rawwidth=&549& data-rawheight=&297& class=&origin_image zh-lightbox-thumb& width=&549& data-original=&https://pic2.zhimg.com/v2-65df511f8db846bbbffe_r.jpg&&&/figure&&p&选自arXiv,作者:Pramod Kaushik Mudrakarta等,机器之心编译。&/p&&blockquote&来自芝加哥大学和谷歌的研究者通过归因方法分析了三种深度学习问答模型的内在过程,包括了对图像、图表和文本段落的问答。结果表明这些深度网络常常会忽略问题中重要的词,导致错误归因(把无关词当成决定答案的重要线索),从而可以轻易地构造对抗样本实现攻击。例如,最强的攻击可以将图像问答模型的准确率从 61.1% 降低到 19%,将图表问答模型的准确率从 33.5% 降低到 3.3%。&/blockquote&&p&&br&&/p&&p&&b&引言&/b&&/p&&p&近期,各种问答任务都应用了深度学习。例如,关于图像的问答任务(如 Kazemi 和 Elqursh 等人 2017 年的工作);关于图表的问答任务(如 Neelakantan 等人 2017 年的工作);以及关于文本段落的问答任务(如 Yu 等人 2018 年的工作)。开发人员、用户以及审稿人(学术界)都希望了解这些模型的能力。&/p&&p&衡量系统表现的标准方式是在测试集上评估其误差率。只有当测试集可以代表潜在的真实世界任务时,高准确率才是一个好模型的指标。大多数任务的测试集和训练集都很大,因而很难检验这些数据集是否能代表真实世界。&/p&&p&本文提出的技术可以分析深度学习模型对问句中单词的敏感度。研究者通过归因分析以及生成对抗性问题来实现这种技术。举一个说明性的例子:视觉问答(Agrawal et al., 2015)中的任务是要回答关于图像的问题。思考一下「建筑物两边的白色砖块有多对称?」这样的问题(如图 1 所示)。本文研究的系统得到了正确的答案(「非常」)。但是,研究者(通过归因方式)发现这个系统只依赖于类似「how」和「bricks」等少数几个单词。事实上,我们可以在图像相同的情况下,提出一个可以使系统得到错误答案的对抗性问题。例如,对于「建筑两边的白色砖块有多圆?」这个问题来说,系统得到的答案是一样的(「非常」)。本项研究的一个重要前提是在问答方面大多数人都有基本常识。即使他们无法手动检验数据集是否能代表真实世界,但是他们可以识别问句中重要的词,并预测出这些关键词在回答问题中所起的作用。&/p&&p&&br&&/p&&p&&b&本文的研究贡献&/b&&/p&&p&研究者分析了三个问答模型。有两个步骤:首先,应用了集成梯度(Integrated Gradients,IG)(Sundararajan et al., 2017),将系统的预测结果归因于问题中的单词上。研究者对归因结果进行了可视化,以便后续分析。其次,通过归因分析识别出网络逻辑中的弱点(例如,依赖不重要的单词),并利用这些弱点构建对抗性问题。&/p&&p&本研究的一个重要贡献在于可以对问答网络进行过稳定性(overstability)的测试。Jia 和 Liang 的研究(2017)表明,阅读理解网络对语义更改编辑来说有些过稳定。在研究过程中,作者发现这样的过稳定性也适用于问答任务。此外,这种行为在视觉问答网络和表格问答网络中也有所体现。作者使用归因定义一种通用的测试方法,以度量过稳定性的程度(4.3 节和 5.3 节)。该过程涉及到当系统地从问题中去除单词的过程中,度量网络的准确率的变化。&/p&&p&需要强调的是,与 Jia 和 Liang 相似的模型独立的对抗技术相比,本文的方法利用了现有模型的优缺点,这使得的攻击成功率更高。此外,利用归因分析,可以提高 Jia 和 Liang 工作的准确率(6.2 节)。就目前所知,这种广泛使用归因分析构建对抗样本的做法是很新颖的。&/p&&p&接下来提供本文结果的概述,在每种情况下都会对新输入上的预训练模型进行评估,并保持网络参数不变。&/p&&p&图像问答(第 4 节):该任务是要回答有关图像的问题。作者分析了 Kazemi 和 Elqursh 的研究(2017)中的深度网络。他们发现网络忽略了问题中的很多单词,这些单词很大程度上是依赖图像回答问题的。例如,在验证集中,即使删掉除了被强调外的每一个单词,模型准确性还是达到原始准确性的 50% 以上。他们还发现,该模型潜在地依赖于重要的疑问词(如名词),在问题中添加无内容前缀(如「简单来说…」)的话,模型准确率从 61.1% 降低到 19%。&/p&&p&图表问答(第 5 节):作者分析了 Neelakantan 等人在 2017 年做出的神经编程器(Neural Programmer,NP)系统的工作,该系统针对表格数据回答问题。NP 选择适用于附表的一系列操作回答问题(类似于 SQL 的 query 方法;在第 5 节中有细节描述)。他们发现与名词或形容词等重要词相比,无内容单词(如「in」、「at」和「the」等)更容易影响这些操作选择。删除所有的无内容单词后,模型的准确率从 33.5% 下降到 28.5%。他们还发现,NP 通常是以错误的原因得到正确答案的。例如,对于问题「哪个国家赢得了最多的金牌?」,NP 选择的操作之一是「第一」(选取图表的第一行)。只有当图表恰好是以排名组织时,它的答案才是正确的。研究者通过在 Pasupat 和 Liang 2016 年提出的生成扰动图表集上进行测试,来量化该弱点,并发现其准确率从 33.5% 下降到了 23%。最后,研究者展示了过稳定性的极端形式,其中图表自身就能在网络中诱导很大的偏差,而不管问题的具体内容。例如,在关于奥林匹克金牌数的图表中,NP 预先倾向于选择「前一个」的操作。&/p&&p&阅读理解(第 6 节):该任务是要回答文本段落的相关问题。分析了 Yu 等人的网络(2018)后又一次发现,网络常常忽略一些本应该重视的单词。Jia 和 Liang 等人 2017 年提出在句子中添加一些短语一般不会改变网络所给答案,但有时候能实现攻击。研究者的主要发现是,当被添加短语的句子中包含所有模型认为重要(对原始段落而言)的疑问词时,攻击成功的可能性更高。例如,他们发现,当添加的句子包含最高归因(top-attributed)的名词时,攻击成功的可能性会超过 50%。这种洞察可指导我们构建更成功的攻击和更好地训练数据集。&/p&&p&总之,研究者发现所有的网络都忽视了问题的重要部分。可以通过改善训练集或者引入归纳偏置解决这一问题。他们的分析工作对这两个方案都有帮助。对将最终用户展示归因可视化也是有意义的。了解哪些单词会被忽略,或者哪些操作会映射到单词,都可以帮助用户决定是否相信系统给出的回应。&/p&&figure&&img src=&https://pic1.zhimg.com/v2-4b94990ffb73b72b416fb_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&459& data-rawheight=&172& class=&origin_image zh-lightbox-thumb& width=&459& data-original=&https://pic1.zhimg.com/v2-4b94990ffb73b72b416fb_r.jpg&&&/figure&&p&图 1:图像问答(Kazemi and Elqursh, 2017):对能正确回答问题的网络的归因(词重要性)可视化。红色表示高归因,蓝色表示负归因,灰色表示近零归因。颜色由标准化的归因决定,也就是问题中归因程度最高的词语。&/p&&figure&&img src=&https://pic3.zhimg.com/v2-921bc3ae_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&415& data-rawheight=&272& class=&content_image& width=&415&&&/figure&&p&图 2:VQA 网络(Kazemi and Elqursh, 2017):相对于原始准确率,准确率更像是词汇量的函数。将词汇按出现频率降序排列,选择出现最多的词汇。X 轴取对数刻度,除了接近 0 的地方是线性的。&/p&&figure&&img src=&https://pic2.zhimg.com/v2-f4ed9e825d940ae94c23f3_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&315& data-rawheight=&279& class=&content_image& width=&315&&&/figure&&p&表 1:VQA 网络(Kazemi and Elqursh, 2017):前缀攻击的准确率;原始准确率为 61.1%。&/p&&figure&&img src=&https://pic3.zhimg.com/v2-9a70d089ba902e96bfb970e8cb40cc52_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&418& data-rawheight=&269& class=&content_image& width=&418&&&/figure&&p&图 3:归因分析的可视化。Y 轴上是疑问词、预处理标记和列选择先验。X 轴上是操作符和列选择,括号内是其基准线。操作符和列本身不影响最终答案,与对应的基准线一样,定为零归因。&/p&&figure&&img src=&https://pic3.zhimg.com/v2-dbcaf47bbcf_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1005& data-rawheight=&215& class=&origin_image zh-lightbox-thumb& width=&1005& data-original=&https://pic3.zhimg.com/v2-dbcaf47bbcf_r.jpg&&&/figure&&p&表 2:表格特定默认程序(NP 在空输入问题上返回的程序)的列名归因。完整列表见补充材料中的表 6。这些结果表明,网络预先倾向于只根据表格选择运算符。&/p&&figure&&img src=&https://pic3.zhimg.com/v2-0ade1b368d77e2a5237df6_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&409& data-rawheight=&283& class=&content_image& width=&409&&&/figure&&p&图 4:准确率作为词汇量的函数。按照出现频率,降序排列这些词,选择这些词作为问题中词语的最高归因。X 轴取对数坐标,除了接近 0 的地方是线性的。注意,只需要 5 个词网络的最终准确率即可超过 50%。&/p&&figure&&img src=&https://pic3.zhimg.com/v2-acad1eef0e_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&380& data-rawheight=&292& class=&content_image& width=&380&&&/figure&&p&表 3:神经编程器(Neelakantan et al., 2017):左边:将攻击短语加入问题后得到的验证准确率(原始准确率为 33.5%)。&/p&&figure&&img src=&https://pic4.zhimg.com/v2-75e6946745cff6eaccda2b21_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&912& data-rawheight=&389& class=&origin_image zh-lightbox-thumb& width=&912& data-original=&https://pic4.zhimg.com/v2-75e6946745cff6eaccda2b21_r.jpg&&&/figure&&p&表 4:ADDSENT 攻击没能骗过这个模型。经过修改保留了归因程度高的名词后成功骗过了模型。归因程度高的词是红色的(归因程度越高颜色越深)&/p&&p&&br&&/p&&p&&b&论文:Did the Model Understand the Question?&/b&&/p&&figure&&img src=&https://pic4.zhimg.com/v2-77eaa40c25f46e27a182f_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&834& data-rawheight=&165& class=&origin_image zh-lightbox-thumb& width=&834& data-original=&https://pic4.zhimg.com/v2-77eaa40c25f46e27a182f_r.jpg&&&/figure&&p&&br&&/p&&p&论文地址:&a href=&https://link.zhihu.com/?target=https%3A//arxiv.org/abs/& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&arxiv.org/abs/&/span&&span class=&invisible&&2&/span&&span class=&ellipsis&&&/span&&/a&&/p&&p&&b&摘要:&/b&本文分析了针对三个任务的最新的深度学习模型:对图像的问答、对图表的问答和对文本段落的问答。通过归因(词重要性)标记,发现这些深度网络常常会忽略问题中重要的词。利用这样的漏洞,我们对问题做了扰动修改,从而制造出各种各样的对抗样本。最强的攻击将图像问答模型的准确率从 61.1% 降低到 19%,将图表问答模型的准确率从 33.5% 降低到 3.3%。此外,本文还说明了在段落理解模型上归因是如何增强攻击力度的(Jia 和 Liang 2017 年提出)。研究结果表明,归因可以加强准确率的标准衡量,还可以使模型性能具备可探究性。当一个模型出于错误原因变成准确的的时候,归因分析会在模型中显示逻辑错误,指出测试集中数据的不足之处。 &/p&&figure&&img src=&https://pic3.zhimg.com/v2-18cc987d5f379a82f22318_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&73& data-rawheight=&24& class=&content_image& width=&73&&&/figure&&p&&/p&
选自arXiv,作者:Pramod Kaushik Mudrakarta等,机器之心编译。来自芝加哥大学和谷歌的研究者通过归因方法分析了三种深度学习问答模型的内在过程,包括了对图像、图表和文本段落的问答。结果表明这些深度网络常常会忽略问题中重要的词,导致错误归因(把无…
&figure&&img src=&https://pic1.zhimg.com/v2-0b1dbd78a2a17ea7b3797_b.jpg& data-rawwidth=&620& data-rawheight=&364& class=&origin_image zh-lightbox-thumb& width=&620& data-original=&https://pic1.zhimg.com/v2-0b1dbd78a2a17ea7b3797_r.jpg&&&/figure&&p&
Attention是一种用于提升基于RNN(LSTM或GRU)的Encoder + Decoder模型的效果的的机制(Mechanism),一般称为Attention Mechanism。Attention Mechanism目前非常流行,广泛应用于机器翻译、语音识别、图像标注(Image Caption)等很多领域,之所以它这么受欢迎,是因为Attention给模型赋予了区分辨别的能力,例如,在机器翻译、语音识别应用中,为句子中的每个词赋予不同的权重,使神经网络模型的学习变得更加灵活(soft),同时Attention本身可以做为一种对齐关系,解释翻译输入/输出句子之间的对齐关系,解释模型到底学到了什么知识,为我们打开深度学习的黑箱,提供了一个窗口,如图1所示。&/p&&figure&&img src=&https://pic4.zhimg.com/v2-016fb32bc75f4131a7dbf_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&819& data-rawheight=&901& class=&origin_image zh-lightbox-thumb& width=&819& data-original=&https://pic4.zhimg.com/v2-016fb32bc75f4131a7dbf_r.jpg&&&/figure&&p&图1 NLP中的attention可视化&/p&&p&
又比如在图像标注应用中,可以解释图片不同的区域对于输出Text序列的影响程度。&/p&&figure&&img src=&https://pic4.zhimg.com/v2-b5dcc336fabb_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&690& data-rawheight=&318& class=&origin_image zh-lightbox-thumb& width=&690& data-original=&https://pic4.zhimg.com/v2-b5dcc336fabb_r.jpg&&&/figure&&p&图2 图像标注中的attention可视化&/p&&p&
通过上述Attention Mechanism在图像标注应用的case可以发现,Attention Mechanism与人类对外界事物的观察机制很类似,当人类观察外界事物的时候,一般不会把事物当成一个整体去看,往往倾向于根据需要选择性的去获取被观察事物的某些重要部分,比如我们看到一个人时,往往先Attention到这个人的脸,然后再把不同区域的信息组合起来,形成一个对被观察事物的整体印象。&b&因此,&a href=&http://link.zhihu.com/?target=http%3A//mp.weixin.qq.com/s%3F__biz%3DMzIxNDgzNDg3NQ%3D%3D%26mid%3D%26idx%3D1%26sn%3D712df7bdece%26chksm%3D97a0c84ca0d7415aee9ef00f104665ccf8cf41bbb6b2f63dc2685c%26scene%3D21%23wechat_redirect& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Attention Mechanism可以帮助模型对输入的X每个部分赋予不同的权重,抽取出更加关键及重要的信息,使模型做出更加准确的判断,同时不会对模型的计算和存储带来更大的开销,这也是Attention Mechanism应用如此广泛的原因。&/a&&/b&&/p&&p&
有了这些背景知识的铺垫,接下来就一一介绍下Attention Mechanism其他细节,在接写来的内容里,我会主要介绍以下一些知识:&/p&&p&&br&&/p&&p&&b&1. Attention Mechanism原理&/b&&/p&&p&&b&
1.1 Attention Mechanism主要需要解决的问题&/b&&/p&&p&&b&
1.2 Attention Mechanism原理&/b&&/p&&p&&br&&/p&&p&&b&2. Attention Mechanism分类&/b&&/p&&p&&b&基本attention结构&/b&&/p&&p&&b&
2.1 soft Attention 与Hard Attention&/b&&/p&&p&&b&
2.2 Global Attention 和 Local Attention&/b&&/p&&p&&b&
2.3 Self Attention&/b&&/p&&p&&b&组合的attention结构&/b&&/p&&p&&b&
2.4 Hierarchical Attention&/b&&/p&&p&&b&
2.5 Attention in Attention&/b&&/p&&p&&b&
2.3 Multi-Step Attention&/b&&/p&&p&&br&&/p&&p&&b&3. Attention的应用场景&/b&&/p&&p&&b&
3.1 机器翻译(Machine Translation)&/b&&/p&&p&&b&
3.2 图像标注(Image Captain)&/b&&/p&&p&&b&
3.3 关系抽取(EntailMent Extraction)&/b&&/p&&p&&b&
3.4 语音识别(Speech Recognition)&/b&&/p&&p&&b&
3.5 自动摘要生成(Text Summarization)&/b&&/p&&p&&b&1. Attention Mechanism原理&/b&&/p&&p&&b&1.1 Attention Mechanism主要需要解决的问题&/b&&/p&&p&
《Sequence to Sequence Learning with Neural Networks》介绍了一种基于RNN的Seq2Seq模型,基于一个Encoder和一个Decoder来构建基于神经网络的End-to-End的机器翻译模型,其中,Encoder把输入X编码成一个固定长度的隐向量Z,Decoder基于隐向量Z解码出目标输出Y。这是一个非常经典的序列到序列的模型,但是却存在&b&两个明显的问题:&/b&&/p&&p&
1、把输入X的所有信息有压缩到一个固定长度的隐向量Z,忽略了输入输入X的长度,当输入句子长度很长,特别是比训练集中最初的句子长度还长时,模型的性能急剧下降。&/p&&p&
2、把输入X编码成一个固定的长度,对于句子中每个词都赋予相同的权重,这样做是不合理的,比如,在机器翻译里,输入的句子与输出句子之间,往往是输入一个或几个词对应于输出的一个或几个词。因此,对输入的每个词赋予相同权重,这样做没有区分度,往往是模型性能下降。&/p&&p&
同样的问题也存在于图像识别领域,卷积神经网络CNN对输入的图像每个区域做相同的处理,这样做没有区分度,特别是当处理的图像尺寸非常大时,问题更明显。因此,2015年,Dzmitry Bahdanau等人在《Neural machine translation by jointly learning to align and translate》提出了Attention Mechanism,用于对输入X的不同部分赋予不同的权重,进而实现软区分的目的。&/p&&p&&br&&/p&&p&&b&1.2 Attention Mechanism原理&/b&&/p&&p&
要介绍Attention Mechanism结构和原理,首先需要介绍下Seq2Seq模型的结构。基于RNN的Seq2Seq模型主要由两篇论文介绍,只是采用了不同的RNN模型。Ilya Sutskever等人与2014年在论文《Sequence to Sequence Learning with Neural Networks》中使用LSTM来搭建Seq2Seq模型。随后,2015年,Kyunghyun Cho等人在论文《Learning Phrase Representations using RNN Encoder–Decoder for Statistical Machine Translation》提出了基于GRU的Seq2Seq模型。两篇文章所提出的Seq2Seq模型,想要解决的主要问题是,如何把机器翻译中,变长的输入X映射到一个变长输出Y的问题,其主要结构如图3所示。&/p&&figure&&img src=&https://pic3.zhimg.com/v2-2a5baf4ebc73f2862fae_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&706& data-rawheight=&664& class=&origin_image zh-lightbox-thumb& width=&706& data-original=&https://pic3.zhimg.com/v2-2a5baf4ebc73f2862fae_r.jpg&&&/figure&&p&图3 传统的Seq2Seq结构&/p&&p&
其中,Encoder把一个变成的输入序列x1,x2,x3....xt编码成一个固定长度隐向量(背景向量,或上下文向量context)c,c有两个作用:1、做为初始向量初始化Decoder的模型,做为decoder模型预测y1的初始向量。2、做为背景向量,指导y序列中每一个step的y的产出。Decoder主要基于背景向量c和上一步的输出yt-1解码得到该时刻t的输出yt,直到碰到结束标志(&EOS&)为止。&/p&&p&
如上文所述,传统的Seq2Seq模型对输入序列X缺乏区分度,因此,2015年,Kyunghyun Cho等人在论文《Learning Phrase Representations using RNN Encoder–Decoder for Statistical Machine Translation》中,引入了Attention Mechanism来解决这个问题,他们提出的模型结构如图4所示。&/p&&figure&&img src=&https://pic4.zhimg.com/v2-163c0c3dda50d1fe7a4f7a64ba728d27_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&504& data-rawheight=&676& class=&origin_image zh-lightbox-thumb& width=&504& data-original=&https://pic4.zhimg.com/v2-163c0c3dda50d1fe7a4f7a64ba728d27_r.jpg&&&/figure&&p&图4 Attention Mechanism模块图解&/p&&p&
在该模型中,定义了一个条件概率:&/p&&figure&&img src=&https://pic1.zhimg.com/v2-63ec14c6ecc76814b6ec_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&525& data-rawheight=&46& class=&origin_image zh-lightbox-thumb& width=&525& data-original=&https://pic1.zhimg.com/v2-63ec14c6ecc76814b6ec_r.jpg&&&/figure&&p&
其中,si是decoder中RNN在在i时刻的隐状态,如图4中所示,其计算公式为:&/p&&figure&&img src=&https://pic3.zhimg.com/v2-de918a0ad5f38e2b2e199ae27b018b32_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&352& data-rawheight=&46& class=&content_image& width=&352&&&/figure&&p&
这里的背景向量ci的计算方式,与传统的Seq2Seq模型直接累加的计算方式不一样,这里的ci是一个权重化(Weighted)之后的值,其表达式如公式5所示:&/p&&figure&&img src=&https://pic3.zhimg.com/v2-b9f1bbbf70f76e39fc3da_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&494& data-rawheight=&90& class=&origin_image zh-lightbox-thumb& width=&494& data-original=&https://pic3.zhimg.com/v2-b9f1bbbf70f76e39fc3da_r.jpg&&&/figure&&p&
其中,i表示encoder端的第i个词,hj表示encoder端的第j和词的隐向量,aij表示encoder端的第j个词与decoder端的第i个词之间的权值,表示源端第j个词对目标端第i个词的影响程度,aij的计算公式如公式6所示:&/p&&figure&&img src=&https://pic2.zhimg.com/v2-ba995fd335a962b129529bbdbf9bec25_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&715& data-rawheight=&147& class=&origin_image zh-lightbox-thumb& width=&715& data-original=&https://pic2.zhimg.com/v2-ba995fd335a962b129529bbdbf9bec25_r.jpg&&&/figure&&p&
在公式6中,aij是一个softmax模型输出,概率值的和为1。eij表示一个对齐模型,用于衡量encoder端的位置j个词,对于decoder端的位置i个词的对齐程度(影响程度),换句话说:decoder端生成位置i的词时,有多少程度受encoder端的位置j的词影响。对齐模型eij的计算方式有很多种,不同的计算方式,代表不同的Attention模型,最简单且最常用的的对齐模型是dot product乘积矩阵,即把target端的输出隐状态ht与source端的输出隐状态进行矩阵乘。常见的对齐计算方式如下:&/p&&figure&&img src=&https://pic1.zhimg.com/v2-967aac9fdc4_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&478& data-rawheight=&123& class=&origin_image zh-lightbox-thumb& width=&478& data-original=&https://pic1.zhimg.com/v2-967aac9fdc4_r.jpg&&&/figure&&p&
其中,Score(ht,hs) = aij表示源端与目标单单词对齐程度。可见,常见的对齐关系计算方式有,点乘(Dot product),权值网络映射(General)和concat映射几种方式。&/p&&p&&b&2. Attention Mechanism分类&/b&&/p&&p&&b&2.1 soft Attention 和Hard Attention&/b&&/p&&p&
Kelvin Xu等人与2015年发表论文《Show, Attend and Tell: Neural Image Caption Generation with Visual Attention》,在Image Caption中引入了Attention,当生成第i个关于图片内容描述的词时,用Attention来关联与i个词相关的图片的区域。Kelvin Xu等人在论文中使用了两种Attention Mechanism,即Soft Attention和Hard Attention。我们之前所描述的传统的Attention Mechanism就是Soft Attention。Soft Attention是参数化的(Parameterization),因此可导,可以被嵌入到模型中去,直接训练。梯度可以经过Attention Mechanism模块,反向传播到模型其他部分。&/p&&p&
相反,Hard Attention是一个随机的过程。Hard Attention不会选择整个encoder的输出做为其输入,Hard Attention会依概率Si来采样输入端的隐状态一部分来进行计算,而不是整个encoder的隐状态。为了实现梯度的反向传播,需要采用蒙特卡洛采样的方法来估计模块的梯度。&/p&&p&
两种Attention Mechanism都有各自的优势,但目前更多的研究和应用还是更倾向于使用Soft Attention,因为其可以直接求导,进行梯度反向传播。&/p&&p&&br&&/p&&p&&b&2.2 Global Attention 和 Local Attention&/b&&/p&&p&&b&Global Attention:&/b&传统的Attention model一样。所有的hidden state都被用于计算Context vector 的权重,即变长的对齐向量at,其长度等于encoder端输入句子的长度。结构如图5所示。&/p&&figure&&img src=&https://pic2.zhimg.com/v2-ed2ecbec1b_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&620& data-rawheight=&364& class=&origin_image zh-lightbox-thumb& width=&620& data-original=&https://pic2.zhimg.com/v2-ed2ecbec1b_r.jpg&&&/figure&&p&图5 Global Attention模型示意图&/p&&p&
在t时刻,首先基于decoder的隐状态ht和源端的隐状态hs,计算一个变长的隐对齐权值向量at,其计算公式如下:&/p&&figure&&img src=&https://pic2.zhimg.com/v2-cd145f558eeee75b86145def_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&509& data-rawheight=&173& class=&origin_image zh-lightbox-thumb& width=&509& data-original=&https://pic2.zhimg.com/v2-cd145f558eeee75b86145def_r.jpg&&&/figure&&p&
其中,score是一个用于评价ht与hs之间关系的函数,即对齐函数,一般有三种计算方式,我们在上文中已经提到了。公式如下:&/p&&p&
得到对齐向量at之后,就可以通过加权平均的方式,得到上下文向量ct。&/p&&p&&br&&/p&&p&&b&
Local Attention:&/b&Global Attention有一个明显的缺点就是,每一次,encoder端的所有hidden state都要参与计算,这样做计算开销会比较大,特别是当encoder的句子偏长,比如,一段话或者一篇文章,效率偏低。因此,为了提高效率,Local Attention应运而生。&/p&&p&Local Attention是一种介于Kelvin Xu所提出的Soft Attention和Hard Attention之间的一种Attention方式,即把两种方式结合起来。其结构如图6所示。&/p&&figure&&img src=&https://pic1.zhimg.com/v2-e4a3e42ed0d579b8bc52c_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&556& data-rawheight=&383& class=&origin_image zh-lightbox-thumb& width=&556& data-original=&https://pic1.zhimg.com/v2-e4a3e42ed0d579b8bc52c_r.jpg&&&/figure&&p&图6 Local Attention模型示意图&/p&&p&
Local Attention首先会为decoder端当前的词,预测一个source端对齐位置(aligned position)pt,然后基于pt选择一个窗口,用于计算背景向量ct。Position pt的计算公式如下:&/p&&figure&&img src=&https://pic1.zhimg.com/v2-6ef8efcc57d60d9eabb4_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&408& data-rawheight=&71& class=&content_image& width=&408&&&/figure&&p&
其中,S是encoder端句子长度,vp和wp是模型参数。此时,对齐向量at的计算公式如下:&/p&&figure&&img src=&https://pic1.zhimg.com/v2-145309bab612ece99efbde0_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&381& data-rawheight=&68& class=&content_image& width=&381&&&/figure&&p&
总之,Global Attention和Local Attention各有优劣,在实际应用中,Global Attention应用更普遍,因为local Attention需要预测一个位置向量p,这就带来两个问题:1、当encoder句子不是很长时,相对Global Attention,计算量并没有明显减小。2、位置向量pt的预测并不非常准确,这就直接计算的到的local Attention的准确率。&/p&&p&&br&&/p&&p&&b&2.3 Self Attention&/b&&/p&&p&
Self Attention与传统的Attention机制非常的不同:传统的Attention是基于source端和target端的隐变量(hidden state)计算Attention的,得到的结果是源端的每个词与目标端每个词之间的依赖关系。但Self Attention不同,它分别在source端和target端进行,仅与source input或者target input自身相关的Self Attention,捕捉source端或target端自身的词与词之间的依赖关系;然后再把source端的得到的self Attention加入到target端得到的Attention中,捕捉source端和target端词与词之间的依赖关系。因此,self Attention Attention比传统的Attention mechanism效果要好,主要原因之一是,传统的Attention机制忽略了源端或目标端句子中词与词之间的依赖关系,相对比,self Attention可以不仅可以得到源端与目标端词与词之间的依赖关系,同时还可以有效获取源端或目标端自身词与词之间的依赖关系,如图7所示。&/p&&figure&&img src=&https://pic4.zhimg.com/v2-3c164abbdfca339bc31ec28ef8e44ebf_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&964& data-rawheight=&522& class=&origin_image zh-lightbox-thumb& width=&964& data-original=&https://pic4.zhimg.com/v2-3c164abbdfca339bc31ec28ef8e44ebf_r.jpg&&&/figure&&p&图7 self attention可视化实例,图片摘自《深度学习中的注意力机制》,张俊林&/p&&p&
Self Attention的具体计算方式如图8所示:&/p&&figure&&img src=&https://pic1.zhimg.com/v2-e5ab4e45e8b_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&406& data-rawheight=&516& class=&content_image& width=&406&&&/figure&&p&图8 All Attention模型结构示意图&/p&&p&
Encoder的输入inputs和decoder的输入outputs,加上position embedding,做为各自的最初的输入,那么问题来了,self Attention具体是怎么实现的呢?从All Attention的结构示意图可以发现,Encoder和decoder是层叠多了类似的Multi-Head Attention单元构成,而每一个Multi-Head Attention单元由多个结构相似的Scaled Dot-Product Attention单元组成,结构如图9所示。&/p&&figure&&img src=&https://pic2.zhimg.com/v2-bfac3b1b257409bcd7d779bd_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&567& data-rawheight=&340& class=&origin_image zh-lightbox-thumb& width=&567& data-original=&https://pic2.zhimg.com/v2-bfac3b1b257409bcd7d779bd_r.jpg&&&/figure&&p&图9 Multi-Head Attention结构示意图&/p&&p&
Self Attention也是在Scaled Dot-Product Attention单元里面实现的,如上图左图所示,首先把输入Input经过线性变换分别得到Q、K、V,注意,Q、K、V都来自于Input,只不过是线性变换的矩阵的权值不同而已。然后把Q和K做dot Product相乘,得到输入Input词与词之间的依赖关系,然后经过尺度变换(scale)、掩码(mask)和softmax操作,得到最终的Self Attention矩阵。尺度变换是为了防止输入值过大导致训练不稳定,mask则是为了保证时间的先后关系。&/p&&p&
最后,把encoder端self Attention计算的结果加入到decoder做为k和V,结合decoder自身的输出做为q,得到encoder端的attention与decoder端attention之间的依赖关系。&/p&&p&&br&&/p&&p&&b&Attention其他一些组合使用&/b&&/p&&p&&b&2.4 Hierarchical Attention&/b&&/p&&p&
Zichao Yang等人在论文《Hierarchical Attention Networks for Document Classification》提出了Hierarchical Attention用于文档分类。Hierarchical Attention构建了两个层次的Attention Mechanism,第一个层次是对句子中每个词的attention,即word attention;第二个层次是针对文档中每个句子的attention,即sentence attention。网络结构如图10所示。&/p&&figure&&img src=&https://pic2.zhimg.com/v2-5046bdab04a0ece487fdf855_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&510& data-rawheight=&559& class=&origin_image zh-lightbox-thumb& width=&510& data-original=&https://pic2.zhimg.com/v2-5046bdab04a0ece487fdf855_r.jpg&&&/figure&&p&图10 Hierarchical Attention结构示意图&/p&&p&
整个网络结构由四个部分组成:一个由双向RNN(GRU)构成的word sequence encoder,然后是一个关于词的word-level的attention layer;基于word attention layar之上,是一个由双向RNN构成的sentence encoder,最后的输出层是一个sentence-level的attention layer。&/p&&p&&br&&/p&&p&&b&2.5 Attention over Attention&/b&&/p&&p&
Yiming Cui与2017年在论文《Attention-over-Attention Neural Networks for Reading Comprehension》中提出了Attention Over Attention的Attention机制,结构如图11所示。&/p&&p&&br&&/p&&figure&&img src=&https://pic2.zhimg.com/v2-2ea1f5105ca8daafbd37fd326cfd46a1_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&911& data-rawheight=&584& class=&origin_image zh-lightbox-thumb& width=&911& data-original=&https://pic2.zhimg.com/v2-2ea1f5105ca8daafbd37fd326cfd46a1_r.jpg&&&/figure&&p&图11 Attention over Attention结构示意图&/p&&p&
两个输入,一个Document和一个Query,分别用一个双向的RNN进行特征抽取,得到各自的隐状态h(doc)和h(query),然后基于query和doc的隐状态进行dot product,得到query和doc的attention关联矩阵。然后按列(colum)方向进行softmax操作,得到query-to-document的attention 值a(t);按照行(row)方向进行softmax操作,得到document-to-query的attention值b(t),再按照列方向进行累加求平均得到平均后的attention值b(t)。最后再基于上一步attention操作得到a(t)和b(t),再进行attention操作,即attention over attention得到最终query与document的关联矩阵。&/p&&p&&br&&/p&&p&&b&2.6 Multi-step Attention&/b&&/p&&p&
2017年,FaceBook 人工智能实验室的Jonas Gehring等人在论文《Convolutional Sequence to Sequence Learning》提出了完全基于CNN来构建Seq2Seq模型,除了这一最大的特色之外,论文中还采用了多层Attention Mechanism,来获取encoder和decoder中输入句子之间的关系,结构如图12所示。&/p&&figure&&img src=&https://pic1.zhimg.com/v2-b2374ccd8c0be_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&468& data-rawheight=&589& class=&origin_image zh-lightbox-thumb& width=&468& data-original=&https://pic1.zhimg.com/v2-b2374ccd8c0be_r.jpg&&&/figure&&p&图12 Multi-step Attention结构示意图&/p&&p&
完全基于CNN的Seq2Seq模型需要通过层叠多层来获取输入句子中词与词之间的依赖关系,特别是当句子非常长的时候,我曾经实验证明,层叠的层数往往达到10层以上才能取得比较理想的结果。针对每一个卷记得step(输入一个词)都对encoder的hidden state和decoder的hidden state进行dot product计算得到最终的Attention 矩阵,并且基于最终的attention矩阵去指导decoder的解码操作。&/p&&p&3. Attention的应用场景&/p&&p&
本节主要给出一些基于Attention去处理序列预测问题的例子,以下内容整理翻译自:&a href=&http://link.zhihu.com/?target=https%3A//machinelearningmastery.com/attention-long-short-term-memory-recurrent-neural-networks/& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&machinelearningmastery.com&/span&&span class=&invisible&&/attention-long-short-term-memory-recurrent-neural-networks/&/span&&span class=&ellipsis&&&/span&&/a&&/p&&p&&br&&/p&&p&&b&1.机器翻译&/b&&/p&&p&
给定一个法语句子做为输入序列,翻译并输出一个英文句子做为输出序列。Attention用于关联输出序列中每个单词与输入序列中的某个特定单词的关联程度。&/p&&p&
“我们扩展了传统的编码器-解码器结构,赋予decoder,在生成目标端(target)的词时,可以自动(软)搜索一组与之相关的输入序列的能力。这使得模型不必将整个源句子编码成一个固定长度的向量,并且还使模型只关注源端与下一个目标词的生成有关的信息。”&/p&&p&- Dzmitry Bahdanau等人,《Neural machine translation by jointly learning to align and translate》,2015。&/p&&figure&&img src=&https://pic4.zhimg.com/v2-016fb32bc75f4131a7dbf_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&819& data-rawheight=&901& class=&origin_image zh-lightbox-thumb& width=&819& data-original=&https://pic4.zhimg.com/v2-016fb32bc75f4131a7dbf_r.jpg&&&/figure&&p&
通过Attention来解释法语到英语单词之间的对应关系。摘自Dzmitry Bahdanau的论文&/p&&p&&br&&/p&&p&&b&2.图像标注(Image Caption)&/b&&/p&&p&
基于序列的Attention Mechanism可以应用于计算机视觉问题,以帮助理解如何最好地利用卷积神经网络来省长一段关于图片内容的描述,也称为Caption。&/p&&p&
给定输入图像,输出图像的英文描述。使用Attention是为输出序列中的每个单词关注图像中不同部分。&/p&&p&
“我们提出了一种基于Attention mechanism的方法,并在在三个标准数据集上都取得了最好的成绩...我们还展示了如何利用学到的Attention来提供更多对模型生成过程的解释,并且证明Attention学习到的对齐与人类视觉感知非常一致。”&/p&&p&
Kelvin Xu等人,《Attend and Tell: Neural Image Caption Generation with Visual Attention》, 2016&/p&&figure&&img src=&https://pic4.zhimg.com/v2-b5dcc336fabb_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&690& data-rawheight=&318& class=&origin_image zh-lightbox-thumb& width=&690& data-original=&https://pic4.zhimg.com/v2-b5dcc336fabb_r.jpg&&&/figure&&p&
基于Attention来解释,生成英文描述中某一个词时,与图片中某一区域的高度依赖关系。&/p&&p&&br&&/p&&p&&b&3. 蕴含关系推理(Entailment Reasoning)&/b&&/p&&p&
给定一个用英语描述前景描述(premise scenario)和假设(hypothesis),判读假设(premise)与假设(hypothesis)的关系:矛盾,相关或包含。&/p&&p&例如:&/p&&p&前提:“一场婚礼中拍照”&/p&&p&假设:“有人结婚”&/p&&p&
Attention被用来把假设中的每个单词与前提中的单词联系起来,反之亦然。&/p&&p&
“我们提出了一个基于LSTM的神经模型,它一次读取两个句子来确定两个句子之间的蕴含关系,而不是将每个句子独立映射到一个语义空间。我们引入逐字的(word-by-word)Attention Mechanism来扩展这个模型,来强化模型对单词或短语对的关系推理能力。该模型比传统的仅基于LSTM的模型高2.6个百分点,取得了一个最高成就”&/p&&p&-Tim Rockt?schel,《Reasoning about Entailment with Neural Attention》, 2016&/p&&figure&&img src=&https://pic1.zhimg.com/v2-a521cef39c5fdbbbce9bbe78d2cec9d4_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&850& data-rawheight=&461& class=&origin_image zh-lightbox-thumb& width=&850& data-original=&https://pic1.zhimg.com/v2-a521cef39c5fdbbbce9bbe78d2cec9d4_r.jpg&&&/figure&&p&
基于Attention来解释前提和假设中词与词之间的对应关系&/p&&p&&br&&/p&&p&&b&4. 语音识别&/b&&/p&&p&
给定一段英语语音片段做为输入序列,输出对应的音素序列。&/p&&p&
Attention被用联将输出序列中的每个音素与输入序列中的特定音频帧相关联。&/p&&p&
“基于混合Attention机制的新型端到端可训练语音识别体系结构,其结合内容和位置信息帮助选择输入序列中的下一个位置用于解码。所提出的模型的一个理想特性就是它可以识别比训练集中句子的更长的句子。”&/p&&p&-Jan Chorowski,《Attention-Based Models for Speech Recognition》, 2015.。&/p&&figure&&img src=&https://pic4.zhimg.com/v2-33df3bf4f2da45682eb07_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&811& data-rawheight=&213& class=&origin_image zh-lightbox-thumb& width=&811& data-original=&https://pic4.zhimg.com/v2-33df3bf4f2da45682eb07_r.jpg&&&/figure&&p&
基于Attention来解释输出音素与输入端的声音片段的对应关系&/p&&p&&br&&/p&&p&&b&5.文字摘要生成&/b&&/p&&p&
给定一篇英文文章做为输入顺序,输出一个总结英文文章注意内容的摘要句子。&/p&&p&
Attention用于将输出摘要中的每个单词与输入文档中的特定单词相关联。&/p&&p&
“将基于Attention的神经网络用语摘要抽取。我们将这个概率模型与可以产生准确的摘要的生成算法相结合。”&/p&&p&-Alexander M. Rush,《A Neural Attention Model for Abstractive Sentence Summarization》, 2015&/p&&figure&&img src=&https://pic1.zhimg.com/v2-3d936a14cc60eccd6be69fa9066cc3cc_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&454& data-rawheight=&434& class=&origin_image zh-lightbox-thumb& width=&454& data-original=&https://pic1.zhimg.com/v2-3d936a14cc60eccd6be69fa9066cc3cc_r.jpg&&&/figure&&p&
基于Attention来解释输入Sentence与输出Summary之间单词的对应关系&/p&&p&
Attention Mechanism现在应用非常广泛,这里就列出这几个case供大家参考。&/p&&p&&b&往期精品内容推荐:&/b&&/p&&p&&a href=&http://link.zhihu.com/?target=http%3A//mp.weixin.qq.com/s%3F__biz%3DMzIxNDgzNDg3NQ%3D%3D%26mid%3D%26idx%3D1%26sn%3D712df7bdece%26chksm%3D97a0c84ca0d7415aee9ef00f104665ccf8cf41bbb6b2f63dc2685c%26scene%3D21%23wechat_redirect& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&纯干货-17 分布式深度学习原理、算法详细介绍&/a& &/p&&p&&a href=&http://link.zhihu.com/?target=http%3A//mp.weixin.qq.com/s%3F__biz%3DMzIxNDgzNDg3NQ%3D%3D%26mid%3D%26idx%3D1%26sn%3D789a7e7e212c%26chksm%3D97a0c85da0d7414b0fdbdde559c0e17a4ef648a3edbdeb8a5f7f12e3c3dce10636%26scene%3D21%23wechat_redirect& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&老铁,邀请你来免费学习人工智能!!!&/a& &/p&&p&&a href=&http://link.zhihu.com/?target=http%3A//mp.weixin.qq.com/s%3F__biz%3DMzIxNDgzNDg3NQ%3D%3D%26mid%3D%26idx%3D1%26sn%3D2ac6eb322fca7ea22b1b%26chksm%3D97a0c89ea0dff97ef9e004d79f9%26scene%3D21%23wechat_redirect& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&模型汇总23 - 卷积神经网络中不同类型的卷积方式介绍&/a& &/p&&p&&a href=&http://link.zhihu.com/?target=http%3A//mp.weixin.qq.com/s%3F__biz%3DMzIxNDgzNDg3NQ%3D%3D%26mid%3D%26idx%3D1%26sn%3Dca6c48f3d2dc50f8876a%26chksm%3D97a0c8e8a0d741fed5cadeff9adcbf2f287a2dff2803%26scene%3D21%23wechat_redirect& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&吴恩达-斯坦福CS229机器学习课程-2017(秋)最新课程分享&/a& &/p&&p&&a href=&http://link.zhihu.com/?target=http%3A//mp.weixin.qq.com/s%3F__biz%3DMzIxNDgzNDg3NQ%3D%3D%26mid%3D%26idx%3D1%26sn%3Dcc3891ffbd94b5a87fd9dc9ab41849dd%26chksm%3D97a0c8b2a0d741a40961bdbcade710beb2feeedaea467a260b48a%26scene%3D21%23wechat_redirect& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&AI、神经网络、机器学习、深度学习和大数据的核心知识备忘录分享&/a& &/p&&p&&a href=&http://link.zhihu.com/?target=http%3A//mp.weixin.qq.com/s%3F__biz%3DMzIxNDgzNDg3NQ%3D%3D%26mid%3D%26idx%3D2%26sn%3Dccd8d2e7186ddd0fd2ee5a%26chksm%3D97a0c8f3a0d741e5ef78b7f4e49bcd4d%26scene%3D21%23wechat_redirect& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&深度学习(AI)在医疗领域应用、需求及未来发展概述&/a& &/p&&p&&a href=&http://link.zhihu.com/?target=http%3A//mp.weixin.qq.com/s%3F__biz%3DMzIxNDgzNDg3NQ%3D%3D%26mid%3D%26idx%3D1%26sn%3D2871fa98abebc102bd832%26chksm%3D97a0c8e4a0d741f25bf4c5fd942e734cad3a9ad7cbacd648aacd9d98e1ef4343%26scene%3D21%23wechat_redirect& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&斯坦福大学2017年-Spring-最新强化学习(Reinforcement Learning)课程分享&/a& &/p&&p&&a href=&http://link.zhihu.com/?target=http%3A//mp.weixin.qq.com/s%3F__biz%3DMzIxNDgzNDg3NQ%3D%3D%26mid%3D%26idx%3D1%26sn%3D34fda2ee9c43c77ad193%26chksm%3D97a0c8f5a0d741e3dbaea14e7ba02ba0c5bd9c3da3118cceed7b2df6b17d3b548%26scene%3D21%23wechat_redirect& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&麻省理工学院-2017年-深度学习与自动驾驶视频课程分享&/a& &/p&&p&&a href=&http://link.zhihu.com/?target=http%3A//mp.weixin.qq.com/s%3F__biz%3DMzIxNDgzNDg3NQ%3D%3D%26mid%3D%26idx%3D1%26sn%3Dbcbcff1a53fcb35fafd19d78%26chksm%3D97a0c8dfa0d741cc8f1d10aff7ddaf4f99101d79efdf59%26scene%3D21%23wechat_redirect& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&《纯干货16》调整学习速率以优化神经网络训练&/a& &/p&&p&&a href=&http://link.zhihu.com/?target=http%3A//mp.weixin.qq.com/s%3F__biz%3DMzIxNDgzNDg3NQ%3D%3D%26mid%3D%26idx%3D2%26sn%3D8eb1adc59839fcd5c0fbd3%26chksm%3D97a0c90ca0dbf7dec7ec96d315b22e36a6a4%26scene%3D21%23wechat_redirect& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&ICML17 Seq2Seqtutorial精品资料分享&/a& &/p&&p&&a href=&http://link.zhihu.com/?target=http%3A//mp.weixin.qq.com/s%3F__biz%3DMzIxNDgzNDg3NQ%3D%3D%26mid%3D%26idx%3D1%26sn%3Dfff812eeefbf7%26chksm%3D97a0c906a0d74010b9bef54fc38beb26cb229231cec34a5282cb3bcfaea3c130%26scene%3D21%23wechat_redirect& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&模型汇总20-TACOTRON一种端到端的Text-to-Speech合成模型&/a& &/p&&p&&a href=&http://link.zhihu.com/?target=http%3A//mp.weixin.qq.com/s%3F__biz%3DMzIxNDgzNDg3NQ%3D%3D%26mid%3D%26idx%3D1%26sn%3Dbea944ccfece6a96f1f41a2%26chksm%3D97a0c90fa0d74019dc8fecdcb483acaaff611b27be7b79a7efd3f1faascene%3D21%23wechat_redirect& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&深度学习与NLP 深度学习|机器学习|人工智能 精品视频教程合集分享&/a& &/p&&p&&a href=&http://link.zhihu.com/?target=http%3A//mp.weixin.qq.com/s%3F__biz%3DMzIxNDgzNDg3NQ%3D%3D%26mid%3D%26idx%3D1%26sn%3Dcb21cd1a0dbbeadf04aeae%26chksm%3D97a0c9aba0d740bda5caaaae8c8c37e1b49e8fd23df%26scene%3D21%23wechat_redirect& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&优化策略5 Label Smoothing Regularization_LSR原理分析&/a&&/p&
Attention是一种用于提升基于RNN(LSTM或GRU)的Encoder + Decoder模型的效果的的机制(Mechanism),一般称为Attention Mechanism。Attention Mechanism目前非常流行,广泛应用于机器翻译、语音识别、图像标注(Image Caption)等很多领域,之所以它这么受…
&figure&&img src=&https://pic1.zhimg.com/v2-ea3bccb38ab_b.jpg& data-rawwidth=&2594& data-rawheight=&1110& class=&origin_image zh-lightbox-thumb& width=&2594& data-original=&https://pic1.zhimg.com/v2-ea3bccb38ab_r.jpg&&&/figure&&p&阅读理解系列的框架很多大同小异,但这篇 paper 真心觉得精彩,虽然并不是最新最 state-of-art~&/p&&p&现在大多数的阅读理解系统都是 top-down 的形式构建的,也就是说一开始就提出了一个很复杂的结构(一般经典的就是 &b&emedding-, encoding-, interaction-, answer-layer&/b&),然后通过 ablation study,不断的减少一些模块配置来验证想法,大多数的创新点都在 interaction 层。而这篇 paper 提供了抽取式 QA 基于神经网络的两个 baseline,BoW- 和 RNN-based nerual QA (FastQA) ,创新的以 bottom-up 的方式分析了框架复杂性以及主流 interaction layer 的作用。&/p&&p&一个基本认识,构建好的 QA 系统必不可少的两个要素是:&/p&&ol&&li&在处理 context 时对 question words 的意识&/li&&li&有一个超越简单的 bag-of-words modeling 的函数,像是 RNN&/li&&/ol&&p&另外,作者还发现了很多看似复杂的问题其实通过简单的 context/type matching heruistic 就可以解出来了,过程是选择满足条件的 answer spans:&/p&&ol&&li&&b&与 question 对应的 answer type 匹配&/b&&br&比如说问 when 就回答 time&/li&&li&&b&与重要的 question words 位置上临近&/b&&br&如下图的 St. Kazimierz Church&/li&&/ol&&figure&&img src=&https://pic3.zhimg.com/v2-c92ccd153cf_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&764& data-rawheight=&318& class=&origin_image zh-lightbox-thumb& width=&764& data-original=&https://pic3.zhimg.com/v2-c92ccd153cf_r.jpg&&&/figure&&p&&br&FastQA 的表现对额外的复杂度,尤其是 interaction 的复杂交互,提出了质疑。&/p&&h2&A BoW Neural QA System&/h2&&p&比照传统思路来构建。&/p&&p&&b&1.
Embedding&/b&&br&词向量和字向量的拼接,字向量用 CNN 进行训练,&img src=&https://www.zhihu.com/equation?tex=x%3D%5Bx%5Ew%3B+x%5Ec%5D+%5Cin+R%5Ed& alt=&x=[x^w; x^c] \in R^d& eeimg=&1&&&/p&&p&&b&2.
Type matching&/b&&br&抽取 question words 得到 lexical answer type(LAT)。抽哪些?&/p&&ul&&li&who, when, why, how, how many, etc.&/li&&li&what, which 后面的第一个名词短语,如 what year did…&/li&&/ul&&p&将 LAT 的第一个和最后一个单词的 embedding,以及 LAT 所有单词的平均的 embedding 拼接起来,再通过全连接层和 tanh 做一个非线性变换得到 &img src=&https://www.zhihu.com/equation?tex=%5Chat+z& alt=&\hat z& eeimg=&1&&。&br&用同样方法对每个 potential answer span(s, e) 做编码。所有 span,最长为 10 个单词,同样把 span 里第一个和最后一个单词的 embedding 和所有单词的 embedding 进行拼接,又因为 potential answer span 周围的单词会对 answer span type 提供线索(比如上文提到的 St. Kazimierz Church),所以额外的拼接了 span 往左、往右 5 个单词的平均 embedding,这样一共就是 5 个 embedding,接 FC 层和 tanh 非线性变换,得到 &img src=&https://www.zhihu.com/equation?tex=%5Chat+x_%7Bs%2Ce%7D& alt=&\hat x_{s,e}& eeimg=&1&&&br&最后,拼接 LAT 和 span 的表示,&img src=&https://www.zhihu.com/equation?tex=%5B%5Chat+z%3B+%5Chat+x_%7Bs%2C+e%7D%3B+%5Chat+z+%5C+%E2%98%89+%5C+%5Chat+x_%7Bs%2Ce%7D%5D& alt=&[\ \hat x_{s, e}; \hat z \ ☉ \ \hat x_{s,e}]& eeimg=&1&&,用一个前馈网络计算每个 span(s,e) 和 LAT 的分数 &img src=&https://www.zhihu.com/equation?tex=g_%7Btype%7D%28s%2Ce%29& alt=&g_{type}(s,e)& eeimg=&1&&&/p&&p&&b&3. Context Matching&/b&&br&引入两个 word-in-question 特征,对 context 中的每个单词 &img src=&https://www.zhihu.com/equation?tex=x_j& alt=&x_j& eeimg=&1&&&/p&&ul&&li&&b&binary&/b&&br&&img src=&https://www.zhihu.com/equation?tex=wiq%5Eb& alt=&wiq^b& eeimg=&1&& ,如果 &img src=&https://www.zhihu.com/equation?tex=x_j& alt=&x_j& eeimg=&1&& 出现在了 question 中,就为 1,否则为 0&/li&&li&&b&weighted&/b&&br&计算 &img src=&https://www.zhihu.com/equation?tex=q_i& alt=&q_i& eeimg=&1&& 和 &img src=&https://www.zhihu.com/equation?tex=x_j& alt=&x_j& eeimg=&1&& 的词向量相似性&/li&&/ul&&figure&&img src=&https://pic2.zhimg.com/v2-10eb29d0f5f5cce7652b_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&762& data-rawheight=&252& class=&origin_image zh-lightbox-thumb& width=&762& data-original=&https://pic2.zhimg.com/v2-10eb29d0f5f5cce7652b_r.jpg&&&/figure&&p&Softmax 保证了 infrequent occurrences of words are weighted more heavily.&br&对每个 answer span(s,e),计算往左、往右 5/10/20 token-windows 内 &img src=&https://www.zhihu.com/equation?tex=wiq%5Eb& alt=&wiq^b& eeimg=&1&& 和 &img src=&https://www.zhihu.com/equation?tex=wiq%5Ew& alt=&wiq^w& eeimg=&1&& 的平均分数,也就是计算 2(kind of features)
&i&3(windows)&/i& 2(left/right)=12个分数的加权和得到 context-matching score &img src=&https://www.zhihu.com/equation?tex=g_%7Bctxt%7D%28s%2Ce%29& alt=&g_{ctxt}(s,e)& eeimg=&1&&,各分数的权重由训练得到&/p&&p&&b&4.
Answer span scoring&/b&&br&最后每个 span(s,e) 的分数就是 type matching score 和 context matching score 的和&br&&img src=&https://www.zhihu.com/equation?tex=g%28s%2Ce%29%3Dg_%7Btype%7D%28s%2Ce%29%2Bg_%7Bctxt%7D%28s%2Ce%29& alt=&g(s,e)=g_{type}(s,e)+g_{ctxt}(s,e)& eeimg=&1&&&/p&&p&最小化 softmax-cross-entropy loss 进行训练。&/p&&h2&FastQA&/h2&&p&上面的方法中语义特征完全被缩减成了 answer-type 和 word-in-question features,另外 answer span 也受到了长度限制,对语义的捕捉很弱。&/p&&p&BiRNN 在识别 NER 上面非常有优势,context matching 也可以通过给 BiRNN 喂 wiq-features 得到,answer-type 会间接由网络学习得到。&/p&&p&模型相对简单,就三层 &b&embedding-, encoding-, answer layer&/b&。&/p&&figure&&img src=&https://pic3.zhimg.com/v2-2dfa527c9e90c6d33b6e3e_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&2594& data-rawheight=&1110& class=&origin_image zh-lightbox-thumb& width=&2594& data-original=&https://pic3.zhimg.com/v2-2dfa527c9e90c6d33b6e3e_r.jpg&&&/figure&&p&&b&1.
Embedding&/b&&br&和 BoW baseline 相同。&/p&&p&&b&2.
Encoding&/b&&br&为了让 question 和 context embedding 可以交互,先映射到 n 维向量,再过一个 highway layer。&/p&&figure&&img src=&https://pic2.zhimg.com/v2-f1d9af35d261ce64ff89e_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&782& data-rawheight=&276& class=&origin_image zh-lightbox-thumb& width=&782& data-original=&https://pic2.zhimg.com/v2-f1d9af35d261ce64ff89e_r.jpg&&&/figure&&p& 然后加上 wiq features&/p&&figure&&img src=&https://pic2.zhimg.com/v2-9ee5b385bcb77f575e25_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&894& data-rawheight=&100& class=&origin_image zh-lightbox-thumb& width=&894& data-original=&https://pic2.zhimg.com/v2-9ee5b385bcb77f575e25_r.jpg&&&/figure&&p& 再一起过一个 BiRNN,输出再做个 projection&/p&&figure&&img src=&https://pic4.zhimg.com/v2-2ae3bd3304afa647b84e77e00a4c3664_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&796& data-rawheight=&202& class=&origin_image zh-lightbox-thumb& width=&796& data-original=&https://pic4.zhimg.com/v2-2ae3bd3304afa647b84e77e00a4c3664_r.jpg&&&/figure&&p&初始化 project matrix B 为 &img src=&https://www.zhihu.com/equation?tex=%5BI_n%3B+I_n%5D& alt=&[I_n; I_n]& eeimg=&1&&,&img src=&https://www.zhihu.com/equation?tex=I_n& alt=&I_n& eeimg=&1&& 是 n 维的 identity matrix,H 是 forawrd 和 backward LSTM 的输出的加和。&br&question 和 context 的参数共享,question 对应的两个 wiq 特征设为 1。projection matrix B 不共享。&/p&&p&&b&3.
Answer layer&/b&&br&context x &img src=&https://www.zhihu.com/equation?tex=H%3D%5Bh_1%2C...%2Ch_%7BL_X%7D%5D& alt=&H=[h_1,...,h_{L_X}]& eeimg=&1&&&br&question q &img src=&https://www.zhihu.com/equation?tex=Z%3D%5BZ_1%2C...Z_%7BL_Q%7D%5D& alt=&Z=[Z_1,...Z_{L_Q}]& eeimg=&1&&&br&对 Z 做一个变换,同样是 context-independent&/p&&figure&&img src=&https://pic2.zhimg.com/v2-94c4354e1dea8a3c00b9ffa_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&702& data-rawheight=&210& class=&origin_image zh-lightbox-thumb& width=&702& data-original=&https://pic2.zhimg.com/v2-94c4354e1dea8a3c00b9ffa_r.jpg&&&/figure&&p& answer 的开始位置的概率 &img src=&https://www.zhihu.com/equation?tex=p_s& alt=&p_s& eeimg=&1&& 由 2 个前馈网络加一个 ReLU 激活得到。&/p&&figure&&img src=&https://pic4.zhimg.com/v2-6d656ee51bbd8b0dcdde_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&718& data-rawheight=&192& class=&origin_image zh-lightbox-thumb& width=&718& data-original=&https://pic4.zhimg.com/v2-6d656ee51bbd8b0dcdde_r.jpg&&&/figure&&p& 结束位置:&/p&&figure&&img src=&https://pic2.zhimg.com/v2-388fe1ddfa93c423d5722e_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&876& data-rawheight=&182& class=&origin_image zh-lightbox-thumb& width=&876& data-original=&https://pic2.zhimg.com/v2-388fe1ddfa93c423d5722e_r.jpg&&&/figure&&p&&img src=&https://www.zhihu.com/equation?tex=p%28s%2Ce%29%3Dp_s%28s%29%E2%80%A2p_e%28e%7Cs%29& alt=&p(s,e)=p_s(s)op_e(e|s)& eeimg=&1&&&/p&&p&最小化 p(s,e) 的交叉熵来训练。&/p&&p&在预测的时候,可以用 beam-search。&/p&&h2&FastQA Extended&/h2&&p&相当于主流模型的 &b&interaction layer&/b&。对当前的 context state,考虑和剩下的 context(intra)或者和 question(inter)做注意力计算,将其余 context/question 的信息融入当前 context。&/p&&ul&&li&&b&Intra-fustion&/b&&br&between passages of the context&/li&&li&&b&Inter-fusion&/b&&br&between question and context&/li&&/ul&&p&实验结果:&/p&&figure&&img src=&https://pic2.zhimg.com/v2-acf3968c1b_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1274& data-rawheight=&1296& class=&origin_image zh-lightbox-thumb& width=&1274& data-original=&https://pic2.zhimg.com/v2-acf3968c1b_r.jpg&&&/figure&&p&&br&&/p&&figure&&img src=&https://pic3.zhimg.com/v2-c12d156adcdf_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1240& data-rawheight=&1452& class=&origin_image zh-lightbox-thumb& width=&1240& data-original=&https://pic3.zhimg.com/v2-c12d156adcdf_r.jpg&&&/figure&&p&&br&&/p&&p&&b&一些小结论:&/b&&/p&&ol&&li&简单的 &img src=&https://www.zhihu.com/equation?tex=wiq%5Eb& alt=&wiq^b& eeimg=&1&& 特征能大幅度提升 performance,原因是让 encoder 有了真实 question 的部分知识后,encoder 就可以有选择性的追踪问题相关的信息并进一步将具体的实体抽象为对应的类型,如果在问题中提到了人名,那么 context encoder 就会记住 “question-person” 而不是具体名字。&/li&&li&Beam-search 可以微弱提升结果,因为最可能的开始位置不一定是最好的 answer span&/li&&li&额外的 character embedding 对结果有显著提升&/li&&li&进一步的 fusion 对结果也有帮助,但并没有那么显著&/li&&/ol&&p&讨论 &b&Do we need additional interaction?&/b&&br&对比试验,FastQA 与 FastQAExt 和 DCN 相比,快两倍,而且少 2-4 倍的显存。分析了结果发现 FastQAExt 泛化能力更强些,但并没有 systematic advantage,并不会对某类问题(主要分析了推理)有一致性的提升。&/p&&h2&Qualitative Analysis&/h2&&p&对 FastQA 的错误结果进行了一些分析,大部分的错误来自:&/p&&ol&&li&缺乏对句法结构的理解&/li&&li&不同词位相似语义的词的细粒度语义之间的区分&/li&&/ol&&p&其他很多的错误也是来自人工标注偏好。&/p&&p&举了一些典型的错误例子,像 例1 是缺乏对某些答案类型的细化理解。例2 缺乏指代消解和上下文缩略语的认识,例3 模型有时难以捕捉基本的句法结构,尤其是对于重要的分隔符如标点符号和连词被忽略的嵌套句子&/p&&figure&&img src=&https://pic2.zhimg.com/v2-9f36021bcf0fc485e39befe_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&990& data-rawheight=&1118& class=&origin_image zh-lightbox-thumb& width=&990& data-original=&https://pic2.zhimg.com/v2-9f36021bcf0fc485e39befe_r.jpg&&&/figure&&p&&br&&/p&&p&现有 top-down 模型用到实际业务当中通常需要为了 fit 进显存或者是满足一定的响应时间而进行模型的各种简化,FastQA 在显存占用和响应速度上有着绝对优势,感觉还是非常有意义的~&/p&&p&&br&&/p&&p&博客: &a href=&https://link.zhihu.com/?target=http%3A//www.shuang0420.com/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&www.shuang0420.com&/a&&br&公众号: xu_a_heng&/p&&p&&br&&/p&&figure&&img src=&https://pic4.zhimg.com/v2-b83b430cbeb686f29cbd7_b.jpg& data-size=&normal& data-rawwidth=&270& data-rawheight=&270& class=&content_image& width=&270&&&figcaption&欢迎关注公众号:徐阿衡&/figcaption&&/figure&&p&&/p&
阅读理解系列的框架很多大同小异,但这篇 paper 真心觉得精彩,虽然并不是最新最 state-of-art~现在大多数的阅读理解系统都是 top-down 的形式构建的,也就是说一开始就提出了一个很复杂的结构(一般经典的就是 emedding-, encoding-, interaction-, answer…
&figure&&img src=&https://pic3.zhimg.com/v2-fbc2da9a131dc3e6cd255_b.jpg& data-rawwidth=&720& data-rawheight=&271& class=&origin_image zh-lightbox-thumb& width=&720& data-original=&https://pic3.zhimg.com/v2-fbc2da9a131dc3e6cd255_r.jpg&&&/figure&&p&选自arXiv,作者:Yangfan Hu等,机器之心编译。&/p&&blockquote&脉冲神经网络(SNN)具有生物学上的合理性,并且其计算潜能和传统神经网络相同,主要障碍在于训练难度。为解决这个问题,浙江大学和四川大学近日提出了脉冲版的深度残差网络 Spiking ResNet。为解决模型转换的问题,研究者提出了一种新机制,对连续值的激活函数进行标准化,以匹配脉冲神经网络中的脉冲激发频率,并设法减少离散化带来的误差。在多个基准数据集上的实验结果表明,该网络取得了脉冲神经网络的当前最佳性能。&/blockquote&&p&&br&&/p&&p&&b&引言&/b&&/p&&p&研究表明,&a href=&http://link.zhihu.com/?target=http%3A//mp.weixin.qq.com/s%3F__biz%3DMzA3MzI4MjgzMw%3D%3D%26mid%3D%26idx%3D2%26sn%3Df7ee0d4df620dd6dd0a9e503dff0135b%26chksm%3D871ac24ab06d4b5c019d30ffa89a21c088a31c3c7e01e40d33ff4de4cb%26scene%3D21%23wechat_redirect& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&脉冲神经网络&/a& [21] 是一种弥合模型性能和计算开销之间鸿沟的解决方案。从理论上讲,脉冲神经网络可以像人工神经网络(ANN)一样逼近任意的函数。与传统的人工神经网络(ANN)不同,脉冲神经网络的神经元通过离散的事件(尖峰脉冲)而不是连续值的激活函数来相互通信。当事件到达时,这个系统会被异步更新,从而减少在每个时间步上所需要的运算步数。最新的研究进展表明,脉冲神经网络可以通过像 TrueNorth [24],SpiNNaker[9],以及 Rolls [26] 这样的神经形态的硬件来模拟,其能量消耗比当前的计算机硬件少几个数量级。此外,由于其基于事件的特性,脉冲神经网络天生就适合处理从具有低冗余、低延迟和高动态范围的基于 AER(地址时间表达)的传感器那里得到的输入数据,例如:动态视觉传感器(DVS)[19] 和听觉传感器(硅耳蜗)[20]。最近的一项研究 [28] 指出,脉冲立体神经网络的实现比基于经典绝对误差和(SAD)算法的微控制器的实现少消耗大约一个数量级的能量。&/p&&p&如今,脉冲神经网络所面临的一大挑战是如何找到一种有效的训练算法,克服脉冲的不连续性,并且获得和人工神经网络(ANN)相当的性能。转换方法,即通过训练一个传统的人工神经网络并建立一个转换算法,将权重映射到一个等价的脉冲神经网络中去,取得了迄今为止最好的性能。然而,对一个非常深的人工神经网络进行转换的难题在这之前从未被解决过。 &/p&&p&在本文中,

我要回帖

更多关于 gt i8190n 的文章

 

随机推荐