在theano的关于RNN的教程中,最后一部分提到了这一点
我们通过在每次更新后对它们进行规范化,将单词嵌入保留在单位范围内:
self.normalize = theano.function(inputs=[],
updates={self.emb:
self.emb /
T.sqrt((self.emb**2)
.sum(axis=1))
.dimshuffle(0, 'x')})
.sum(axis=1))
.dimshuffle(0, 'x')})
我在网上搜索,只找到了论文Investigation of Recurrent-Neural-Network Architectures and Learning Methods for Spoken Language Understanding提到它是第3.5.1节中的微调词嵌入 .
我不明白为什么我们可以微调字嵌入 . self.emb
是这个RNN模型的输入,对吗?我们怎样才能改变输入值?
1 回答
我遇到了这个问题,这是我的理解:
实际上
self.emb
不仅仅是RNN的输入,它还喜欢参数(或word2vec中的向量)的一部分,这些参数经过训练以适合ATIS中的单词 .当我们将其视为参数时,微调是合理的 .
但是,当我们将其视为输入时,规范化变得合理 .
另外,我阅读了你提到的论文,我认为微调不包含规范化,因为微调是一种监督学习,但规范化只是一种数据处理 .