r - 顺序神经网络

标签 r machine-learning neural-network nnet

我正在尝试构建一个神经网络作为生成模型,以预测向量序列之后的下一个向量(每个向量都是长度n的实数分布)。

我的想法是采用 k 个先前的序列并将它们连接起来以获得一个 kxn 输入向量。为了训练模型,我将序列中的下一个向量作为输出。当我寻找非确定性输出时,我将使用低梯度的 sigmoid 激活函数。

这个程序看起来合理吗?

希望如此,我尝试使用 nnet 和neuralnet 库在 R 中实现它,但从我遇到的文档和示例来看,它似乎是输入和输出向量必须具有相同的长度。在这些模块中训练不同长度的输入/输出向量的语法是什么?

我的输入向量的示例是:

      [,1]      
 [1,] 0         
 [2,] 0         
 [3,] 0.6       
 [4,] 0.4       
 [5,] 0         
 [6,] 0         
 [7,] 0.06666667
 [8,] 0.6666667 
 [9,] 0         
[10,] 0.2666667 
[11,] 0         
[12,] 0.4       
[13,] 0         
[14,] 0         
[15,] 0.6       

和输出向量:

      [,1]    
 [1,] 0         
 [2,] 0         
 [3,] 0.8571429 
 [4,] 0         
 [5,] 0.1428571 

注意上面的示例有 n=5k=3,尽管我的实际数据集有 n~200。在这两种情况下,各个向量均归一化为 1。

非常感谢任何帮助!

最佳答案

总的来说,这是非常简单和幼稚的方法,不会产生好的结果。您正在尝试执行从时间序列集到时间序列的回归,将所有内容视为简单属性和简单模型。已经有数千篇关于时间序列预测、表示时间依赖性等的论文/研究。您在这里面临着一个困难类型的预测问题,找到好的解决方案将需要大量的工作,并且所提出的模型几乎没有机会很好地工作.

从你的文字中我推断,你实际上有一个时间序列序列,并且对于“时间窗口”[t-k,t-k+1,..,t-1] 你想要预测 t 中的值(时间序列)。如果这是真的,那么这实际上是时间序列预测问题,其中每个属性本身就是时间序列,并且可以在此处使用所有时间序列相关的技术,例如循环神经网络(如果您真的喜欢神经网络)或条件 RBM(如果您确实想要一个非确定性的生成模型 - 因为它们近年来已成功应用于时间序列预测)。

现在还有一些其他疑问:

As I am looking for non-deterministic output, I was going to use a sigmoid activation function

Sigmoid 激活函数不是非确定性。如果您正在寻找非确定性模型,您应该考虑一些架构,例如 RBM,但正如 @Ben Allison 在评论中提到的,传统神经网络也可以通过一些简单的修改以概率方式使用。

with low gradient.

低梯度是什么意思?你的激活函数的斜率很小?在简单的训练过程(如 BP 算法)的情况下,这将导致学习出现问题

[DATA]

您的数据看起来像您对每个时间序列进行了标准化,因此其总和为1,这不是神经网络中数据规范化的流行方法(您宁愿按列标准化数据,因此每个维度都被标准化,不是每个样本)。

Title

您的问题和模型不是“顺序的”,也不包括“变化的向量长度”,寻找有关此类现象的论文不会引导您回答您的问题。

关于r - 顺序神经网络,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18855937/

相关文章:

tensorflow - 我应该对 3D 灰度图像使用 2D 还是 3D 卷积?

neural-network - 微调resnet50时如何卡住一些图层

python - Theano 逻辑回归维度不匹配

R/shinyjs : Plot appears beyond the box width after using function show/hide sidebar

python-2.7 - Tensorflow:如何初始化给定变量范围内的所有变量

r - 文本分析: What after term-document matrix?

java - 如何评估 Encog 中的预测神经网络

regex - 从原始字符串中提取模式

r - 如何使用 mutate 从 for 循环中的列表创建列

r - 如何在使用 div 和 span 时在 r Shiny 的 titlePanel 中添加额外的间距?