作家
登录

使用TENSORFLOW训练循环神经网络语言模型

作者: 来源: 2017-08-29 09:10:08 阅读 我要评论

应用TENSORFLOW练习轮回神经收集说话模型

读了将近一个下昼的TensorFlow Recurrent Neural Network教程,翻看其在PTB上的实现,感到晦涩难解,是以参考了部分代码,本身写了一个简化版的Language Model,思路借鉴了Keras的LSTM text generation。

代码地址:Github

转载请注明出处:Gaussic

说话模型

Language Model,即竽暌癸言模型,其重要思惟是,在知道前一部分的词典情况下,揣摸出下一?最有可能出现的词。例如,知道了 The fat cat sat>

  • p(The,fat)=p(The)⋅p(fat|The)p(The,fat)=p(The)·p(fat|The) 
  • 这个结合概率,就是The fat的合理性,即这句话的出现符不相符天然说话的评判标准,通俗点表述就是这是不是句人话。同理,根据链式规矩,The fat cat的结合概率可求: 
    1. p(The,fat,cat)=p(The)⋅p(fat|The)⋅p(cat|The,fat)p(The,fat,cat)=p(The)·p(fat|The)·p(cat|The,fat) 
    在知道前面的词为The cat的情况下,下一?词为cat的概率可以推导出来: 
    1. we 're talking about years ago before anyone heard of asbestos having any questionable properties 
    2. there is no asbestos in our products now 
    3. neither <unk> nor the researchers who studied the workers were aware of any research on smokers of the kent cigarettes 
    4. we have no useful information on whether users are at risk said james a. <unk> of boston 's <unk> cancer institute 
    5. the total of N deaths from malignant <unk> lung cancer and <unk> was far higher than expected the researchers said 
    攫取文件中的数据,将换行符转换为<eos>,然后转换为词典list: 
    1. p(cat|The,fat)=p(The,fat,cat)p(The,fat)p(cat|The,fat)=p(The,fat,cat)p(The,fat) 
    分子是The fat cat在语料库中出现的次数,分母是The fat在语料库中出现的次数。是以,The fat cat sat>
  • p(S)=p(w1,w2,⋅⋅⋅,wn)=p(w1)⋅p(w2|w1)⋅p(w3|w1,w2)⋅⋅⋅p(wn|w1,w2,w3,⋅⋅⋅,wn−1)p(S)=p(w1,w2,···,wn)=p(w1)·p(w2|w1)·p(w3|w1,w2)···p(wn|w1,w2,w3,···,wn−1) 
  • (公式后的n-1应当为下标,插件问题,下同) 可以看出一个问题,每当计算下一?词典前提概率,须要计算前面所有词典结合概率。这个计算量相当的宏大年夜。并且,一个句子中大年夜部分词同时出现的概率往往少之又少,数据稀少异常严重,须要一个异常大年夜的语料库来练习。 一个简单的优化是基于马尔科夫假设,下一?词典出现仅与前面的一个或n个词有关。 最简单的情况,下一?词典出现仅仅和前面一个词有关,称之为bigram。 
    1. p(S)=p(w1,w2,⋅⋅⋅,wn)=p(w1)⋅p(w2|w1)⋅p(w3|w2)⋅p(w4|w3)⋅⋅⋅p(wn|wn−1)p(S)=p(w1,w2,···,wn)=p(w1)·p(w2|w1)·p(w3|w2)·p(w4|w3)···p(wn|wn−1) 
    再复杂点,下一?词典出现仅和前面两个词有关,称之为trigram。 
    1. p(S)=p(w1,w2,⋅⋅⋅,wn)=p(w1)⋅p(w2|w1)⋅p(w3|w1,w2)⋅p(w4|w2,w3)⋅⋅⋅p(wn|wn−2,wn−1)p(S)=p(w1,w2,···,wn)=p(w1)·p(w2|w1)·p(w3|w1,w2)·p(w4|w2,w3)···p(wn|wn−2,wn−1) 
    2.  1/9    1 2 3 4 5 6 下一页 尾页

        推荐阅读

        调试神经网络让人抓狂?这有16条锦囊妙计送给你

      应用网格搜刮或随机搜刮或设备文件来调剂超参数 不要手动检查所有的参数,如许耗时并且低效。我平日对所有参数应用全局设备,检查运行结不雅之后,我拒绝一步研究改进的偏向。如不雅这种办法没有赞助,那么你可以应>>>详细阅读


      本文标题:使用TENSORFLOW训练循环神经网络语言模型

      地址:http://www.17bianji.com/lsqh/36985.html

    关键词: 探索发现

    乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

    网友点评
    自媒体专栏

    评论

    热度

    精彩导读
    栏目ID=71的表不存在(操作类型=0)