2017-01-26 41 views
0

我正在使用Synaptic JS庫來執行機器學習。我的經驗現在只限於幾天,所以請原諒我對這個話題的無知。謝謝。激活輸出不會因輸入變化而改變很多[突觸]

我使用3個輸入,6個隱藏,6個隱藏和1個輸出的架構師網絡。

我的輸入數據已標準化並且有差異。

我正在使用一個循環來瀏覽我的數據集並計算每個時間點的網絡輸出。然而,激活輸出顯示每個時間單位之間的零方差,而輸入方差是正常的。請參見下面的輸入和輸出:

[[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.51729 40554705523]]

其中前三個是輸入,而另一個是相應的輸出。

我做錯了什麼?

+0

網絡是否受過培訓? –

+0

沒有模型沒有訓練。我將用健身來訓練模型。具有最高適應性的網絡將用於這一代。我使用突變和交叉。但是,輸入更改時激活函數的輸出應該改變嗎? –

+0

如果網絡沒有改變,那麼輸出將非常相似。如果您使用的是遺傳算法,您應該創建一個具有許多不同權重的池,並隨機將它們反向傳播幾次,這樣輸出會隨着不同輸入而發生很大變化。我有一個關於突觸的遺傳算法庫,請看看:https://github.com/wagenaartje/gynaptic –

回答

1

激活函數計算f(Theta*x + b)。現在最有可能的情況是Theta在某種程度上0或接近於0,這就是爲什麼你只能看到偏見。

你應該打印出網絡的初始權值。