爲了學習的目的,我實現了一個簡單的神經網絡框架,它只支持多層感知器和簡單的反向傳播。對於線性分類和通常的XOR問題,它的工作原理沒問題,但對於正弦函數逼近,結果並不令人滿意。用神經網絡逼近正弦函數
我基本上試圖用一個由6-10個神經元組成的隱藏層來逼近正弦函數的一個週期。網絡使用雙曲線切線作爲隱藏層的激活函數和輸出的線性函數。結果仍然是對正弦波的相當粗略的估計,需要很長的時間來計算。
我看着encog參考,但即使有,我不能把它簡單的反向傳播的工作(通過切換到彈性傳播它開始變得更好,但仍比提供in this similar question超光滑[R腳本的方式更糟糕)。那麼我是否真的想做一些不可能的事情?用簡單的反向傳播(無動量,沒有動態學習速率)是否無法逼近正弦? R中神經網絡庫使用的實際方法是什麼?
編輯:我知道這肯定是可能找到一個足夠好的近似,即使簡單的反向傳播(如果你與你的初始權重非常幸運),但其實我更想知道這是否是一個可行的辦法。與我的實現相比,我鏈接到的R腳本看起來似乎非常快速且穩健地收斂(在40個時期,只有很少的學習樣本),甚至是encog的彈性傳播。我只是想知道我是否可以做些什麼來改進反向傳播算法以獲得相同的性能,還是需要研究一些更高級的學習方法?
你有沒有得到它的工作?面對同樣的問題。 –
不要這麼想,但是因爲這是4年前,所以不能真正回憶所有的細節。上面提到的nnet包是用C實現的,只有700行代碼,然後一些R包裝在它的上面。也許看看會給你一些想法。 – Muton