2013-02-27 92 views
3

我有一個神經網絡,我需要估計平均超平面,它指示所有訓練實例的平均誤差。訓練示例一次呈現。例如,如果我有一個變量函數,那麼我需要找到表示函數平均值的那一行。對於我的應用程序來說,確切的平均值不是必需的,啓發式也可以。估計神經網絡的平均誤差超平面

所有訓練樣例中每個輸出神經元的平均輸出。其中:

t_j' = sum_i_1_to_N (t_i_j)/N    

薩姆每個輸出神經元的平均輸出(如上計算),用於訓練樣例和各實施例的實際的目標輸出之間的平方差的:

Avg Error = 1/2 * sum_i_1_to_N (sum_j_1_C (t_j' - t_i_j))^2) 

這是一種啓發式但我想知道如何保持Avg Error恆定的某個訓練集。

這種方式有效嗎?有沒有更好的方法來找到固定訓練集的神經網絡的平均(種類)?

回答

0

不知道更多關於你的問題,我會說不。

平均誤差= 1/2 * sum_i_1_to_N(sum_j_1_C(t_j」 - t_i_j))^ 2)

上面看起來更象比平均的標準偏差。這不會告訴你太多,考慮這個:

Error = sum_i_1_to_N (sum_j_1_C (ABS(c_j' - t_i_j)))

(其中c_j是與j正確的輸出)

現在你看便宜的計算數量,供應的異曲同工之妙數值的意思是(你可以用N除以所有數字以得到實際的平均值,但爲什麼你會打擾?)。該RMS是這樣的:

ErrorRMS = sum_i_1_to_N (sum_j_1_C (ABS(e_j' - t_i_j)^2))

無論你想要一個RMS或平均將取決於你的問題,但更多的往往不是,也不會多大意義(套低RMS將趨向反正有一個較低的意思,所以你主要是演變相同的東西)。

請注意,ErrorErrorRMS這些實際上並不是平均值或RMS值,但它們排名相同,而且它們的成本更低。除此之外,假設你有一個多輸出的神經網絡,在多個步驟上操作(從而產生你所說的錯誤超平面),那麼我首先會建議以不同的方式構造問題。

你應該有一個以上輸出的神經網絡的唯一原因是如果輸出只能相互理解。否則,你應該訓練神經網絡,而不是1個神經網絡和N輸出。話雖如此,如果你不能在單一步驟中產生一個單一的錯誤來描述網絡的輸出,也許你應該把它分成多個網絡?然後,您可以簡單地在網絡測試的樣本上取誤差的RMS或平均值。

這是否有意義?