LSTM 分类器笔记及Theano实现
相关讨论
http://tieba.baidu.com/p/3960350008
基于教程
http://deeplearning.net/tutorial/lstm.html
目的:根据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的输入有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个标量,分别为\tilde{Ct}, it, Ct, ft, ot, ht
其中展开it为 sigmoid(Wixt + Uiht-1),纸面有限其他的不画了
权值更新
连接和计算方法如下
在每一个minibatch,在此例中一个minibatch是16句话(每句话小于100个词多余删掉),计算出logistic regression的cost,然后计算出h 的残差;
并计算出对应的Δh1,Δh2,... Δht
而由于ht和,ht-1存在某种函数关系,能够计算出与Δht对应的Δht-1',这一来自LSTM阵列的惨差应该与来自Δh的残差合并,并继续做误差反传;
即对于每个minibatch,权重应该更新了t次,t即是每句话词的数量;
DLBOOK(2015)page 315
http://deeplearning.net/software/theano/library/scan.html
keras包
https://github.com/fchollet/keras/blob/master/examples/imdb_lstm.py
测试:
LSTM 分类器笔记及Theano实现的更多相关文章
- Highway LSTM 学习笔记
Highway LSTM 学习笔记 zoerywzhou@gmail.com http://www.cnblogs.com/swje/ 作者:Zhouwan 2016-4-5 声明 1)该Dee ...
- TensorFlow的序列模型代码解释(RNN、LSTM)---笔记(16)
1.学习单步的RNN:RNNCell.BasicRNNCell.BasicLSTMCell.LSTMCell.GRUCell (1)RNNCell 如果要学习TensorFlow中的RNN,第一站应该 ...
- Theano学习笔记:Theano的艰辛安装体验
http://www.cnblogs.com/hanahimi/p/4127026.html
- Theano 学习笔记(一)
Theano 学习笔记(一) theano 为什么要定义共享变量? 定义共享变量的原因在于GPU的使用,如果不定义共享的话,那么当GPU调用这些变量时,遇到一次就要调用一次,这样就会花费大量时间在数据 ...
- TensorFlow之RNN:堆叠RNN、LSTM、GRU及双向LSTM
RNN(Recurrent Neural Networks,循环神经网络)是一种具有短期记忆能力的神经网络模型,可以处理任意长度的序列,在自然语言处理中的应用非常广泛,比如机器翻译.文本生成.问答系统 ...
- 论文笔记【四】Semi-supervised Word Sense Disambiguation with Neural Models
基于神经模型的半监督词义消歧 Dayu Yuan Julian Richardson Ryan Doherty Colin Evans Eric Altendorf Google, Mount ...
- 使用tensorflow的lstm网络进行时间序列预测
https://blog.csdn.net/flying_sfeng/article/details/78852816 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog. ...
- theano 安装杂记
0. MinGW MinGW:Windows 下的 g++等linux 下的编译工具: Anaconda 下 MinGW 的安装(进行 windows cmd 界面):conda install mi ...
- TensorFlow从入门到实战资料汇总 2017-02-02 06:08 | 数据派
TensorFlow从入门到实战资料汇总 2017-02-02 06:08 | 数据派 来源:DataCastle数据城堡 TensorFlow是谷歌基于DistBelief进行研发的第二代人工智能学 ...
随机推荐
- 原创跑酷小游戏《Cube Duck Run》 - - 方块鸭快跑
自从unity5出来才开始关注unity,业余时间尝试做了个小游戏: <方块鸭快跑> (Cube Duck Run) 像素风,3d视角,色彩明快,有无尽和关卡两种模式. 应用连接: goo ...
- 使用ImageMagick的convert命令,实现批量rgb转cmyk
因为业务上的需求,使用脚本批量生成的二维码不能直接去打印店排版印刷,必须转换为cmyk的印刷格式. 首先去http://www.imagemagick.org/下载ImageMagick并安装,这个工 ...
- [2014.01.27]wfChart 统计图组件 5.6
本组件支持多种样式图表,包括柱型图.横柱型图.曲线图.饼图.点图.区域图. 可选择的8大主题风格,且主题可再配置,在加快开发的同时又提供更好的图像效果. 组件图表提供两种输出接口,包括 ...
- 64位weblogic11g安装
oracle官网上下载的weblogic就是全功能版本,下面是下载 64bit weblogic 等待下载中…… 下载完成后运行 jar 文件(不会运行jar 的请自己百度) 运行时出现如下 原因是 ...
- 结算凭证中委托付款部分sql
select a.makevdate,a.summary,a.totalcredit,a.cent_typeid,c.accidname from fts_voucher a,fts_voucher_ ...
- 非阻塞socket调用connect, epoll和select检查连接情况示例
转自http://www.cnblogs.com/yuxingfirst/archive/2013/03/08/2950281.html 我们知道,linux下socket编程有常见的几个系统调用: ...
- 原生js+本地储存登录注册
//简易操作,只能当前页面储存一个username和password. <!DOCTYPE html> <html> <head> <meta charset ...
- Access forbidden! You don't have permission to access the requested object. It is either read-protected or not readable by the server
好久不没弄 apache和php了,突然遇到这种奇葩的问题,本来想直接在网上找现成的解决思路,结果网上搜索花了不少功夫,也没找到原因. 后来看日志文件:apache\logs\error.log发现了 ...
- ASP.NET管道
以IIS 6.0为例,在工作进程w3wp.exe中,利用Aspnet_ispai.dll加载.NET运行时(如果.NET运行时尚未加载).IIS 6引入了应用程序池的概念,一个工作进程对应着一个应用程 ...
- 如何利用OEM工具(ORACLE ENTERPRISE MANAGER),增加表空间