基于回归神经网络的中文语句模型实践(Python+Tensorflow+阿里云)
2016-05-29 10:11
851 查看
回归神经网络(Recurrent neural network)在机器学习领域取得了非凡的成就。因其模型特征尤其适合于具有序列特性的数据,所以在自然语言建模,机器翻译,语音识别等领域表现尤其不俗。
语言建模就是要估计句子的分布概率P(S)(S = (W1,W2,W3…)),这里W表示词,一般用一个N维向量表示。机器翻译就是从一个序列到另一个序列的转换如 How old are you? –〉(中间表示)–〉为什么老是你(这翻译不错吧?)。
既然词可以表示成向量,那么句子是不是也可以呢?如果将上面机器翻译的英文变成中文,那中间形式不就可以认为是句子的意思吗?下面就是基于这一思想的模型实践:
程序实现时为了提高计算效率,会将句子进行并行处理,即一次输入多个句子,这时由于每个句子长度不一,需要在句子后面补足填充字符。
我用的中文语料库共4500个字符(包含英文数字,标点符号等),训练句子:158208 验证句子19776,平均长度45
程序的开发是在我本机的虚拟机上进行的,开始想在本机运行,但是发现tensorflow非常耗内存。设置如下:
编码解码:两层RNN,每层50个单元
字向量维数:50
batch size: 256
bucket: [20,20], [40,40],[60,60],[80,80],[100,100](就是将不同长度的句子分批次,如长度小于20,就在第一个bucket)
这个配置下tensorflow就要6G左右的内存,因为我的语料库中很多句子长度超过25,于是决定用阿里云ecs。配置如下:
一个训练周期需要2800秒。这里是代码:https://github.com/amxineohp/rewriter
语言建模就是要估计句子的分布概率P(S)(S = (W1,W2,W3…)),这里W表示词,一般用一个N维向量表示。机器翻译就是从一个序列到另一个序列的转换如 How old are you? –〉(中间表示)–〉为什么老是你(这翻译不错吧?)。
既然词可以表示成向量,那么句子是不是也可以呢?如果将上面机器翻译的英文变成中文,那中间形式不就可以认为是句子的意思吗?下面就是基于这一思想的模型实践:
1 以字符而不是词为最小单元(这样就不要进行分词拉),用N维向量表示 2 编码器使用LSTM(当然有其他选择) 3 解码器也使用LSTM,初始状态是编码器的最后状态 4 使用ADAM算法进行训练 5 使用dropout进行规范 6 使用python和tensorflow实现
程序实现时为了提高计算效率,会将句子进行并行处理,即一次输入多个句子,这时由于每个句子长度不一,需要在句子后面补足填充字符。
我用的中文语料库共4500个字符(包含英文数字,标点符号等),训练句子:158208 验证句子19776,平均长度45
程序的开发是在我本机的虚拟机上进行的,开始想在本机运行,但是发现tensorflow非常耗内存。设置如下:
编码解码:两层RNN,每层50个单元
字向量维数:50
batch size: 256
bucket: [20,20], [40,40],[60,60],[80,80],[100,100](就是将不同长度的句子分批次,如长度小于20,就在第一个bucket)
这个配置下tensorflow就要6G左右的内存,因为我的语料库中很多句子长度超过25,于是决定用阿里云ecs。配置如下:
CPU: Intel Haswell CPU 双核 内存:DDR4 8G 存储:高级云盘40G
一个训练周期需要2800秒。这里是代码:https://github.com/amxineohp/rewriter
相关文章推荐
- TensorFlow 的简单例子
- 仅用500行Python代码实现一个英文解析器的教程
- 用Python进行一些简单的自然语言处理的教程
- bp神经网络及matlab实现
- CUDA搭建
- 稀疏自动编码器 (Sparse Autoencoder)
- 白化(Whitening):PCA vs. ZCA
- softmax回归
- 卷积神经网络初探
- TensorFlow人工智能引擎入门教程之九 RNN/LSTM循环神经网络长短期记忆网络使用
- TensorFlow人工智能引擎入门教程之十 最强网络 RSNN深度残差网络 平均准确率96-99%
- TensorFlow人工智能入门教程之十一 最强网络DLSTM 双向长短期记忆网络(阿里小AI实现)
- TensorFlow人工智能引擎入门教程之十二 Caffe转换tensorflow并 跨平台调用
- TensorFlow人工智能入门教程之十三 RCNN 区域卷积网络(视频侦测分析人脸侦测区域检测 )
- TensorFlow人工智能引擎入门教程所有目录
- 如何用70行代码实现深度神经网络算法
- 51CTO学院优质新课抢先体验-5折好课帮你技能提升、升职加薪
- TensorFlow简介
- 基于回归神经网络的中文语句模型实践(Python+Tensorflow+阿里云)