zoukankan      html  css  js  c++  java
  • LSTM 分类器笔记及Theano实现

    相关讨论

    http://tieba.baidu.com/p/3960350008

    基于教程
    http://deeplearning.net/tutorial/lstm.html

    LSTM基本原理
    http://tieba.baidu.com/p/3405569985
    GRAVES 教程 http://www.cs.toronto.edu/~graves/preprint.pdf
    因为原教程有些不太直观的地方,展开讲一下
    目的:根据IMDB影评网站扒取的文本,及文本对应的对电影的评分(一颗星到五颗星)作为训练集;得到自动分析文本情绪的LSTM分类器;可用来分析任意文本的情绪(积极或消极)
     

    理论部分:

    模型的时间展开图:




    如果一句话有n个词,那么将这n个词用维数为d的向量表示,分别为x0到xn;

    这里的LSTM方框是一个又m个LSTM节点组成的阵列;m是模型中LSTM节点的总数。
    也就是说x0箭头所指的LSTM和x1所指的LSTM是同一个阵列,只不过它们发生在不同的时间。可以认为这个模型运行了n个时间单位(n为文本长度),每个时间单位t上,LSTM阵列的输入为xt,输出为ht, 其中t<=n;
    Mean pooling是对所有时间单位上的ht的平均,得到向量h,再用逻辑回归分类。


    如果对上图x0到LSTM到h0放大就是这个样子;其中LSTM阵列中包含m个LSTM单元;
    而其中每个单元如L1,有4组输入权重(均为n维向量)与x0连接,且有4组输入权重(均为m维向量)与h0连接。L1将输出一个数作为h0中的第一个元素;
    将L1部分再展开:



    L1的输入有8个,4个来自xt,分别为xt*Wc, xt*Wi, xt*Wf, xt*Wo; 4个来自h(t-1)分别为ht-1*Uc, ht-1*Ui, ht-1*Uf, ht-1*Uo; 而L1的输出为ht 的一个元素


    将L1单个节点展开
    其中包含6个标量,分别为 ilde{Ct}, it, Ct, ft, ot, ht
    其中展开it为 sigmoid(Wixt + Uiht-1),纸面有限其他的不画了
     

    权值更新

    连接和计算方法如下

    这样在每个时间点t,xt对LSTM阵列的输入权重为4个d*m的矩阵,而ht-1对LSTM阵列的输入权重为4个m*m的矩阵。经过计算后生成ht。
    权值更新:
    在每一个minibatch,在此例中一个minibatch是16句话(每句话小于100个词多余删掉),计算出logistic regression的cost,然后计算出h 的残差;
    并计算出对应的Δh1,Δh2,... Δht
    而由于ht和,ht-1存在某种函数关系,能够计算出与Δht对应的Δht-1',这一来自LSTM阵列的惨差应该与来自Δh的残差合并,并继续做误差反传;

    即对于每个minibatch,权重应该更新了t次,t即是每句话词的数量;

    我double check了一下,理解是正确的;reference:
    DLBOOK(2015)page 315

    http://www.iro.umontreal.ca/~bengioy/DLbook/rnn.html
    Theano中权值更新通过theano.scan实现参考
    http://deeplearning.net/software/theano/library/scan.html

    keras包

    然而keras包(基于theano)搞同样的东西只要30行代码
    https://github.com/fchollet/keras/blob/master/examples/imdb_lstm.py

    测试:

    keras 文本生成器
    https://github.com/fchollet/keras/blob/master/examples/lstm_text_generation.py
    双层LSTM 示例
    lalala
  • 相关阅读:
    CSU-ACM2020寒假集训比赛2
    js动画(一)
    响应式基本知识
    移动web基本知识
    premere cs4绿色版 安装 并且 视频导出 讲解
    样式重置
    html5图片标签与属性
    我眼中的科研
    Chrome浏览器上无法使用西瓜影音???
    双系统引导菜单设置
  • 原文地址:https://www.cnblogs.com/Pallashadow/p/4844042.html
Copyright © 2011-2022 走看看