层序softmax解释

参考:
https://www.cnblogs.com/pinard/p/7243513.html (讲得不错)

https://www.jianshu.com/p/5ad3e97d54a3 (哈夫曼树介绍,左右节点应该是可以互换的)

对于层序softmax来说,是将原来的softmax层以及对应的权重系数矩阵去掉了,采用哈夫曼树替代,哈夫曼树的结构是基于语料库里词的频率构建的(语料库这个是自己想的不一定正确),出现次数多的词在哈夫曼树的前面,出现次数很少的词在哈夫曼树的后面。此时对于哈夫曼树的每一个节点都是一个logistic层,输入是词向量(所有节点的输入都是相同的词向量,即当前输入的词向量300维),输出是正类或者负类,每个节点都包含自己的logistic参数矩阵,这样对于一次训练进行更新时只需要更新从根节点到当前页节点路径上所有节点的参数矩阵即可,复杂度降低了。同时由于高频词在离根节点较近的地方,因此大部分词都不需要走完哈夫曼树的最大深度,只需要更新浅层的权重即可。

你可能感兴趣的:(nlp)