TL; DR
我需要帮助理解特定算法的某些部分以进行结构化数据分类。我也愿意为此目的提供不同算法的建议。
大家好!
我目前正致力于一个涉及结构化数据分类的系统(我不想透露更多关于它的信息),我正在使用简单的反向传播结构(BPTS)算法。我打算稍后修改代码以利用GPU进行额外的速度提升,但目前我正在寻找比BPTS更好的算法。
我最近偶然发现了这篇论文 - > [1]我对结果感到惊讶。我决定尝试一下,但是我在理解算法的某些部分时遇到了一些麻烦,因为它的描述不是很清楚。我已经通过电子邮件发送了一些要求澄清的作者,但是还没有收到他们的消息,所以,我真的很感激你们可能提供的任何见解。
该算法的高级描述可以在第787页找到。在步骤1中,作者随机化网络权重,并“通过数据结构从前沿节点向前传播每个节点的输入属性因此,获得根节点的输出“。我的理解是步骤1永远不会重复,因为它是初始化步骤。我引用的部分表明这里也会进行一次性激活。但是,训练数据集中的哪个项目用于激活网络?这种激活真的应该只发生一次吗?例如,在我正在使用的BPTS算法中,对于训练数据集中的每个项目,新的神经网络 - 其拓扑结构取决于当前项目(数据结构) - 是在运行中创建并激活的。然后,错误反向传播,权重被更新和保存,临时神经网络被破坏。
让我烦恼的另一件事是第3b步。在那里,作者提到他们使用等式(17),(30)和(34)更新参数{A,B,C,D} NT次。我的理解是NT表示训练数据集中的项目数。但是方程(17),(30)和(34)已经涉及训练数据集中的所有项目,那么,解决它们(特别是)NT次的重点是什么?
我未能得到的另一件事是他们的算法究竟如何考虑训练数据集中每个项目的(可能)不同结构。我知道它在BPTS中是如何工作的(我在上面描述过),但我不清楚它是如何与它们的算法一起工作的。
好的,现在一切都好。如果有人知道这个算法可能会发生什么,我会非常有兴趣听到它(或者更确切地说,阅读它)。另外,如果您了解其他有前途的算法和/或网络架构(可以在这里使用长期短期内存(LSTM)吗?)进行结构化数据分类,请不要犹豫,发布它们。
提前感谢任何有用的输入!
[1] http://www.eie.polyu.edu.hk/~wcsiu/paper_store/Journal/2003/2003_J4-IEEETrans-ChoChiSiu&Tsoi.pdf