[ANN] Spatial Layer Effect

  • Spatial Layer Effect
  • 在上一篇[EP/GP] Evolution with Internal Observer我們談到使用內部觀察者訓練網路時加上一點點的隨機亂數可以有效提昇學習效率,但是光是從這方面來改善並無法有很大的突破,從之前的結果可以得知,AI Level I 始終無法被大幅度的克服。這一篇我們要介紹Spatial Layer在學習效率上得影響性,用一個較好的Spatial Layer來提昇整體學習能力。

  • Spatial Layer
  • 什麼是Spatial Layer? 其實說穿了他只是一個隱藏層,只是在spatial layer裡的weight的排列計算方式不像單純的hidden layer是固定且一致的,以這一篇[ANN] FeedForward MultiLayer Perceptron的網路架構圖來說,隱藏層裡有9個節點,但是每個節點內部各有9個weight跟1個bias,所以各個節點的維度都是9(至於9這個數字是因為輸入層有9個inputs,所以才會有9個weigths),這樣的隱藏層設計非常直觀且簡單,但是卻無法有效的提昇網路學習能力,且會多計算了一些無用的節點。在這一篇範例裡我們依然是延續著之前的tic tac toe架構來設計Spatial Layer。

  • Neural Network Architecture
  • 延續著之前的三層架構,只是Hidden Layer被換至成Spatial Layer,原先的九個點被替代成九個樣式。總共用了76個weights(包含biases),比起原先的100個weights(包含biases)少了1/4。"理論上來講"計算速度會快,但是學習能力會變差。

  • Spatial Layer Patterns
  • 井字遊戲是3x3的板子,總共有9格,所以我就設計了九個patterns去對應到板子上的每一格,而樣式的設計方式則是依照此遊戲的規則。

  • Simulation Parameters
  • 依照下列的參數去模擬:

    Population: 100

    Generation: 1000

    Win/Lose Score: Winner: +1, Loser: -1 , Draw: 0

    Number of Games: 10

    Selection : Tournament Selection

    Trainer: AI_Level III with random moves

    其餘參數是跟之前的模擬一樣的,只是換製成Spatial Layer。

  • Results
    • Neural Network v.s. AI
    • 跟上一篇的圖來做比較起來整體能力並未提升許多,僅有在AI_level I 部份稍微提升一點。

    • Survival Times
    • 跟先前的存活次數的數據比起來,改成spaital layer之後的survival time似乎降低了,到了1000代平均存活次數仍在1000代左右,代表著網路還有成長的空間。

    • Standard Deviation for Number of Win Games
    • 得分值的標準差在50代之後將幾乎在1.3上下震盪,直到1000代都沒有太大的改變。

  • Discussion
  • 從這一篇的模擬我們可以得知良好的Spaital Layer設計可以節省網路節點的使用,達到同等級的學習能力。但究竟為什麼一個好的Spatial Layer卻有如此的功效,以神經網路的數學理論來看,越多的weight跟bias可以達到更複雜的切割,但是在這裡我們使用的weights(包含biases)(76)小於原先單純的hidden layer所使用的weights(包含biases)(100),所以單純以數學的high order hyperplane separation來解說是無法解釋的通。從數值分析來看,每一個pattern就是一個weight matrix,而這些weight matrix都是特別依造遊戲的規則來設計,自然我們可以減少無用的weight 值計算之外,也取得真正要使用的部份,這就是為什麼Spatial Layer能有較好的學習效果。可惜的是在這個例子裡spatial layer並沒有大量突顯出他的優點。

No comments:

Post a Comment

Orange - data analysis tool

Installation pip install orange3 Run orange python -m Orange.canvas