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