13

我在進化算法方面有很好的基礎,所以現在我開始閱讀有關人工神經網絡的內容。我遇到了關於 http://www.ai-junkie.com/ann/evolved/nnt2.html, 的教程,展示瞭如何使用ANN來演變收集地雷的坦克。它使用GA來演化每個神經元的輸入權重。神經網絡和進化算法的區別

我知道我可以使用GA(沒有ANN)來解決同樣的問題。我已經創建了一個Tetris Bot,只使用GA來優化網格評估函數中的權重(請查看我的博客http://www.bitsrandomicos.blogspot.com.br/)。

我的問題是:什麼是概念/實用區別之間使用ANN + GA的情況下,我可以單獨使用GA?我的意思是,我的Tetris Bot是ANN嗎?(我不這麼認爲)。

大約有這幾個相關的問題,但我無法找到一個答案:

Are evolutionary algorithms and neural networks used in the same domains?

When to use Genetic Algorithms vs. when to use Neural Networks?

謝謝!

回答

18

A 遺傳算法優化算法

人工神經網絡是一個函數approximator。爲了逼近一個函數,你需要一個優化算法來調整權重。 ANN可以用於監督學習(分類,迴歸)或強化學習,有些甚至可以用於無監督學習。

在監督學習中,像遺傳算法這樣的無衍生優化算法比使用梯度信息的大多數優化算法要慢。因此,只有在強化學習中用遺傳算法演化神經網絡纔有意義。這被稱爲「神經元進化」。在這種設置中,像多層感知器這樣的神經網絡的優點在於,當它們具有足夠數量的隱藏節點時,它們可以以任意精度逼近任何函數。

當你創建一個俄羅斯方塊機器人時,你不一定非得使用一個人工神經網絡作爲函數近似器。但是你需要某種函數逼近器來表示你的機器人策略。我想這隻比人工神經網絡簡單。但是當你想創建一個複雜的非線性策略時,你可以做到這一點。 G。與人工神經網絡。

+1

因此,在我的俄羅斯方塊機器人中,我有一個啓發式,GA調整每個板參數的重量(比如網格高度,孔的數量等)。在Tanks-Mines的例子中,我可以認爲每個神經元都是一個「匿名參數」(即一些會影響坦克行爲但尚未命名的特徵) - 只是一個比喻,謝謝! – Fernando 2012-03-25 18:10:11

+1

是的,你可以做到這一點。神經網絡被認爲是黑箱函數逼近器。這意味着你通常無法理解ANN從看重它的重量值。很難提取任何簡單的「規則」。 :) – alfa 2012-03-25 18:41:54

0

我不是專家,但基於我從外地知道..

人工神經網絡對神經科學的基礎,最終。它試圖通過在算法中構建類神經元結構來模擬/建模其行爲。強調這個問題的學術性質,而不是結果。據我所知,由於這個原因,ANN從工程角度來看並不是很受歡迎。機器學習的統計基礎(HMM和貝葉斯網絡)產生更好的結果。

總之,只要它對一些潛在的神經科學學科有點頭,它可以是一個人工神經網絡,即使它使用某種形式的遺傳算法。

如果您使用GA,它不一定是ANN。

+1

神經網絡和神經科學之間有一些相似之處,但是神經網絡一般不嘗試模擬自然神經元。 – 2012-03-25 07:13:35

6

阿爾法的答案是完美的。這裏只是一個說明他說的形象:

enter image description here 元優化=無(但可能是)
優化=遺傳算法
問題=俄羅斯方塊博特(如ANN)

2

您使用進化算法如果你還沒有不知道的答案,但你能夠以某種方式評估候選人並提供有意義的突變。

如果你的已經有答案(和輸入),並且你想要「訓練計算機」,所以它可以「猜測」未知輸入的答案,神經網絡非常好。此外,您不必考慮很多問題,網絡會自行解決問題。

檢查這個「遊戲AI」的例子:https://synaptic.juancazala.com/#/
(注意這是多麼簡單,所有你需要做的就是給他們足夠的訓練,你不必知道有關遊戲AI的事情 - 而一旦你需要做的就是「下載」內存並在需要時運行它)