Dan*_*kyi 5 outliers neural-network
在我的项目中,我的目标之一是在航空发动机数据中找到异常值,并选择使用复制器神经网络来执行此操作,并阅读有关此数据的以下报告(http://citeseerx.ist.psu.edu/viewdoc/download ?doi = 10.1.1.12.3366&rep = rep1&type = pdf),并且对逐步函数(图3,第4页)和由于该函数的预测值略有了解。
在上面的报告中最好地描述了复制器神经网络,但作为背景,我构建的复制器神经网络的工作原理是具有与输入相同的输出数量,并具有3个具有以下激活功能的隐藏层:
隐藏层1 = tanh Sigmoid S1(?)= tanh,隐藏层2 =逐步,S2(?)= 1/2 + 1 /(2(k?1)){求和每个变量j} tanh [a3( ??j / N)]隐藏层3 =正弦S1(?)= tanh,输出层4 =正弦S3(?)= 1/1 + e ^-?我已经实现了该算法,而且似乎正在训练中(因为均方误差在训练过程中不断减小)。我唯一不了解的是应用带有逐步激活功能的中间层时如何进行预测,因为这会使3个中间节点的激活成为特定的离散值(例如,我对3个节点的最后一次激活)中间是1.0,-1.0、2.0),这会使这些值向前传播,并且每次我得到的预测都非常相似或完全相同。
第3-4页的报告中的部分最能说明算法,但是我不知道该如何解决,我也没有太多时间:(
任何帮助将不胜感激。
谢谢
我面临着实现该算法的问题,以下是我对您可能遇到的问题的见解:中间层通过利用逐步函数,本质上是对数据执行聚类。每层将数据转换为离散数字,可以将其解释为网格系统中的坐标。想象一下,我们在中间层使用两个神经元,其步进值范围从 -2 到 +2,增量为 1。这样我们定义了一个 5x5 的网格,每组特征将放置在其中。您允许的步骤越多,网格就越多。网格越多,拥有的“簇”就越多。
这一切听起来都不错。毕竟,我们将数据压缩为更小的(维度)表示,然后用于尝试重建为原始输入。
然而,这个逐步函数本身有一个大问题:反向传播(理论上)不适用于逐步函数。您可以在本文中找到更多相关信息。在最后一篇论文中,他们建议用类似斜坡的函数来切换逐步函数。也就是说,拥有几乎无限数量的簇。
您的问题可能与此直接相关。尝试将逐步函数与斜坡函数切换,并测量误差在整个学习阶段的变化情况。
顺便问一下,您是否有任何此类代码可供其他研究人员使用?