2011-08-27 64 views
2

其實這些都是3個問題:我應該使用哪種優化算法來優化多層感知器的權重?

我應該使用

哪些優化算法來優化多層感知器的權重,如果我知道...

1)僅誤差函數的值? (黑匣子)

2)漸變? (一階導數)

3)梯度和hessian? (二階導數)

我聽說CMA-ES應該對1)和BFGS的2)工作得很好,但是我想知道是否有其他選擇,並且我不知道至少需要3)。

+0

你有沒有想要解決的特定問題?我承認我想不出任何只使用錯誤函數的場景,因爲大多數人工神經網絡都使用易於計算衍生物的函數。什麼阻止你使用反向傳播? – zergylord

+0

我有兩個不同類型的問題需要解決: 1)一個監督學習任務(腦計算機接口數據) 2)一些強化學習任務...... a)contrinouos狀態和離散的行動空間。這裏我有一個錯誤功能,可以應用反向傳播。 b)繼續狀態和動作空間。我認爲在這種情況下我不會有直接的錯誤,因爲人工神經網絡的輸入是狀態,輸出是動作,我不知道哪個動作是最優的。但我有一個像健身功能(返回)。 – alfa

回答

0

我終於解決了這個問題:有在強化學習優化神經網絡的一些有效的算法(固定拓撲結構),E。 G。 CMA-ES(CMA-NeuroES)或CoSyNE

的監督學習最好的優化算法似乎是文伯格 - 馬夸特(LMA)。這是專門爲最小二乘問題設計的算法。當有很多連接和重量時,由於所需的空間很大,LMA不能很好地工作。在這種情況下,我使用共軛梯度(CG)。

海森矩陣不會加速優化。近似二階導數的算法更快更高效(BFGS,CG,LMA)。

編輯:對於大規模的學習問題往往隨機梯度下降(SGD)優於所有其他的算法。

2

好了,所以這並沒有真正回答您最初提出的問題,但它確實提供了一個解決方案,你在評論中提到的問題。像處理一個連續動作空間

問題通常不通過改變所述誤差測量,而是通過改變整體網絡的體系結構處理。這可以讓您繼續使用相同的高度信息錯誤信息,同時仍然解決您想要解決的問題。

,可以做到這一點的一些可能的架構改變,在解決這一question討論。在我看來,我建議使用修改後的Q學習技術,其中狀態和動作空間都用自組織映射表示,這在上面鏈接中提到的一篇論文中討論過。

我希望這會有所幫助。

+0

感謝您的回答,但我不想更改拓撲。實際上,我對ANN進行了一些小修改,我想用RL問題來測試它。如果你有一個連續的狀態空間和一個離散的動作空間,你可以創建一個具有輸入(s,a)和輸出Q(s,a)的ANN,這樣你就可以生成一個策略(選擇最大化Q (s,a))通過計算所有a的Q(s,a)。對於連續的,這不起作用,因爲你必須檢查無限次數的動作。所以我會直接將pi(s,a)與一集的迴歸作爲適應值進行近似。 – alfa

+1

剩餘的字符太少...... :)我認爲這個鏈接很棒:http://homepages.cwi.nl/~hasselt/papers/RL_in_Continuous_Spaces/Policy_Approximation.html。特別是關於「進化策略搜索策略」的部分。 – alfa