以下为座谈,即瞎聊,应用通俗的说话来谈谈神经收集模型中4种序列解码模型,主如果大年夜整体概念和思路长进行通俗解释赞助懂得。预警,以下可能为恋氐懒就不贴公式了,一些细节也被略过了,感兴趣的可以直接去浏览原文[1][2][3]。
[1] Sequence to Sequence Learning with Neural Networks
[2] Learning Phrase Representations using RNN Encoder–Decoder for Statistical Machine Translation
[3] Neural Machine Translation by Jointly Learning to Align and Translate
应用神经收集进行序列编码的模型重要为RNN,今朝比较火的一些变种模型有LSTM和GRU,只是cell单位不合罢了。以下一切用RNN来代表。
编码模型比较简单,如下图所示,输入文本{X1-X6}经由轮回迭代编码,在每个时刻获得当前时刻的一个隐层状况,最后序列停止落后行特点融合获得句子的表示。留意,一种比较常用的方法是将编码模型最后一个时刻的隐层状况做为全部序列的编码表示,然则实际应用中这种效不雅并不太好,因而我们的图例中直接采取了全部序列隐层编码进行乞降平均的方法获得序列的编码向量。
简单直不雅并且解码模型和编码模型并没有任何差别,然而学者感到该模型并不优雅,那么接下来我们就来介绍一些精细点的吧。
早期的一些义务主如果做一些主题分类、情感检测等等分类义务,那么在编码向量膳绫擎添加一个softmax就可以解决问题。然则对于机械翻译和语音辨认等问题则须要进行序列化解码。
留意到,编码时RNN每个时刻除了本身上一时刻的隐层状况编码外,还有当前时刻的输入字符,而解码时则没有这种输入。那么,一种比较直接的方法是把编码端获得的编码向量做为解码模型的每时刻输入特点。如下图所示:
起首我们假设输入文本是所学教材,编码端则是对教材的懂得所整顿的教室标记。解码端的隐层神经统??是我们的大年夜脑,而每一时刻的输出则是测验时要写在卷子上的谜底。在膳绫擎最简单的解码模型中,可以推敲成是测验时一边写谜底一边翻看教室标记。如不雅这是一般作弊学生的做法,学霸则不须要翻书,他们有一个强大年夜的大年夜脑神经收集,可以记住本身的教室标记。解码时只须要回想一下本身前面写过什么,然后依次卖力的把谜底写在答卷上,就是下面这种模型了[1]:
个中,第一种解码模型为 通俗作弊,第二种解码模型为 学霸模式,第三种解码模型为 学弱作弊,第四种解码模型为 学渣作弊。
还有很多学弱,他们不只须要作弊,并且翻看标记的时刻还须要回想本身上一时刻写在答卷上的谜底(学弱嘛,的确弱到连本身上一时刻写在答卷汕9依υ?字都记不住了),就是下面的答题模式了[2]:
然而学渣渣也是存在的,他们不只须要作弊,不只须要回想本身上一时刻卸载答卷上的谜底,还须要师长教师在教材上画稳重点才能整顿出本身的课题标记(这就是一种留意力机制Attention,记标记的时刻必定要根据考题画稳重点啊!),真的很照顾渣渣了,他们的答题模式如下[3]:
可见,除了学霸以外,其他人都作弊了,在答题的时刻翻看教室标记(很多文献中叫这种解码模型构造为peek(偷看),是不是很像在作弊?),并且学渣渣还去找过师长教师给画过重点,有了清跋扈的重点之后就不消翻书偷看了,瞄一眼就可以了,文献中叫glimpse(一瞥),是不是很像?
如不雅我们将他们的大年夜脑收集设定为同样构造的话(将他们的IQ强迫保持一致),肯定是作弊的同窗得分最高了,学霸模式好吃亏啊。我们来简单做一个模型测试。
测试数据:
输入序列文本 = [‘1 2 3 4 5’
, ‘6 7 8 9 10′
, ’11 12 13 14 15′
, ’16 17 18 19 20′
, ’21 22 23 24 25’]
目标序列文本 = [‘one two three four five’
, ‘eleven twelve thirteen fourteen fifteen’
, ‘sixteen seventeen eighteen nineteen twenty’
, ‘twenty_one twenty_two twenty_three twenty_four twenty_five’]
设定一些参数如下:
–
(‘Vocab size:’, 51, ‘unique words’)
(‘Input max length:’, 5, ‘words’)
(‘Target max length:’, 5, ‘words’)
(‘Dimension of hidden vectors:’, 20)
(‘Number of training stories:’, 5)
我们用测验作弊来做为一个通俗的例子来解释一下模型。
(‘Number of test stories:’, 5)
–
不雅察练习过程:
, ‘six seven eight nine ten’
推荐阅读
如何使用batch-import工具向neo4j中导入海量数据
【引自T_SevenS的博客】在开辟neo4j的过程中,经常会有同窗问若何向neo4j中导入大年夜量的汗青数据,而这些数据一般都邑存在于关系型数据库中,如今本人就根据本身的导入经历,把导入的过>>>详细阅读
本文标题:漫谈四种神经网络序列解码模型以及示例代码
地址:http://www.17bianji.com/lsqh/34942.html
1/2 1