Paia Desktop

單機版積木程式 Paia Desktop

程式安裝

進到 Github 頁面 後,可以在底下 Downloads 的位置找到最新版的 Windows 與 macOS 安裝檔,下載後執行就可以啟動程式了。

操作介面

遊戲選擇

打開程式後會先進到遊戲選擇的介面,點選「玩遊戲」後就可以進到積木編輯介面了。

積木編輯介面

基礎的積木操作方法與線上平台相似,不熟悉的使用者可以先參考 平台操作說明 以及 基礎積木介紹 的部分。

而與線上平台最大的不同的在於右上角選項的部分,以下會一一介紹每個選項的功能:

  • 「玩遊戲」:可以直接使用介面中的 MLPlay 積木去玩遊戲。
  • 「執行 Python 檔」:可以將介面中所有的積木轉換為一個 Python 程式並執行。
  • 「開啟 / 儲存 XML 檔」:介面中所有積木的位置、排列方式都可以儲存成一個 XML 檔,這樣就可在下一次重新開啟這個 XML 檔時,還原所有當時的積木狀態。
  • 「儲存 Python 檔」:可以儲存目前積木所轉換出的 Python 程式碼。
  • 「捨棄所有積木」:將畫面中所有積木捨棄,捨棄之前記得要存檔喔。
  • 「選擇遊戲」:可以回到之前的遊戲選擇畫面選擇其他遊戲。

模型積木

模型建立

建立模型的積木有兩種,第一種是分類模型,預測的結果為類別;第二種是迴歸模型,預測的結果是數值。使用者可以依照自己對於遊戲的理解以及選用的策略,選擇建立不同的模型。

模型訓練

模型的訓練需要準備訓練資料以及相對應的訓練目標,以下我們以訓練一個可以判斷兩個數字加起來是否大於 0 的分類器為例。

  1. 首先我們準備了 5 筆資料放在一個清單中,每筆資料也都是一個包含兩個數字的清單,注意每筆資料的長度都必須是一致的,另外就算每筆資料的只有一個數值,也需要包在清單當中。

  2. 接著我們建立了相對應的類別,類別可以是數字,也可以是文字,但一定要跟訓練資料的數量是一樣的,就像是這個範例中數量同樣都是 5 筆。

  3. 接這我們就可以放到建立的模型去訓練,合起來就會像下圖這樣。

  4. 迴歸模型的訓練也是類似的,例如我們把訓練目標改成兩個數字加總的值的話,可以改成像下圖這樣去訓練。

模型預測

模型訓練完畢後,我們就可以拿來預測新的資料,預測的資料可以很多筆,但每筆資料一定要跟當初的訓練資料的長度是一致的。以下圖為例,我們可以讓剛剛訓練的模型一次預測 3 筆資料,但每筆資料一定都要是包含兩個數字的清單。

檔案積木

檔案儲存

儲存積木可以讓我們在程式運行中,把希望被保存下來的資料或訓練好的模型儲存成檔案,例如執行完上圖的積木後,就會在之前設定的「資料存取位置」產生下圖的檔案。

檔案讀取

讀取積木可以將之前保存在檔案的資料或模型讀取回來,例如可以像圖中從 模型-03 的檔案讀取我們已經訓練好的模型,並且直接用來預測新的資料。

自走車遊戲範例

要使用機器學習遊戲模型玩遊戲,我們需要先產生出訓練資料,再來訓練模型,最後利用模型預測出來的數值玩遊戲。以下分別說明此三步驟。

以規則取向搜集訓練資料

自走車行走判斷規則說明

  • 以下是自走車判斷前進、左轉、右轉的簡單規則
    • 如果左側距離大於30且前方距離小於20且右側距離小於20,那麼自走車將會左轉
    • 如果右側距離大於30且前方距離小於20且左側距離小於20,那麼自走車將會右轉
    • 不符合以上情形則為前進
  • 前進、左轉、右轉需調整馬達轉速,以下自走車行走行為對應之示意積木
    • 前進:
    • 左轉:
    • 右轉:

      訓練資料搜集

  • 在自走車遊戲中,我們需要搜集兩種資料來訓練我們的模型,分別是超音波值與馬達轉速值,以下為搜集超音波值與馬達轉速值的積木示意圖
    • 搜集超音波值
    • 搜集馬達轉速值
    • 最後利用儲存積木來儲存訓練資料
  • 統整以上觀念可用以下積木組合完成遊戲並搜集資料

    訓練機器學習遊戲模型

  • 我們須先從剛剛蒐集的訓練資料中讀取檔案並儲存在變數中,接著我們需要建立模型並訓練,這邊我們採用 k-最近鄰居模型來訓練。
  • 我們需利用超音波前左右三側距離來預測出馬達轉速,所以此處的訓練資料為「超音波值」,目標為「馬達轉速」。
  • 最後我們將訓練好的模型儲存至 model 檔案中。
  • 以下為訓練模型積木示意圖

    以機器學習遊戲模型玩遊戲

  • 最後是以訓練完之模型來玩遊戲
    • 我們須先從檔案中讀取模型,積木示意圖如下
    • 再來將超音波值給模型去預測,轉速值為模型預測之結果,積木示意圖如下
  • 綜合以上觀念並可用訓練之模型玩遊戲,以下為積木示意圖