0Pricing
Python Academy · บทเรียน

อัลกอริทึมการแพร่ย้อนกลับ

แนวคิดเรื่องการเรียนรู้และการหาค่าเหมาะที่สุด

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

การแพร่ย้อนกลับคืออะไร

อัลกอริทึมการแพร่ย้อนกลับ

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

อัลกอริทึมการแพร่ย้อนกลับ — ภาพประกอบ 1

ขั้นตอนสำคัญในการแพร่ย้อนกลับ

ขั้นตอนสำคัญในการแพร่ย้อนกลับ

กระบวนการแพร่ย้อนกลับประกอบด้วย:

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

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

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

ฟังก์ชันความสูญเสียใช้วัดความแตกต่างระหว่างค่าที่ทำนายกับค่าจริง ฟังก์ชันความสูญเสียที่ใช้กันทั่วไป ได้แก่:

  • ค่าคลาดเคลื่อนกำลังสองเฉลี่ย (MSE): สำหรับงานการถดถอย
  • ค่าความสูญเสียเอนโทรปีไขว้: สำหรับงานการจำแนกประเภท

การลดลงตามเกรเดียนต์

การลดลงตามเกรเดียนต์

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

กฎการปรับปรุง:

Weight = Weight - Learning_Rate * Gradient

กฎลูกโซ่ในการแพร่ย้อนกลับ

กฎลูกโซ่ในการแพร่ย้อนกลับ

ใช้กฎลูกโซ่เพื่อคำนวณเกรเดียนต์ของฟังก์ชันความสูญเสียสำหรับแต่ละชั้น กฎนี้ช่วยให้แพร่ค่าคลาดเคลื่อนย้อนกลับผ่านโครงข่ายได้

ตัวอย่างเช่น เกรเดียนต์ของค่าความสูญเสียเทียบกับน้ำหนักคือ:

∂L/∂W = ∂L/∂O * ∂O/∂Z * ∂Z/∂W

ตัวอย่างการแพร่ย้อนกลับ

ตัวอย่างการแพร่ย้อนกลับ

พิจารณาโครงข่ายประสาทเทียมอย่างง่ายที่มีชั้นข้อมูลนำเข้า 1 ชั้น ชั้นซ่อน 1 ชั้น และชั้นผลลัพธ์ 1 ชั้น:

เราจะปรับน้ำหนักโดยใช้การส่งต่อไปข้างหน้าและการส่งย้อนกลับ เพื่อลดค่าคลาดเคลื่อนตลอดหลายยุคการฝึก

import numpy as np

# Example: Simple backpropagation setup
weights = np.array([0.5, -0.5])
inputs = np.array([2, 3])
target = 1
learning_rate = 0.01

# Forward pass
output = np.dot(inputs, weights)
loss = (target - output) ** 2

# Backward pass
error = 2 * (output - target)
gradients = error * inputs

# Weight update
weights -= learning_rate * gradients
print("Updated Weights:", weights)

ความท้าทายในการแพร่ย้อนกลับ

ความท้าทายในการแพร่ย้อนกลับ

ปัญหาที่พบได้ทั่วไป ได้แก่:

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

การปรับปรุงการแพร่ย้อนกลับ

การปรับปรุงการแพร่ย้อนกลับ

เพื่อรับมือกับความท้าทายดังกล่าว เทคนิคสมัยใหม่ประกอบด้วย:

  • ฟังก์ชันกระตุ้น: ReLU ช่วยลดปัญหาเกรเดียนต์หายไป
  • ตัวปรับค่าเหมาะที่สุด: อัลกอริทึมอย่างอดัมและอาร์เอ็มเอสพร็อพช่วยให้การลู่เข้าเกิดขึ้นได้ดีขึ้น
  • การทำให้เป็นปกติ: ป้องกันการเรียนรู้เกินพอดีโดยกำหนดบทลงโทษให้น้ำหนักที่มีขนาดใหญ่

สรุปและขั้นตอนถัดไป

สรุปและขั้นตอนถัดไป

ในบทเรียนนี้ เราได้:

  • ศึกษาอัลกอริทึมการแพร่ย้อนกลับและบทบาทของอัลกอริทึมในการฝึกโครงข่ายประสาทเทียม
  • เรียนรู้เกี่ยวกับการลดลงตามเกรเดียนต์และกฎลูกโซ่
  • พูดถึงความท้าทายและการปรับปรุงสมัยใหม่ในการแพร่ย้อนกลับ

ถัดไป เราจะนำโครงข่ายประสาทเทียมแรกของเราไปใช้งานโดยใช้ TensorFlow เพื่อดูการแพร่ย้อนกลับขณะทำงาน

อัลกอริทึมการแพร่ย้อนกลับ — ภาพประกอบ 10

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

บทเรียน “อัลกอริทึมการแพร่ย้อนกลับ” ฟรีหรือไม่

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

คุณจะเรียนรู้อะไรในบทเรียน “อัลกอริทึมการแพร่ย้อนกลับ”

แนวคิดเรื่องการเรียนรู้และการหาค่าเหมาะที่สุด คุณปฏิบัติ Python Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

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

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

บทเรียน “อัลกอริทึมการแพร่ย้อนกลับ” ใช้เวลานานแค่ไหน

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

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

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

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

  1. แนะนำโครงข่ายประสาทเทียม
  2. ฟังก์ชันกระตุ้น
  3. โครงข่ายประสาทเทียมแบบป้อนไปข้างหน้า
  4. อัลกอริทึมการแพร่ย้อนกลับ
  5. โครงข่ายประสาทเทียมแรกด้วย TensorFlow
← กลับไปที่ Python Academy