我正在使用 Synaptic JS 库执行机器学习。我的经验仅限于几天,所以请原谅我对这个话题的无知。谢谢。
我正在使用具有 3 个输入、6 个隐藏、6 个隐藏和 1 个输出的 Architect Network。
我的输入数据已归一化并具有方差。
我正在使用一个循环遍历我的数据集并计算每个时间点的网络输出。然而,激活输出显示每个时间单位之间的低<>零方差,而输入方差是正常的。请参阅下面的输入和输出:
[ [ 0.363820590302, 0.3330488358480717, 0.3116651885975185 ], [ 0.5172988208539779 ] ] [ [ 0.48585295937399997, 0.3334973502634277, 0.46007835102578876 ], [ 0.5172953785026767 ] ] [ [ 0.517562951083, 0.33397529189524716, 0.498643366077466 ], [ 0.5172944759870963 ] ] [ [ 0.498637746879, 0.3344243285138506, 0.47562693669139866 ], [ 0.517294997539339 ] ] [ [ 0.526600573119, 0.33492075191037307, 0.5096347290849914 ], [ 0.5172941999844842 ] ] [ [ 0.531292644737, 0.3354644096344466, 0.5153411264323275 ], [ 0.5172940554705523 ] ]
前三个是输入,粗体是相应的输出。
我做错了什么吗?
最佳答案
激活函数计算f(Theta*x + b)
。现在最有可能的情况是 Theta
以某种方式为 0 或接近 0,这就是为什么您只看到偏差的原因。
您应该打印出网络的初始权重。
关于javascript - 激活输出不会因输入变化而改变太多 [Synaptic],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41882247/