ML-Agents训练智能AI使用技巧
ML-Agents是Unity開發(fā)智能AI的利器,但是學(xué)習(xí)曲線相對陡峭,需要一些機器學(xué)習(xí)算法的理解,經(jīng)過使用訓(xùn)練模式、好奇心模式的經(jīng)歷,總結(jié)一些使用技巧,供愛好者參考。
1.訓(xùn)練模式是老師帶學(xué)生的模式,玩家通過操作AI,與Agents AI具有相同的參數(shù),只不過用人工替代了電腦大腦的控制和判斷,也就是Actions的決策選擇。人工的操作不但能讓AI學(xué)習(xí)移動和一些操作,AI還能繼續(xù)使用加強學(xué)習(xí)的算法進行大腦的雙向訓(xùn)練。配置過程相對麻煩,可以參考官方示例。
2.對于一些復(fù)雜環(huán)境和多操作,比如要在躲避的過程中還選擇攻擊,在撿拾道具和攻擊、逃跑中做優(yōu)化尋澤,這種復(fù)雜的情況下,盡量開啟好奇心模式,在trainer.ymal配置中修改好奇心參數(shù)為true。這樣會盡量杜絕AI原地打轉(zhuǎn),浪費訓(xùn)練時間,也完全達不到使用目標(biāo)和要求。
3.一些簡單的訓(xùn)練場景一般都容易實現(xiàn)目標(biāo),但是像我們的正常游戲中,AI的操作動作都比較多,場景也比較復(fù)雜,比如各種石頭、墻壁等具有碰撞體的檢測,因此在基礎(chǔ)訓(xùn)練滿足后,就要將復(fù)雜的真實場景進行訓(xùn)練場景的搭建,個人覺得這個步驟很關(guān)鍵,不要單純的降低訓(xùn)練環(huán)境實現(xiàn)大腦文件生成,若此,AI到真實場景中就容易鉆入一些復(fù)雜環(huán)境無法進行智能判斷。
4.一勞永逸的攝像機模式不能使用,開始就卡死,不清楚是什么問題,個人感覺跟顯卡沒有關(guān)系,因為我配置的模式是CPU模式。
5.AI的技能訓(xùn)練盡量不用真實技能,可以用射線碰撞代替射線類技能,訓(xùn)練完畢后,將真實技能參數(shù)調(diào)整到射線碰撞的參數(shù),比如距離、有效半徑等。
6.在重寫動作控制的方法時,盡量添加一些基本的限制條件,比如22m內(nèi)如果沒有檢測到攻擊目標(biāo)的存在就不要釋放20m范圍攻擊的技能,明顯攻擊不到敵人。
7.代碼部分
查找范圍敵人并排序
public Transform ClosestEnemy(float viewRange) {
var cols = new List(Physics.OverlapSphere(transform.position, viewRange, enemyMask));
cols.Remove(m_collider);
var firstOrDefault = cols.OrderBy(x => Vector3.Distance(transform.position, x.transform.position)).FirstOrDefault();
return firstOrDefault != null ? firstOrDefault.transform : null;
}
總結(jié)
以上是生活随笔為你收集整理的ML-Agents训练智能AI使用技巧的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java 连接ntp服务器_NTP搭建-
- 下一篇: C++关联数组