Unity3D ML – Academy , Brain , Agent WorkFlow QA part1

簡介

當我們跑過一次Unity3D ML平衡小球範例後,會發現該範例場景中有一些莫名其妙的東西不知道有何功能的物件、元件,在Project中也有一些檔案都有關該範例使用到,這篇模式會以幾個QA方式解說一般剛進入此領域的創作者會有的一些問題,並會說明整個範例的WorkFlow。我們可以在溫習一下下圖,喚起一下之前的記憶,ML的執行樹。

Q1 : 我還是搞不懂Unity3D ML是哪樣的AI訓練模式?

A1 : 在說明之前要講到Unity ML的框架,是在機器學習→監督式學習→增強學習,要不停地透過下註解在每一個階段的經驗資料下上Tag,並使用獎勵機制Reward來增強學習力來加快學習速度與提升學習的正確度。

Q2 : Academy , Brain , Agent到底是怎樣的相互關係?

A2 : 我們會有一個環境 Environment,環境中有很多的變量給Agent參考,Agent會有一些行動去影響這個環境,然後環境中的變量就會有變化,接著傳遞Reward給Agent。分為正向反饋與負向反饋,當然正向反饋越多越好。

拿設計學院來比喻Unity-AI運作方式,在這邊用這些名詞給他個Cosplay
Academy – 設計學院  Brain – 教授 Agent – 學生

教授因為先前的歷練在腦中有很多的知識模型, 1.因此拋出新的課程並開出課程大綱與學習目標 – tag , target , limit , 2.請學生依照特徵跟標籤尋找相關知識並產出結果 – data , 3.正確的結果會被教授按個讚並且寫出期刊收藏在學院裡-training , 4.再往後遇到此議題的學生假如輸入關鍵字跟特徵標籤就可以很快做出正確的判斷了-model 。

Q3 : Unity3D ML有幾種訓練模式?

A3 : 先來看看官方怎麼說。

ML Training Type

Player – Action are decides by user input through keyboard or gamepad.
Heuristic – Actions are decided by C# script using state input.
External – Actions are decided using Tensorflow via Python interface.
Internal – Actions are decided using Tensorflow model embedded into project.

以下是來解釋ML有幾種AI的訓練模式 :
1.Player是玩家模式,你可以設定一些KeyCode來修改環境參數,比方說KeyCode.Up,就將某個變數的值修改為1,當你按下鍵盤的上鍵時,便能控制訓練參數。
2.Heuristic是啟發式,可以自己撰寫一些演算法去控制AI。
3.External是外部模式,我們可以在Internal模式中進行訓練,訓練出一個模型以後儲存成二進制檔案,再由External模式去讀取該二進制檔案,執行模型。
4.Internal就是你已經擁有了訓練好的models將可以放進去專案中再進行訓練。

Q4 : 為什麼專案場景中要有這麼多的Agent Prefab

A4 : 很簡單的一個概念,引用A2的概念,你一個教授收一個學生跟收了十個學生幫你做研究,相當然爾產出的研究貢獻會有怎樣的差距,大家應該都知道。 以上提到是一個基本的比喻法,但在Agent中設定 (程式撰寫、接受環境參數等等) 還是攸關訓練model成敗的其一關鍵,另一個關鍵是在Environment環境的創見與設定。

Q5 : 為什麼環境要很擬真,那怎麼讓AI取得擬真的資料

A5 : 在 ml agents 物件在環境中扮演著適應環境、目標的角色,observation , actions , reward signals以上三點是循序漸進給予學習物件完整的AI元素,在observations中為設定agents所需要學習的屬性或參數,例如自駕車某sensor擷取環境的距離或是hd camera擷取連續圖像來解析動態物件等等。而不同的agents會擁有不同的目的與動態必須搭配observations產出action,然而在學習的過程會有很多的action產生,但要提升agents正確的學習方法就需要給予reward signals給予某環境產生的某action獎勵機制,進而提升AI的學習速度。

小結

了解了整體的ML Workflow之後,會發現Unity機器學習的AI學習模式是監督是+增強學習,皆是透過多方的程式相互作用後把經驗儲存在外部python,再透過外部的經驗分析後送出Action給Unity3D環境繼續訓練,在下幾篇先會各別介紹Unity3D場景中所用到的AI-ML專用程式。先提共一個程式之間的WorkFlow圖給大家先了解一下。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *