簡介
雖然AI的學習範圍非常的廣,但我們就先抓取某個類別來講述學習,我們先深入機器學習的技術,並使用Unity3D有提供機器學習OpenSource的資源。先來溫習上一篇所列出的分類圖(如下圖),目前機器學習在AI範疇中算是最大宗,而適用於機器學習的演算反也比較多可以使用,那這篇我們先來說說Unity Editor的機器學習Workflow。在前言我們就歸納一個重點,使用Unity3D被歸納在,AI->ML(機器學習)->DL(深度學習)。
Unity3D ML WorkFlow
如上圖所示,大家必須先瞭解一個實作大方向:
1.Create Environment 創建環境,首先在Unity3D建立好虛擬的環境,虛擬環境的真實性牽動訓練效果的真實性與實用性(物理運算、重力、碰撞等等)。
2.Train Brains 訓練AI腦,透過Python與Tensorflow作為Unity3D與訓練器的橋樑,從Unity3D傳送觀察值給python模組再從模組傳送Action給Unity反覆輸出與輸入並記錄在模組中,最後訓練完成將生成一個NN(neural network)檔案。
3.Embed Brain 鑲嵌在Unity Brain,把訓練好的NN(neural network)檔案鑲嵌在指定欄位中,即可完成AI訓練好的效果。
Unity ML Tool
了解完最基本的ML Workflow之後,來看看在實作之前需要安裝什麼工具軟體。在下一篇會提到整個軟體工具安裝流程。
1.當然您必須擁有Unity3D軟體,版本最好在2018.2以上。
2.Python軟體,可以到官網安裝好,以及系統環境設定。
3.Anaconda軟體,這是個很好的軟體,可以透過此軟體建立一個專屬的AI訓練所需的套件環境。
4.TensorFlow,TensorFlow是由Google 提供的開放原始碼程式庫,下圖是此工具的介紹圖,透過使⽤Computational Graph,來進⾏數值演算在UnityML中他算是個中介程式,可以使用CPU或GPU來運算,並且訓練完成後可以從TensorFlow Board可以看到訓練軌跡,並微調數據重新訓練。
Unity ML Basic Concept
特點 : 可以透過Unity訓練三維空間與二維空間或是單純數據訓練 , 物理模擬訓練 , 簡易的訓練模式。
目前官方發佈的版本為0.8.0版本,而在上一篇有提到機器訓練的六種模式中Unity ML屬於Supervised Learning(監督示學習)-> Reinforcement Learning (增強學習)。
上圖要介紹的是Workflow中的Workflow,位在第一段落流程中的第一項與第二項的訓練模式中。圖中的Environment為Unity建立的環境,Agent為與AI外部python模組溝通的模組,根據環境發送目前的State(狀態)給予Agent紀錄,並假如達成某個條件時環境會發送Reward給Agent,而Agent有了State + Reward的資訊後,經過外部的判斷與記錄並作出預測發出Action給環境進行下一步環境反應,如此構成一個AI機器學習的重複循環訓練。
在這篇最後一個觀念,Unity ML是怎麼跟外部溝通的。可以看到上圖有三個顏色區塊,先看看灰色的Learning Environment是等同上方的Unity環境(包含了環境物件、程式碼、物理運算等等在Unity Scene中所製作的東西),而ML透過外部(External)訓練跟資料夾中的Python API進行溝通,只要把此圖與上圖結合起來就是一個完整的訓練WorkFlow。
小結
這篇主要在為進入Unity ML世界做暖身,從AI樹枝圖歸納Unity在深度學習中,並了解了WorkFlow後,會在實作過程中比較順暢,接著介紹工具為下一篇安裝篇先提到一下,最後講述Unity的環境與AI Trainer的運作模式,希望會讓大家更熟悉要如何實現AI透過Unity。
Reference : https://github.com/Unity-Technologies/ml-agents