คำถามเกี่ยวกับ Q-Learning โดยใช้ Neural Networks


14

ฉันใช้ Q-Learning ตามที่อธิบายไว้ใน

http://web.cs.swarthmore.edu/~meeden/cs81/s12/papers/MarkStevePaper.pdf

เพื่อที่จะประมาณ Q (S, A) ฉันใช้โครงสร้างเครือข่ายประสาทดังต่อไปนี้

  • การเปิดใช้งาน sigmoid
  • อินพุตจำนวนอินพุต + 1 สำหรับเซลล์ประสาทการกระทำ (อินพุตทั้งหมดปรับสัดส่วน 0-1)
  • เอาท์พุทเอาท์พุทเดียว Q-Value
  • จำนวน M ของเลเยอร์ที่ซ่อนอยู่
  • วิธีการสำรวจสุ่ม 0 <rand () <propExplore

ในแต่ละการเรียนรู้ซ้ำโดยใช้สูตรต่อไปนี้

ป้อนคำอธิบายรูปภาพที่นี่

ฉันคำนวณค่า Q-Target แล้วคำนวณข้อผิดพลาดโดยใช้

error = QTarget - LastQValueReturnedFromNN

และเผยแพร่กลับข้อผิดพลาดผ่านเครือข่ายประสาท

Q1, ฉันอยู่ในเส้นทางที่ถูกต้องหรือไม่? ฉันได้เห็นเอกสารบางส่วนที่ใช้ NN กับเซลล์ประสาทขาออกหนึ่งอันสำหรับแต่ละการกระทำ

Q2, ฟังก์ชั่นรางวัลของฉันจะส่งคืนตัวเลขระหว่าง -1 ถึง 1 หรือไม่จะส่งกลับตัวเลขระหว่าง -1 ถึง 1 เมื่อฟังก์ชันการเปิดใช้งานเป็น sigmoid (0 1)

Q3, จากความเข้าใจของฉันเกี่ยวกับวิธีการนี้ได้รับอินสแตนซ์การฝึกอบรมเพียงพอควรกักกันเพื่อค้นหานโยบายที่เหมาะสมที่สุด? เมื่อฝึกอบรมสำหรับ XOR บางครั้งมันเรียนรู้หลังจากทำซ้ำ 2k บางครั้งมันจะไม่เรียนรู้แม้กระทั่งหลังจากทำซ้ำ 40k 50k


จากความอยากรู้อยากเห็นคุณผสมผสานอินพุตสถานะเข้ากับแอ็คชันอินพุตอย่างไรเพื่อให้ฟีดทั้งสองในเวลาเดียวกันกับเครือข่าย คุณมีรหัสที่เปิดเผยนี้หรือไม่ ขอขอบคุณ!
เปโดร Lopes

คำตอบ:


9

ไตรมาสที่ 1 คุณอยู่ในเส้นทางที่ถูกต้องแน่นอน แต่การเปลี่ยนแปลงเล็กน้อยสามารถช่วยได้อย่างมาก บางคนใช้หนึ่งหน่วยเอาต์พุตต่อการกระทำเพื่อให้พวกเขาต้องเรียกใช้เครือข่ายของพวกเขาเพียงครั้งเดียวเพื่อเลือกการดำเนินการ แต่สิ่งนี้ไม่ควรสร้างความแตกต่างในเรื่องการเรียนรู้และเป็นการใช้งานที่คุ้มค่าหากคุณวางแผนที่จะขยายโมเดลของคุณอย่างมีนัยสำคัญ

ไตรมาสที่ 2 โดยทั่วไปผู้คนใช้ฟังก์ชั่นเปิดใช้งานเชิงเส้นสำหรับชั้นสุดท้ายของเครือข่ายประสาทของพวกเขาโดยเฉพาะอย่างยิ่งสำหรับการเรียนรู้การเสริมแรง มีเหตุผลหลายประการสำหรับสิ่งนี้ แต่สิ่งที่เกี่ยวข้องที่สุดคือฟังก์ชั่นการเปิดใช้งานแบบเส้นตรงช่วยให้คุณสามารถแสดงจำนวนจริงเต็มรูปแบบเป็นผลลัพธ์ของคุณ ดังนั้นแม้ว่าคุณจะไม่ทราบขอบเขตของรางวัลสำหรับงานของคุณคุณก็ยังรับประกันว่าจะสามารถแสดงช่วงนั้นได้

ไตรมาสที่ 3 น่าเสียดายที่การรับรองทางทฤษฎีสำหรับการรวมเครือข่ายประสาท (และการประมาณฟังก์ชั่นที่ไม่ใช่เชิงเส้นสำหรับโดยทั่วไป) กับการเรียนรู้การเสริมแรงนั้นไม่มีอยู่จริง มีการเรียนรู้การเสริมแรงสองสามรุ่น (ส่วนใหญ่มาจากแล็บซัตตัน) ที่สามารถสร้างการบรรจบกันได้หลายอย่างที่คุณพูดถึง แต่ฉันไม่เคยเห็นอัลกอริธึมเหล่านั้นมาใช้ เหตุผลสำหรับสิ่งนี้คือแม้ว่าจะไม่สามารถให้สัญญาได้ว่าจะมีประสิทธิภาพที่ดี แต่โดยทั่วไปแล้วจะได้รับในทางปฏิบัติโดยให้ความสนใจกับพารามิเตอร์ไฮเปอร์และเงื่อนไขเริ่มต้น

ประเด็นสุดท้ายที่หมีพูดถึงเครือข่ายประสาทโดยทั่วไป: อย่าใช้ฟังก์ชั่นการเปิดใช้งาน sigmoid สำหรับเครือข่ายที่มีเลเยอร์ที่ซ่อนอยู่มากมาย! พวกเขาถูกสาปด้วยปัญหา 'การไล่ระดับสีหายไป'; สัญญาณข้อผิดพลาดแทบจะไม่ถึงเลเยอร์ก่อนหน้า (ดูที่อนุพันธ์ของฟังก์ชันควรทำให้ชัดเจนว่าทำไมในกรณีนี้) ให้ลองใช้หน่วยเชิงเส้นที่แก้ไขแล้ว (RELU) หรือหน่วย 'soft plus' แทนเนื่องจากโดยทั่วไปแล้วจะมีประสิทธิภาพที่ดีขึ้นมากในเครือข่ายลึก

ดูกระดาษนี้สำหรับการใช้งานที่ยอดเยี่ยมของโครงข่ายประสาทเทียมที่ได้รับการฝึกอบรมเสริมการเรียนรู้:

Mnih, Volodymyr, et al. "เล่นอาตาริด้วยการเรียนรู้การเสริมแรงอย่างลึกซึ้ง" พิมพ์ arXiv arXiv: 1312.5602 (2013)


0

สำหรับฟังก์ชั่นเปิดใช้งาน maxout ก็ใช้งานได้ดีเช่นกัน การใช้ผู้ฝึกสอนที่เหมาะสมนั้นมีความสำคัญต่อเครือข่ายที่ลึกมากฉันได้ลองผู้ฝึกสอนที่หลากหลาย แต่ตัดสินใจที่จะติดกับ RMSprop และมันก็ดูดีมาก!


1
ยินดีต้อนรับสู่เว็บไซต์ @ user3355911 นี่อาจกระจัดกระจายเกินไปที่จะเป็นคำตอบที่นี่ คุณสามารถขยายและเพิ่มเนื้อหาออกมากขึ้นได้ไหม?
gung - Reinstate Monica
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.