สร้างเครื่องเรียนรู้ AI ในเครื่องยนต์ Unreal 4 & 5
รู้เบื้องต้นเกี่ยวกับ MindMaker: https://www.youtube.com/watch?v=erm_pzhapia
พิมพ์เขียวภาพรวม: https://youtu.be/tuo423nujek
Discord Group: https://discord.gg/shxfwtmsha
ปลั๊กอิน MindMaker AI เป็นปลั๊กอินโอเพนซอร์ซที่ช่วยให้เกมและการจำลองภายใน UE4 และ UE5 ทำหน้าที่เป็นสภาพแวดล้อมของ OpenAI Gym สำหรับการฝึกอบรมตัวแทนการเรียนรู้ของเครื่องจักรอัตโนมัติ ปลั๊กอินอำนวยความสะดวกในการเชื่อมต่อเครือข่ายระหว่างโครงการ Unreal Engine ที่มีสภาพแวดล้อมการเรียนรู้และไลบรารี Python ML ที่ได้รับข้อมูลจาก Unreal Engine และการแยกวิเคราะห์ไปยังสภาพแวดล้อม OpenAI Gym ที่กำหนดเองสำหรับการฝึกอบรมตัวแทน ไลบรารีการเรียนรู้ของเครื่องสแตนด์อโลนอาจเป็นสคริปต์ Python ที่กำหนดเองในกรณีที่คุณกำลังสร้างเครื่องมือ ML ของคุณเองโดยใช้เซิร์ฟเวอร์ ML ระยะไกลของ MindMaker หรืออาจเป็นเอ็นจิ้นการเรียนรู้ที่คอมไพล์ได้เช่นเอ็นจิน DRL ของ Mindmaker ไม่ว่าคุณจะเลือกตัวเลือกใดการใช้ MindMaker AI Plugin นักพัฒนาและนักวิจัยสามารถฝึกอบรมตัวแทนการเรียนรู้ของเครื่องสำหรับโครงการ 2D, 3D และ VR ได้อย่างง่ายดาย
แอพพลิเคชั่นที่เป็นไปได้ขยายเกินกว่าการออกแบบเกมไปสู่ความพยายามทางวิทยาศาสตร์และทางเทคนิคที่หลากหลาย เหล่านี้รวมถึงการจำลองหุ่นยนต์การขับขี่แบบอิสระสถาปัตยกรรมกำเนิดกราฟิกขั้นตอนและอื่น ๆ อีกมากมาย API นี้เป็นแพลตฟอร์มกลางที่ความก้าวหน้าในการเรียนรู้ของเครื่องสามารถเข้าถึงหลายสาขาเหล่านี้ สำหรับนักพัฒนาเกมกรณีการใช้งานสำหรับตัวแทนที่ปรับตัวเอง ได้แก่ การควบคุมพฤติกรรม NPC (ในการตั้งค่าที่หลากหลายเช่นหลายตัวแทนและฝ่ายตรงข้าม) การตัดสินใจออกแบบเกมต้นแบบและการทดสอบการสร้างเกมอัตโนมัติ
เอ็นจิ้นการเรียนรู้ DRL นั้นรวมอยู่ในลิงค์ไปยังโครงการตัวอย่างเช่นเดียวกับซอร์สโค้ด Python สำหรับการแก้ไขที่พบในไดเรกทอรีเนื้อหา MindMaker Source อัลกอริทึมที่ได้รับการสนับสนุนในปัจจุบันโดยเอ็นจิ้นการเรียนรู้ DRL ได้แก่ : นักแสดงนักแสดง (A2C) ตัวอย่างนักแสดงนักแสดงที่มีประสิทธิภาพด้วยประสบการณ์การเล่นซ้ำ (ACER) นักวิจารณ์นักแสดงที่ใช้ Kronecker-Factored Trust Region (ACKTR), Deep Q Network (DQN) การไล่ระดับสีเชิงนโยบายที่กำหนด (DDPG) ปลั๊กอินมีหน้าที่คล้ายกับเอเจนต์ ML ของ Unity โดยมีข้อดีบางประการ - แทนที่จะต้องการสร้างสภาพแวดล้อม OpenAI Gym ที่กำหนดเองสำหรับทุกแอปพลิเคชันหนึ่งใช้สภาพแวดล้อมเดียวและเพียงแค่เลือกการสังเกตและการกระทำของตัวแทนที่จะเปิดเผยอัลกอริทึม ML voila ให้การเรียนรู้เริ่มต้น!
มีสององค์ประกอบหลักที่คุณจะใช้ในขณะที่ทำงานกับปลั๊กอิน MindMaker ซึ่งเป็นโครงการที่ไม่จริงของ Enginge ที่มีสภาพแวดล้อมการเรียนรู้และห้องสมุดการเรียนรู้ของเครื่องสแตนด์อโลนที่ตัวแทนใช้โดยตัวแทนเพื่อเพิ่มประสิทธิภาพสิ่งที่พยายามเรียนรู้ ไลบรารีการเรียนรู้ของเครื่องสแตนด์อโลนอาจเป็นสคริปต์ Python ที่กำหนดเองในกรณีที่คุณกำลังสร้างเครื่องมือ ML ของคุณเองโดยใช้เซิร์ฟเวอร์ ML ระยะไกลของ MindMaker หรืออาจเป็นเอ็นจิ้นการเรียนรู้ที่คอมไพล์ได้เช่น MindMaker DRL Engine (อัลกอริทึมพื้นฐานที่เสถียร)
ในการทดลองโดยใช้ไลบรารี ML ที่แตกต่างกันร่วมกับ MindMaker ให้ใช้ MindMaker Remote ML Server ด้วยมันคุณสามารถปรับแต่งกลไกการเรียนรู้ของ Python ของคุณเองแทนที่จะใช้เครื่องยนต์ DRL MindMaker ที่คอมไพล์ล่วงหน้า หากต้องการใช้เซิร์ฟเวอร์ระยะไกล ML ให้ทำตามขั้นตอนเหล่านี้:
หากคุณต้องการใช้ไคลเอนต์ ML หลายตัวที่เชื่อมต่อกับสภาพแวดล้อมการเรียนรู้เดียวเช่นในสถานการณ์จำลองหลายอย่างสามารถทำได้โดยใช้ MindMaker Server และปลั๊กอิน
ในการสร้างตัวแทนการเรียนรู้ที่หลากหลายให้ตั้งค่าตัวแทนการเรียนรู้ของคุณก่อนที่แสดงในหนึ่งในตัวอย่างพิมพ์เขียว สำหรับเอเจนต์การเรียนรู้ใหม่แต่ละตัวคุณจะต้องเพิ่มการตั้งค่าพอร์ต Socketio ในคอนโทรลเลอร์ AI ใหม่โดย 1 ในเวลาที่เปิดตัวเซิร์ฟเวอร์หมายเลขพอร์ตเซิร์ฟเวอร์ใหม่จะถูกสร้างขึ้นโดยอัตโนมัติสำหรับแต่ละอินสแตนซ์ใหม่ของ MindMaker.exe ที่คุณเปิดตัวเริ่มต้นด้วย 3000
ตัวอย่างเช่นหากคุณเพิ่มเอเจนต์การเรียนรู้ครั้งที่สองลงในแผนที่ของคุณคุณจะต้องใช้ฟังก์ชั่นเดียวกันทั้งหมดที่อยู่ในตัวแทนการเรียนรู้ครั้งแรกโหนด MindMaker Launch MindMaker ฯลฯ แต่แทนที่จะกำหนดอันนี้ให้กับพอร์ต 3000 คุณจะกำหนดพอร์ต 3001 ในพิมพ์เขียว นอกเหนือจากการเปลี่ยนการตั้งค่าพอร์ต Socketio ในพิมพ์เขียวแล้วคุณจะต้องเปลี่ยนเพื่อเปลี่ยนฟังก์ชั่นเชื่อมต่อ Socketio Blueprint, การปรับเปลี่ยนที่อยู่และพอร์ตเป็นหมายเลขใหม่ที่คุณสร้าง“ http: // localhost: 3001”
เมื่อทำเสร็จแล้วคุณจะต้องสร้างอินสแตนซ์ที่สองของไฟล์ MindMaker_client.py ของคุณที่จะเชื่อมต่อกับตัวแทนการเรียนรู้ที่สองของคุณ การฝึกอบรมสามารถทำได้พร้อมกันพร้อมกัน การดัดแปลงเพียงอย่างเดียวที่คุณต้องทำกับ MindMaker_client.py กำลังเปลี่ยน sio.connect ('http: // localhost: 3000') ที่ด้านล่างของไฟล์เป็น sio.connect ('http: // localhost: 3001') หรืออะไรก็ตาม หากคุณมีตัวแทนการเรียนรู้ห้ารายการมากกว่าที่คุณจะมีห้าอินสแตนซ์ของลูกค้าที่ทำงานอยู่และแต่ละคนจะมีหมายเลขพอร์ตใหม่จนถึง 3005
การเรียนรู้การเลียนแบบด้วยเสถียรภาพ 3 แหล่ง MindMaker Python สามารถปรับเปลี่ยนได้เพื่อสนับสนุนการเรียนรู้การเลียนแบบโดยใช้อัลกอริทึมการเรียนรู้การเลียนแบบที่มีเสถียรภาพ
หากต้องการบันทึกโมเดลที่ผ่านการฝึกอบรมให้ตั้งค่าช่องทำเครื่องหมาย“ Save Model After Training” ในฟังก์ชั่น Launch MindMaker เป็น TRUE คุณจะต้องตรวจสอบให้แน่ใจว่าจำนวนตอนการฝึกอบรมของคุณเป็นหมายเลขที่ไม่ใช่ศูนย์ แบบจำลองจะประหยัดหลังจากการฝึกอบรมเสร็จสมบูรณ์ ในการโหลดโมเดลที่ผ่านการฝึกอบรมให้ยกเลิกการตรวจสอบช่องทำเครื่องหมาย“ Save Model After Training” และตั้งค่าช่องทำเครื่องหมาย“ โหลดโมเดลที่ผ่านการฝึกอบรมล่วงหน้า” แทนที่จะเป็นฟังก์ชันการเปิดใช้งาน MindMaker เป็นจริง คุณจะต้องตั้งค่าจำนวนตอนการฝึกอบรมเป็นศูนย์เนื่องจากไม่มีการฝึกอบรมใด ๆ ตรวจสอบให้แน่ใจว่าจำนวนการประเมินตอนเป็นจำนวนเต็มที่ไม่ใช่ศูนย์เนื่องจากนี่เป็นวิธีที่โมเดลที่ผ่านการฝึกอบรมมาก่อนแสดงให้เห็นถึงการเรียนรู้ โมเดลจะถูกบันทึกไว้ในเครื่องในโฟลเดอร์“ AppData Roaming” ของคอมพิวเตอร์ของคุณเช่น c: users leon appdata Roaming
โดยค่าเริ่มต้น MindMaker จะบันทึกไปยังไดเรกทอรี AppData/Roaming บนเครื่อง Windows เท่านั้น หากต้องการเปิดใช้งานการบันทึก Tensorboard ให้ทำตามขั้นตอนเหล่านี้
นี่เป็นกระบวนการสามขั้นตอนคุณต้องตัดสินใจว่าการกระทำที่ตัวแทนสามารถทำได้อย่างไรเกณฑ์การให้รางวัลจะเป็นอย่างไรและการสังเกตที่ตัวแทนจะต้องทำเกี่ยวกับสภาพแวดล้อมของมันเพื่อเรียนรู้ที่จะได้รับรางวัล
เปิดตัว MindMaker ---------> รับการกระทำ --------> make obs -----> ตรวจสอบรางวัล --------> ส่ง obs และ rwrd ไปยัง MindMaker ------ กลับไปรับการกระทำ
ในกระบวนการเรียนรู้เครื่องมือการเรียนรู้ของ MindMaker จะต้องได้รับการกำหนดค่าด้วยพื้นที่สังเกตการณ์ที่ตัวแทนใช้และจำนวนการกระทำทั้งหมดที่มีให้กับตัวแทน คุณไม่จำเป็นต้องให้ข้อมูลรางวัลใด ๆ เมื่อมีการเริ่มต้นสิ่งนี้จะพบได้ในระหว่างการฝึกอบรมเท่านั้น
กระบวนการโดยรวมสำหรับการเรียนรู้คือเมื่อเปิดตัวและเชื่อมต่อกับการเชื่อมต่อกับเครื่องยนต์ที่ไม่เป็นจริงเครื่องมือการเรียนรู้ของ MindMaker จะเริ่มต้นการดำเนินการแบบสุ่มสำหรับตัวแทนเครื่องยนต์ที่ไม่ได้ทำและในการตอบสนองตัวแทนของ UE จะส่งรายการการสังเกตที่เกิดขึ้นเมื่อการดำเนินการนอกเหนือจากรางวัลใด ๆ ที่ได้รับในกระบวนการ ดูแผนภาพด้านบน ในหลาย ๆ ตอนอัลกอริทึมที่ใช้โดย MindMaker จะเพิ่มประสิทธิภาพการกระทำของตัวแทนในการตอบสนองต่อการสังเกตและรางวัลที่ได้รับจาก UE กระบวนการนี้เหมือนกันโดยไม่คำนึงถึงอัลกอริทึมการเรียนรู้ของเครื่องที่เราเลือกที่จะใช้กับ MindMaker ด้วยข้อมูลนี้อัลกอริทึมการเรียนรู้ที่ใช้ MindMaker จะเริ่มเพิ่มประสิทธิภาพการตัดสินใจของตัวแทนการดำเนินการค้นหาลำดับที่จำเป็นในการรับรางวัลอย่างสม่ำเสมอ การแลกเปลี่ยนระหว่างการกระทำแบบสุ่มและการกระทำโดยเจตนานั้นถูกควบคุมในพารามิเตอร์การสำรวจ/การแสวงหาผลประโยชน์ของไลบรารี ML ที่คุณเลือกใช้กับ MindMaker เช่นเส้นเขตแดนที่มั่นคง กระบวนการนี้ทำซ้ำสำหรับการฝึกอบรมแต่ละตอน หลังจากจำนวนการฝึกอบรมจำนวนคงที่คุณสามารถเปลี่ยนเป็นอัลกอริทึมทั้งหมดเพื่อทำนายการกระทำที่ดีที่สุดแทนที่จะใช้แบบสุ่ม
ฟังก์ชั่น MindMaker โดยการปิดสภาพแวดล้อมที่ไม่เป็นจริงในรูปแบบที่เข้ากันได้กับ OpenAI Gym เพื่อให้ห้องสมุด ML ใด ๆ ที่ได้รับการออกแบบมาเพื่อทำงานกับ OpenAI Gym สามารถนำไปใช้กับสภาพแวดล้อมเครื่องยนต์ที่ไม่เป็นจริงของคุณ วัตถุประสงค์ของการใช้ Open AI Gym คือการสร้างมาตรฐานปัจจัยที่เกี่ยวข้องสำหรับการเรียนรู้คือรูปแบบสำหรับการรับการสังเกตตัวแทนรางวัลและการกระทำเพื่อให้ ML AlgorityHM สามารถเข้าถึงตัวแปรที่เกี่ยวข้องสำหรับการเรียนรู้โดยไม่จำเป็นต้องติดตั้งเพิ่มเติมสำหรับแต่ละงานที่เฉพาะเจาะจง อัลกอริทึมที่ทำงานร่วมกับ Openai Gym สามารถทำงานกับสภาพแวดล้อมและตัวแทนใด ๆ ที่ใช้โปรโตคอล OpenAI ที่ได้มาตรฐาน
การกำหนดค่าเครื่องมือการเรียนรู้ MindMaker ในตอนแรกคุณจะต้องกำหนดค่าฟังก์ชั่น Launch MindMaker ภายใน Unreal Engine สำหรับตัวแทนการเรียนรู้ของคุณ สิ่งนี้ทำได้โดยการตั้งค่าตัวแปร action_space ภายใน MindMaker ให้เท่ากับจำนวนการกระทำทั้งหมดที่มีให้กับตัวแทนของคุณ คุณจะต้องกำหนดค่าตัวแปร Observation_space เพื่อให้ตรงกับจำนวนและประเภทของการสังเกตตัวแทนของคุณจะใช้ในเรื่องของรางวัลที่พยายามรับ โดยค่าเริ่มต้นการสังเกตจะถูกส่งผ่านจาก Unreal เป็นอาร์เรย์ดูโครงการตัวอย่าง ขึ้นอยู่กับจำนวนการสังเกตตัวแทนของคุณจะพบว่าจำเป็นต้องใช้ขนาดของการสังเกตการณ์ _space จะเปลี่ยนไป
รางวัล - รางวัลเป็นตัวแปรที่ตั้งค่าตามเกณฑ์เฉพาะที่คุณเลือกให้ตัวแทนเรียนรู้หรือปรับให้เหมาะสม ในพิมพ์เขียว UE4 คุณจะใช้โหนดสาขาเพื่อพิจารณาว่าสภาพแวดล้อมและการกระทำของตัวแทนจะต้องปฏิบัติตามใดเพื่อให้รางวัลเปิดใช้งาน สิ่งนี้ผ่านไปยัง MindMaker โดยการเชื่อมต่อ Socketio ดูตัวอย่างโครงการ การดำเนินการ - นี่คือตัวแปรที่มีค่าจำนวนเต็มแทนการกระทำใดก็ตามที่ตัวแทนได้ดำเนินการ คุณจะต้องตัดสินใจจำนวนการกระทำทั้งหมดที่มีให้กับตัวแทนและตั้งค่าสูงสุดใน MindMaker ให้เท่ากับหมายเลขนี้ การสังเกต - perhapse ตัวแปรที่ยากที่สุดที่คุณจะจัดการ กุญแจสำคัญในการตั้งค่านี้อย่างถูกต้องคือการเข้าใจว่าการกระทำของตัวแทนเองจะต้องรวมอยู่ในตัวแปรการสังเกตนอกเหนือจากเกณฑ์สิ่งแวดล้อมอื่น ๆ ที่อ้างอิงในฟังก์ชันรางวัล ตัวแทนจำเป็นต้องรู้ว่าการกระทำหรือการกระทำใดที่มีอิทธิพลต่อรางวัลและตัวแปรสภาพแวดล้อมใด ๆ ที่เปลี่ยนแปลงเช่นกัน สิ่งเหล่านี้จะถูกส่งผ่านไปยังเครื่องมือการเรียนรู้ของ MindMaker เป็นอาร์เรย์และอัปเดตในตัวแปรการสังเกตในนั้น
ที่นี่เราจะหารือเกี่ยวกับพารามิเตอร์แต่ละตัวของโหนด Blueprint LaunchMindmaker ซึ่งเป็นองค์ประกอบหลักของฟังก์ชั่นพิมพ์เขียว MindMaker
อัลกอริทึม RL - นี่คือที่หนึ่งสามารถเลือกรสชาติของอัลกอริทึม RL ที่เราต้องการฝึกอบรมตัวแทนด้วย มีสิบตัวเลือกในเมนูแบบเลื่อนลงโดยแต่ละอัลกอริทึมมีข้อดีและข้อเสียของตัวเอง การอภิปรายโดยละเอียดเกี่ยวกับอัลกอริทึมที่เกี่ยวข้องและกรณีการใช้งานของพวกเขาสามารถพบได้ที่นี่ https://spinningup.openai.com/en/latest/spinningup/rl_intro2.html
NUM Train EP - นี่คืออินพุตจำนวนเต็มที่แสดงจำนวนตอนการฝึกอบรมที่เราปรารถนาให้ตัวแทนดำเนินการ ยิ่งจำนวนการฝึกอบรมมากขึ้นเท่าใดการสำรวจที่ตัวแทนจะทำมากขึ้นก่อนที่จะเปลี่ยนไปใช้พฤติกรรมเชิงกลยุทธ์ที่ได้รับในระหว่างการฝึกอบรม ความซับซ้อนของการกระทำที่ตัวแทนกำลังพยายามเรียนรู้โดยทั่วไปจะกำหนดจำนวนตอนการฝึกอบรมที่จำเป็น - กลยุทธ์และพฤติกรรมที่ซับซ้อนมากขึ้นต้องใช้ตอนการฝึกอบรมเพิ่มเติม
NUM Eval EP - นี่คืออินพุตจำนวนเต็มและแสดงจำนวนตอนการประเมินผลที่ตัวแทนจะได้รับหลังจากการฝึกอบรม นี่คือตอนที่ตัวแทนแสดงพฤติกรรมที่เรียนรู้
พื้นที่แอ็คชั่นต่อเนื่อง - นี่คืออินพุตบูลีนซึ่งกำหนดว่าเอเจนต์ใช้พื้นที่การกระทำต่อเนื่องหรือไม่ พื้นที่แอ็คชั่นอย่างต่อเนื่องเป็นพื้นที่ที่มีจำนวนการกระทำที่ไม่สิ้นสุดที่ตัวแทนสามารถทำได้เช่นหากเป็นการเรียนรู้ที่จะนำรถและช่วงของมุมที่คอลัมน์พวงมาลัยสามารถเปลี่ยนได้คือค่าทศนิยมระหว่าง 0 และ 180 คุณจะต้องระบุเมื่อเริ่มการใช้งานหากตัวแทนของคุณมีจำนวนการกระทำที่ไม่มีที่สิ้นสุดหรือการกระทำจำนวน จำกัด ที่พวกเขาสามารถทำได้ พื้นที่การกระทำจะต้องต่อเนื่องหรือไม่ต่อเนื่องไม่สามารถเป็นได้ทั้งคู่
พื้นที่การกระทำที่ไม่ต่อเนื่อง - นี่คืออินพุตบูลีนซึ่งกำหนดว่าเอเจนต์กำลังใช้พื้นที่การกระทำแบบไม่ต่อเนื่องหรือไม่ พื้นที่แอ็คชั่นที่ไม่ต่อเนื่องเป็นพื้นที่ที่มีจำนวน จำกัด การกระทำที่ตัวแทนสามารถทำได้เช่นถ้า AI สามารถเคลื่อนย้ายได้ทางขวาหนึ่งช่องว่างหรือเหลือหนึ่งช่องว่าง ในกรณีนี้มีเพียงสองการกระทำที่พร้อมใช้งานและพื้นที่ปฏิบัติการไม่ต่อเนื่อง ผู้ใช้กำหนดพื้นที่การกระทำที่ตัวแทนจะใช้ก่อนใช้ MindMaker และตั้งค่าเหล่านี้ตามนั้น
รูปร่างพื้นที่การกระทำ - นี่เป็นกำหนดขอบเขตล่างและบนของการกระทำที่มีให้กับตัวแทน หากคุณใช้พื้นที่แอ็คชั่นที่ไม่ต่อเนื่องมากกว่านี้เป็นเพียงจำนวนการกระทำทั้งหมดที่มีให้กับเอเจนต์เช่น 2 หรือ 8 หากคุณใช้พื้นที่ปฏิบัติการต่อเนื่องสิ่งต่าง ๆ มีความซับซ้อนมากขึ้นและคุณต้องกำหนดขอบเขตต่ำและสูงของพื้นที่ปฏิบัติการแยกออกจากกัน รูปแบบสำหรับการทำเช่นนั้นมีดังนี้: low = lowboundary, high = highboundary, shape = (1,) ในกรณีนี้ lowboundary เป็นค่าเช่น -100.4 และ Highboundary เป็นค่าเช่น 298.46 ค่าทศนิยมทั้งหมดระหว่างขอบเขตเหล่านี้จะแสดงถึงการกระทำที่มีให้กับตัวแทน หากคุณมีการกระทำดังกล่าวคุณสามารถเปลี่ยนส่วนรูปร่างเพื่อสะท้อนสิ่งนี้ได้
รูปร่างพื้นที่สังเกตการณ์ - การพูดอย่างถูกต้องอินพุตนี้เป็นอนุพันธ์ของ Python ของคลาสสภาพแวดล้อมแบบกำหนดเองแบบเปิดและกำหนดขอบเขตล่างและบนของการสังเกตที่มีให้กับตัวแทนหลังจากดำเนินการ รูปแบบสำหรับการทำเช่นนั้นมีดังนี้: low = np.array ([lowboundary]), สูง = np.array ([highboundary]), dtype = np.float32 ลองนึกภาพตัวแทนที่จำเป็นต้องดำเนินการเฉพาะสามครั้งติดต่อกันเพื่อรับรางวัลจากนั้นพื้นที่สังเกตการณ์จะต้องรวมถึงการเข้าถึงการกระทำทั้งสามครั้งซึ่งแต่ละครั้งจะถูกแสดงโดยการสังเกตที่ไม่ซ้ำกัน ดังนั้นอาร์เรย์ของการสังเกตจะต้องรวมค่าที่แตกต่างกันสามค่าแต่ละอันมีขอบเขตที่ไม่ซ้ำกันของตัวเอง ตัวอย่างเช่นพื้นที่การกระทำดังกล่าวอาจถูกกำหนดเช่น: low = np.Array ([0,0,0]), สูง = np.Array ([100,100,100]), dtype = np.float32 หากการกระทำของตัวเอง พื้นที่สังเกตการณ์จะต้องมีการอ้างอิงถึงค่านั้น หากมีการปฏิบัติตามเงื่อนไขห้าข้อเพื่อให้ตัวแทนได้รับรางวัลมากกว่าแต่ละเงื่อนไขทั้งห้านี้จะต้องเป็นส่วนหนึ่งของพื้นที่สังเกตการณ์ตัวแทน
โหลดโมเดลที่ผ่านการฝึกอบรมล่วงหน้า - นี่คือค่าบูลีนที่กำหนดว่าคุณต้องการให้เอเจนต์โหลดพฤติกรรมที่ผ่านการฝึกอบรมมาก่อนซึ่งก่อนหน้านี้บันทึกไว้ก่อนหน้านี้ หากคุณตั้งค่าเป็นจริงคุณจะต้องระบุชื่อของไฟล์ในกล่องอินพุตชื่อบันทึก /โหลดโมเดล ทุกรุ่นจะถูกบันทึกโดยค่าเริ่มต้นไปยังไดเรกทอรีข้อมูลแอพพลิเคชั่นการโรมมิ่งของคอมพิวเตอร์ตัวอย่างเช่น c: users username appdata Roaming
บันทึกแบบจำลองหลังการฝึกอบรม - นี่เป็นค่าบูลีนที่กำหนดว่าคุณต้องการให้ตัวแทนบันทึกพฤติกรรมที่ได้เรียนรู้หลังจากการฝึกอบรมหรือไม่ หากคุณตั้งค่าเป็นจริงคุณจะต้องระบุชื่อของไฟล์ในกล่องอินพุตชื่อบันทึก/โหลดโมเดล ทุกรุ่นจะถูกบันทึกโดยค่าเริ่มต้นไปยังไดเรกทอรีข้อมูลแอพพลิเคชั่นการโรมมิ่งของคอมพิวเตอร์ตัวอย่างเช่น c: users username appdata Roaming
บันทึก/โหลดชื่อโมเดล - นี่คือสตริงที่แสดงชื่อของรุ่นที่คุณต้องการบันทึกหรือโหลด ไฟล์จะถูกบันทึกลงในไดเรกทอรีข้อมูลแอปข้อมูลของคอมพิวเตอร์เช่นตัวอย่าง C: Users USERNAME AppData Roaming
ใช้พารามิเตอร์ที่กำหนดเอง - นี่คือค่าบูลีนที่กำหนดว่าคุณต้องการใช้อัลกอริทึมเวอร์ชันสต็อกที่คุณเลือกหรือต้องการแก้ไขพารามิเตอร์หรือไม่ หากคุณต้องการใช้พารามิเตอร์ที่กำหนดเองสิ่งเหล่านี้สามารถเข้าถึงได้ผ่านตัวแปรโครงสร้างพารามิเตอร์ที่กำหนดเอง หากคุณคลิกที่พวกเขาเช่น A2CParams คุณจะเห็นค่าทั้งหมดที่สามารถตั้งค่าภายในโครงสร้างเหล่านี้ รายละเอียดของพารามิเตอร์สำหรับอัลกอริทึมแต่ละตัวสามารถดูได้ที่นี่: https://stable-baselines.readthedocs.io/en/master/
รายการตัวอย่างของฟังก์ชั่นจากโครงการตัวอย่างมีการนำเสนอด้านล่างเพื่อทำความเข้าใจว่าข้อมูลถูกส่งผ่านระหว่าง MindMaker และ Unreal Engine ทั้งหมดของสินทรัพย์ UE ทั้งหมดที่เกี่ยวข้องกับปัญหาของเล่นมีอยู่ในโฟลเดอร์สินทรัพย์/deeplearningNPC สิ่งสำคัญคือพิมพ์เขียวที่เรียกว่า AI_CHARACTION_CONTROLER_BP ในพิมพ์เขียว AI_CHARACTER_CONTROLER_BP ตัวแปรสภาพแวดล้อมทั้งหมดได้รับการกำหนดค่าสำหรับการส่งผ่านไปยังแอปพลิเคชัน MindMaker Standalone เหล่านี้รวมถึงฟังก์ชั่นสำคัญต่อไปนี้
ฟังก์ชั่นอินพุตทางประสาทสัมผัสของโหลด - นำเข้าวัตถุที่ AI จะสามารถเข้าถึงการตรวจจับหรือจัดการฟังก์ชั่นการควบคุมสภาพแวดล้อมของสภาพแวดล้อม - สิ่งนี้ควบคุมตรรกะสำหรับชิ้นส่วนของสภาพแวดล้อมที่เปลี่ยนไฟสวิตช์ดังกล่าว
กำหนดฟังก์ชั่นพื้นที่การกระทำ - เข้ารหัสการกระทำของเอเจนต์ที่เป็นไปได้ทั้งหมดเป็นค่าตัวเลขเดียวที่สามารถส่งผ่านไปยังแอปพลิเคชันแบบสแตนด์อโลนเพื่อการประเมินผลโดยอัลกอริทึม RL
ฟังก์ชั่น LaunchMindMaker - สิ่งนี้เรียกแอปพลิเคชันแบบสแตนด์อโลนเมื่อเริ่มเล่นเพื่อให้สามารถเริ่มต้นการประเมินข้อมูลจากสภาพแวดล้อม UE หลังจากสิ่งนี้เริ่มต้นขึ้นแอปพลิเคชัน RL จะเริ่มตรวจสอบสภาพแวดล้อมด้วยการกระทำแบบสุ่มที่สร้างขึ้นเองเช่นคนตาบอดที่กำลังค้นหาในที่มืดเพื่อแสง แสงคือรางวัลซึ่งระบุไว้ในฟังก์ชั่นการตรวจสอบฟังก์ชั่น UE LaunchLearningEngine ยังส่งผ่านข้อมูลสภาพแวดล้อม UE ขั้นพื้นฐานบางอย่างไปยังแอปพลิเคชันแบบสแตนด์อโลนเช่นจำนวนการกระทำที่ตัวแทนสามารถทำได้จำนวนตอนทั้งหมดที่จะฝึกอบรมและจำนวนตอนที่จะแสดงตัวแทนที่ได้รับหลังจากการฝึกอบรม การแสดงการฝึกอบรมแบบสุ่มตัวแทนทั้งหมดจะใช้เวลานานเกินไป
ฟังก์ชั่นลูกหนี้ - หลังจากฟังก์ชั่นการเรียนรู้ของเอ็นจิ้นการเปิดตัวได้เริ่มขึ้นแล้วฟังก์ชั่นถัดไปในการยิงจะได้รับการตอบสนอง สิ่งนี้ได้รับการกระทำที่เลือกโดยแอปพลิเคชันแบบสแตนด์อโลนและทำตามขั้นตอนการติดตามจำนวนหนึ่งเช่นการปรับปรุงตำแหน่งตัวแทนในสภาพแวดล้อมการตรวจสอบว่าการกระทำใหม่เป็นไปตามเงื่อนไขการให้รางวัลแสดงการกระทำของตัวแทนหากเราผ่านการฝึกอบรมและปรับปรุงการสังเกตตัวแทนเกี่ยวกับสภาพแวดล้อม
ทำฟังก์ชั่นการสังเกต - จุดประสงค์ของสิ่งนี้คือการปรับปรุงการสังเกตตัวแทนเกี่ยวกับสภาพแวดล้อมหลังจากการกระทำที่เพิ่งเกิดขึ้น ตัวอย่างเช่นสิ่งเหล่านี้จะรวมถึงตำแหน่งตัวแทนที่มีสภาพแวดล้อมและข้อมูลสิ่งแวดล้อมอื่น ๆ ที่เปลี่ยนแปลงไปตั้งแต่ดำเนินการครั้งล่าสุด สิ่งเหล่านี้จะถูกเก็บไว้ในตัวแปรโครงสร้างที่กำหนดเอง
CheckReward - นี่ระบุเงื่อนไขการให้รางวัลสำหรับตัวแทนในสภาพแวดล้อม หากเงื่อนไขการให้รางวัลนี้เป็นไปตามตัวแทนที่ดำเนินการข้อมูลนี้จะถูกส่งผ่านไปยังแอปพลิเคชันแบบสแตนด์อโลนในฟังก์ชั่นการสังเกตการส่งที่ตามมา ส่งฟังก์ชั่นการสังเกต - นำการสังเกตใหม่ที่ทำโดยตัวแทนรวมถึงข้อมูลรางวัลใด ๆ และส่งผ่านไปยังแอปพลิเคชันแบบสแตนด์อโลน นี่คือวิธีที่อัลกอริทึม RL จะสามารถประเมินได้ว่าการกระทำที่เพิ่งเกิดขึ้นนั้นเป็นสิ่งที่ดีและอัปเดตกลยุทธ์ตามนั้นหรือไม่ หลังจากฟังก์ชั่นนี้ไฟการวนซ้ำหรือตอนของเกมเสร็จสมบูรณ์และกระบวนการจะทำซ้ำ Infinitum โฆษณา
งานบางอย่างอาจต้องใช้เวลานานในการฝึกอบรมซึ่งการมองเห็นการเคลื่อนไหวของตัวแทนจะพิสูจน์ได้ว่าต้องใช้เวลานาน เช่นนี้ในตัวอย่างบางอย่างที่แสดงให้เห็นถึงการเคลื่อนไหวของตัวแทนนั้นถูกปิดใช้งาน แต่การฝึกอบรมจะเกิดขึ้นในพื้นหลังเมื่อตัวอย่างดำเนินการและเมื่อเสร็จสิ้นตัวแทนจะแสดงกลยุทธ์ที่ได้มา
การสุ่มในกรณีนี้หมายความว่าเอเจนต์ใช้เครื่องกำเนิดตัวเลขสุ่มเพื่อเลือกระหว่างการกระทำที่มีอยู่ระหว่างการฝึกอบรม อัลกอริทึม RL จากนั้นสังเกตผลลัพธ์ของการกระทำแบบสุ่มเหล่านี้รวมถึงรางวัลใด ๆ ที่ได้รับและใช้ข้อมูลนี้เพื่อเลือกการกระทำที่ดีขึ้นในช่วง“ การแสวงประโยชน์” นี่คือวิธีการพัฒนากลยุทธ์ที่เรียนรู้
การรวบรวมข้อมูลในระหว่างการเรียนรู้ใช้รูปแบบของการสังเกตที่เกิดขึ้นหลังจากการกระทำแบบสุ่มของตัวแทนแต่ละครั้ง หากใช้ปลั๊กอิน MindMaker รูปร่างที่แน่นอนของอาร์เรย์จะถูกกำหนดไว้ในคุณสมบัติขนาดการสังเกตของฟังก์ชั่นพิมพ์เขียว MindMaker Launch และจะขึ้นอยู่กับตัวแปรที่จำเป็นสำหรับตัวแทนในการสังเกตในเกมหรืองานการเรียนรู้โดยเฉพาะ มันจะเปลี่ยนไปขึ้นอยู่กับงานการเรียนรู้หรือเกม
ตัวแทนรับรู้เฉพาะส่วนหนึ่งของสภาพแวดล้อมที่ผู้ออกแบบเกมสัมผัส เมื่อใช้ปลั๊กอิน MindMaker การสังเกตเหล่านี้จะถูกเติมในฟังก์ชั่นการสังเกตการณ์การสังเกตการณ์การเรียกใช้ภายในเครื่องยนต์ Unreal สิ่งนี้จะสร้างอาร์เรย์ของตัวเลขในรูปร่างที่กำหนดโดยคุณสมบัติขนาดการสังเกตของฟังก์ชันพิมพ์เขียว MindMaker Launch ควรเลือกการสังเกตเพื่อให้พวกเขาประกอบด้วยข้อมูลที่จำเป็นสำหรับตัวแทนในการเรียนรู้จากมิฉะนั้นการฝึกอบรมอาจกลายเป็นเรื่องต้องห้ามใช้เวลานาน
ในการเรียนรู้วานิลลาคิว - ไม่จำเป็นต้องมีเครือข่ายประสาทและการเรียนรู้จะถูกเก็บไว้ในรูปแบบตาราง เมื่อใช้การเรียนรู้การเสริมแรงอย่างลึกล้ำ MindMaker เราสามารถเลือกระหว่างสถาปัตยกรรมเครือข่ายประสาทที่หลากหลายรวมถึง RNN, CNN ฯลฯ เราสามารถตั้งค่าเหล่านี้ภายในคุณสมบัติที่กำหนดเองของอัลกอริทึมของแต่ละอัลกอริทึม
การสร้างสภาพแวดล้อมการเรียนรู้การเสริมแรงอย่างลึกซึ้งแบบกำหนดเอง
อินโทร เพื่อเสริมการเรียนรู้สำหรับวิดีโอเกม AI
การเรียนรู้การเสริมแรง - มันเป็นสัญญาและอันตราย
เอกสารพื้นฐานที่มั่นคง