前往
大廳
主題

Unity ML 功能善用

夏洛爾 | 2022-05-15 15:26:49 | 巴幣 2002 | 人氣 108

玩了兩年的ML,但最近發現自己還是像山頂洞人一樣

1.Curriculum Learning
Unity ML可以安排漸進難度的環境,讓Agent不用一開始就面對太高難度的環境而無所適從,根據Agent進展才慢慢提供高難度環境

範例: Wall Jump

2.SetModel
Unity ML 可以根據情況讓Agent更換Model,讓Agent可以在狀態或環境不同時,採用不同的行為策略

範例: Wall Jump

不過還搞不清楚能不能中途切換,Wall Jump是在初始化完的下一禎馬上切換Model,然後貫徹整個訓練
不知能不能做出類似,紅蓮跌倒時採用的是起身的Model,然後起身後改成採用動作的Model,感覺應該是可以,所以值得期待,雖然這樣episode不等長的問題還不知道怎麼處理

3.Curiosity
Unity ML可以透過Curiosity去鼓勵Agent探索尚未嘗試過的策略
只有這個是之前就知道

範例: Pyramids

4.PPO vs SAC
一直以來都只使用PPO訓練,沒有去調查SAC是怎麼樣的ML,直到看到下方影片才發現大致可以理解成

PPO: 擅長高效找出唯一最佳解
SAC: 可以找出多個泛用解,以便應對各種變動情況


由於一直以來都有受困於無法讓紅蓮執行複雜任務的困境
感覺SAC有可能是突破口

不過暫時無法驗證,我的電腦是七年的老電腦,PPO還可以,但同樣程式嘗試SAC後可以說幾乎跑不動
等待這幾天換電腦後再進行驗證了

總之這件事告訴我,學習真的很重要
以後還是不要懶惰也不要傲慢,最好把Unity範例全部掃一圈,以免錯過明明很需要,卻不知道存在的功能

創作回應

更多創作