我将研究需要使用RNN或深度神经网络解决的问题。一般来说,问题在于预测财务价值。因此,由于我获得了一系列财务数据作为输入,我认为RNN会更好。另一方面,我认为如果我可以将数据拟合到某个结构中,我可以更好地训练DNN,因为DNN中的训练阶段比RNN更容易。例如,我可以获得最近1个月的信息并保留30个输入并在使用DNN时预测第31天。 从这个角度来看,我不了解RNN优于DNN的优势。我的第一个问题是在这个问题上正确使用RNN或DNN。
我的第二个问题在某种程度上是基本的。在训练RNN的同时,不可能让网络变得困难&#34 ;?我的意思是,考虑以下输入:10101111,我们的输入是一位数0或1我们有2个序列(1-0,1-0,1-1,1-1)这里在1之后,多次来0 。然后在结束时,1到1之后1.在训练时,这不会成为一个主要问题吗?也就是说,为什么系统在训练这个序列时不会感到困惑?
非常感谢您的帮助
答案 0 :(得分:2)
当你自己回答时 - RNN用于序列。如果数据具有顺序性质(时间序列),则优选使用DNN和其他“静态”模型上的此类模型。主要原因是RNN可以建模过程,它负责每个锥序列,例如给定序列
0011100
0111000
0001110
RNN将能够建立一个模型,“看到'1'之后我会看到另外两个”并在看到时正确建立预测
0000001**** -> 0000001110
虽然在同一时间,对于DNN(和其他非顺序模型),这三个序列之间没有关系,事实上对他们来说唯一常见的事情是“第四个位置有1个,所以我猜它是总是那样“。
关于第二个问题。为什么不会混淆?因为它模拟序列,因为它具有内存。它根据之前观察到的所有内容进行重新排序,并假设您的信号具有任何类型的规律性,过去总有一些信号可以区分两种可能的信号路径。再一次,RNN比非循环模型更好地解决了这种现象。例如,参见近年来基于LSTM的模型给出的自然语言和巨大进步。
答案 1 :(得分:2)
我认为你的问题有点问题。
首先,DNN是架构的类。卷积神经网络与深度信念网络或简单的深度MLP有很大不同。有前馈体系结构(例如TDNN)适合时间序列预测,但它取决于您,您是否对研究更感兴趣或只是解决您的问题。
其次,RNN和它一样“深入”。考虑到最基本的RNN,Elman网络:在通过时间反向传播(BPTT)的训练期间,它们在时间上展开 - 在T时间步长上反向传播。由于这种反向传播不仅像在标准DNN中一样垂直,而且在T-1上下文层上也是水平,从T-1时间步后过去激活隐藏层< em>在之前实际上考虑当前时间步的激活。展开网络的这个例子可能有助于理解我刚写的内容(source):
这使得RNN对时间序列预测如此强大(并且应该回答你的两个问题)。如果您有更多问题,请阅读Elman Networks。 LSTM等只会让您感到困惑。了解Elman Networks和BPTT是了解任何其他RNN所需的基础。
最后一件事你需要注意:vanishing gradient problem。虽然很有可能说让我们使T =无穷大并给我们的RNN尽可能多的内存:它不起作用。有很多方法可以解决这个问题,目前LSTM很受欢迎,现在甚至还有一些正确的LSTM实现。但重要的是要知道一个基本的Elman网络可能真的很难与T = 30。