-2

我剛開始使用Pybrain在Python和Pygame中開始人工生命模擬(再次......我失去了另一個),並且我正在計劃這將如何工作。到目前爲止,我有一個「食物顆粒」的環境。食物顆粒每分鐘添加一次。我還沒有製作過我的代理人(又名「生物」),但我知道我希望他們有一些簡單的前饋神經網絡,其輸出將是它的運動。我希望輸入顯示他們面前的內容,有點像他們看到他們面前的模擬世界。我應該怎麼做呢?我要麼讓他們真正「看到」他們視線中的顏色,要麼只是將最近的物體輸入到他們的NN中。哪一個最好,我將如何實施它們?如何在神經網絡輸入的人工生命模擬中輸入最近的物體?

回答

0

具有完整的視野在技術上是可能的神經網絡,但需要大量的輸入和大量處理;不是你應該期望能夠以任何有意義的方式進化的方向。

神經網絡處理值和閾值。我建議使用與最近的個體相關聯的兩個輸入 - 其中一個具有距離(最近的)的值,另一個具有其角度(其中零直接在前,小於零在左側並且大於零)在右邊)。

確保這些值很容易處理成輸出。例如,如果一個輸出轉到旋轉執行器,請確保輸入值和輸出值的比例相同。那麼,轉向或離開某個特定的個人將會很容易。

如果你希望他們能夠看到多個人,簡單包括多對輸入。我會建議把它們按照距離順序排列,但如果一個生物體看到它總是進入相同的輸入,直到它不再被追蹤,它可能會更容易。

+0

當你說要使輸入和輸出值具有相同的比例時,你的意思是如果輸出的範圍是0-1,那麼輸入應該在0-1範圍內。我怎麼輸入顏色? Pygame中的顏色是一個元組,它有三個值,範圍爲0 - 255. –

+0

通過「相同比例」我簡單的意思是,如果輸入角度是-1到1比輸出旋轉執行器應該是-1到1,直接輸入到輸出將全部轉向目標形狀。關於顏色,你可能是正確的,這需要三個額外的輸入。如果可能,我建議使用HSL而不是RGB。例如,在許多情況下,他們可能只是想關注色調。 –