原文链接:https://tecdat.cn/?p=37634
本文聚焦于使用马尔可夫递归神经网络(MarkovRNN)联合树库睁开建模工作。MarkovRNN 通过整合马尔可夫特性与离散随机变量来深入探索递归神经网络中的随机转换机制,旨在高效处置惩罚具有复杂潜伏信息的高度结构化序列数据(点击文末“阅读原文”获取完备代码数据)。
在该模子中,每个时间步的离散样本均源自参数化的分类分布,且潜伏信息的编码取决于所选状态对应的差异状态编码器。
干系视频
一、弁言
语言建模在天然语言处置惩罚范畴至关紧张,它对于明白和天生天然语言文本起着关键作用。传统方法在处置惩罚复杂数据结构和潜伏信息时存在肯定范围性,而 MarkovRNN 模子为办理这些题目提供了新的思绪。
马尔可夫递归神经网络(MRNN)通过将马尔可夫性子与离散随机变量相联合来探索递归神经网络中的随机转换。提出这个模子是为了处置惩罚具有复杂潜伏信息的高度结构化的序列数据。在每个时间步,离散样本从参数化的分类分布中抽取,而潜伏信息则根据所选状态由差异的状态编码器举行编码。
二、实行设置
软件情况
接纳 Tensorflow 1.4.1 构建和运行模子。
数据集
选用树库作为数据集。数据导入:
- from tensorflow.examples.tutorials.mnist import input_dataimport tensorflow as tfimport tensorflow.contrib.slim as slimimport numpy as npimport reader
复制代码 三、模子构建
(一)设置参数
界说了一个设置类(Config),此中涵盖了模子练习和运行的关键参数,如初始化规模(init\_scale)、最大练习轮数(max\_epoch)、批量巨细(batch_size)等。
- init\_scale = 0.2max\_epoch = 50max\_max\_epoch = 50batch\_size = 50display\_step = 50lr = 20.0lr\_decay = 0.3embed\_drop = 0.2input_drop = 0.4
复制代码 (二)数据处置惩罚
Input 类负责处置惩罚输入数据,对数据的批量巨细、时间步数、轮次巨细等举行了界说,并实现了输入数据和目的数据的天生。
- class Input(object):def \_\_init\_\_(self, config, data, name=None):self.batch\_size = config.batch\_sizeself.num\_steps = config.num\_stepsself.epoch\_size = ((len(data) // self.batch\_size) - 1) // self.num\_stepsself.input\_data, self.targets = reader.ptb\_producer(data, self.batch\_size, self.num_steps, name=name)
复制代码 (三)模子架构
Model 类构建了焦点的 MRNN 模子。在模子初始化过程中,界说了如嵌入层
|