0Pricing
Learn AI with Python · บทเรียน

วิธี Actor-Critic (A2C)

ฟังก์ชันความได้เปรียบ actor (นโยบาย) และ critic (ค่า) และการใช้งาน A2C แบบทำงานพร้อมกัน

วิธี Actor-Critic (A2C) เป็นบทเรียน Learn AI with Python ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Learn AI with Python และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Learn AI with Python มีบทเรียนทั้งหมด 4 บทเรียน

การผสานนโยบายกับค่า

วิธีการ แอ็กเตอร์-คริติก ผสานแนวคิดสองอย่างเข้าด้วยกัน ได้แก่ actor (นโยบายที่เลือกการกระทำ) และ critic (ฟังก์ชันค่าที่ประเมินการกระทำเหล่านั้น) critic ให้ข้อมูลป้อนกลับที่มีความแปรปรวนต่ำกว่าผลตอบแทนดิบ จึงช่วยให้การเรียนรู้มีเสถียรภาพ

แอ็กเตอร์

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

class ActorCritic(nn.Module):
    def __init__(self, obs_dim, n_actions):
        super().__init__()
        self.shared = nn.Sequential(nn.Linear(obs_dim, 128), nn.ReLU())
        self.actor = nn.Linear(128, n_actions)

คริติก

critic ประเมิน ค่าของสถานะ V(s) ซึ่งก็คือผลตอบแทนคาดหมายจากสถานะ s โดยเป็นส่วนหัวเอาต์พุตเดียวที่คาดการณ์ว่าสถานการณ์ปัจจุบันดีเพียงใด

        self.critic = nn.Linear(128, 1)

    def forward(self, s):
        h = self.shared(s)
        return self.actor(h), self.critic(h)

แบ็กโบนแบบใช้ร่วมกัน สองส่วนหัว

โดยปกติ actor และ critic จะ shared เลเยอร์ช่วงต้น (แบ็กโบน) แล้วแยกออกเป็นสองส่วนหัว การใช้คุณลักษณะร่วมกันมีประสิทธิภาพ และช่วยให้งานทั้งสองด้านส่งเสริมการเรียนรู้ตัวแทนที่เป็นประโยชน์

ฟังก์ชันความได้เปรียบ

ปริมาณสำคัญคือ ความได้เปรียบ A = r + gamma * V(s') - V(s) ซึ่งวัดว่าการกระทำหนึ่งดีกว่าที่ critic คาดหมายไว้มากเพียงใด ค่าความได้เปรียบเป็นบวกหมายถึง "ดีกว่าค่าเฉลี่ย" ส่วนค่าลบหมายถึงแย่กว่า

advantage = reward + gamma * V_next - V_current

เหตุใดค่าความได้เปรียบจึงดีกว่าผลตอบแทนดิบ

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

ฟังก์ชันการสูญเสียของแอ็กเตอร์

actor ได้รับการฝึกเช่นเดียวกับ REINFORCE แต่ถ่วงน้ำหนักด้วยค่าความได้เปรียบแทนผลตอบแทน: เพิ่มความน่าจะเป็นของการกระทำที่มีค่าความได้เปรียบเป็นบวก

actor_loss = -(log_prob * advantage.detach()).mean()

ฟังก์ชันการสูญเสียของคริติก

critic เรียนรู้ที่จะคาดการณ์ผลตอบแทนให้แม่นยำ ฟังก์ชันการสูญเสียของมันคือความคลาดเคลื่อนกำลังสองระหว่างค่าที่คาดการณ์ V(s) กับเป้าหมายที่สังเกตได้ r + gamma * V(s')

target = reward + gamma * V_next.detach()
critic_loss = (V_current - target).pow(2).mean()

ฟังก์ชันการสูญเสียรวม

ฝึกทั้งสองส่วนหัวพร้อมกันด้วยการรวมฟังก์ชันการสูญเสียเข้าด้วยกัน (มักเพิ่มโบนัสเอนโทรปีเล็กน้อยเพื่อส่งเสริมการสำรวจ) การทำ backward หนึ่งครั้งจะอัปเดตแบ็กโบนที่ใช้ร่วมกันและส่วนหัวทั้งสอง

loss = actor_loss + 0.5 * critic_loss - 0.01 * entropy
loss.backward()

A2C แบบทำงานพร้อมกัน

A2C (แอ็กเตอร์-คริติกที่ใช้ค่าความได้เปรียบ) เป็นเวอร์ชันแบบทำงานพร้อมกัน: ผู้ปฏิบัติงานแบบขนาน หลายตัวเก็บประสบการณ์จากสำเนาของสภาพแวดล้อมพร้อมกัน จากนั้นการอัปเดตแบบประสานกันเพียงครั้งเดียวจะใช้ข้อมูลทั้งหมดของพวกเขา ช่วยเพิ่มเสถียรภาพและอัตราการประมวลผล

# N parallel envs step together each iteration
# gather all transitions, then one combined update

A2C เทียบกับ A3C

รูปแบบแบบไม่พร้อมกันอย่าง A3C อนุญาตให้ผู้ปฏิบัติงานแต่ละตัวอัปเดตอย่างอิสระ ส่วน A2C จะประสานผู้ปฏิบัติงานเหล่านั้น ทำให้เรียบง่ายกว่า เหมาะกับ GPU มากกว่า และโดยทั่วไปมีประสิทธิผลไม่แพ้กัน จึงได้รับความนิยม

ตรวจสอบความเข้าใจ

ทดสอบความเข้าใจเกี่ยวกับแอ็กเตอร์-คริติก

ทบทวน: แอ็กเตอร์-คริติกและ A2C

คุณได้เรียนรู้ว่า actor แสดงผลลอจิตส์ของนโยบาย และ critic ประเมินค่า V(s) ซึ่งมักทำผ่าน แบ็กโบนแบบ shared ที่มีสองส่วนหัว ค่าความได้เปรียบ r + gamma*V(s') - V(s) ช่วยลดความแปรปรวน และ A2C แบบทำงานพร้อมกัน ใช้ผู้ปฏิบัติงานแบบขนานเพื่อการฝึกที่เสถียรและมีประสิทธิภาพ

คำถามที่พบบ่อย

บทเรียน “วิธี Actor-Critic (A2C)” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “วิธี Actor-Critic (A2C)” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Learn AI with Python ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Learn AI with Python มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “วิธี Actor-Critic (A2C)”

ฟังก์ชันความได้เปรียบ actor (นโยบาย) และ critic (ค่า) และการใช้งาน A2C แบบทำงานพร้อมกัน คุณปฏิบัติ Learn AI with Python ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Learn AI with Python หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Learn AI with Python บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน

บทเรียน “วิธี Actor-Critic (A2C)” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Learn AI with Python นี้ได้ไหม

ได้ บทเรียน Learn AI with Python ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. วิธีไล่ระดับนโยบาย: REINFORCE
  2. วิธี Actor-Critic (A2C)
  3. การปรับให้เหมาะสมของนโยบายแบบใกล้เคียง (PPO)
  4. สภาพแวดล้อม Gymnasium แบบกำหนดเอง
← กลับไปที่ Learn AI with Python