อะไรคือความแตกต่างระหว่าง Gradient Descent และ Stochastic Gradient Descent?
ฉันไม่คุ้นเคยกับสิ่งเหล่านี้คุณสามารถอธิบายความแตกต่างด้วยตัวอย่างสั้น ๆ ได้หรือไม่?
อะไรคือความแตกต่างระหว่าง Gradient Descent และ Stochastic Gradient Descent?
ฉันไม่คุ้นเคยกับสิ่งเหล่านี้คุณสามารถอธิบายความแตกต่างด้วยตัวอย่างสั้น ๆ ได้หรือไม่?
คำตอบ:
สำหรับคำอธิบายง่ายๆอย่างรวดเร็ว:
ในทั้งการไล่ระดับสีไล่ระดับสี (GD) และการไล่ระดับสีแบบสุ่ม (SGD) คุณอัพเดตชุดพารามิเตอร์ในลักษณะวนซ้ำเพื่อลดฟังก์ชันข้อผิดพลาดให้น้อยที่สุด
ในขณะที่อยู่ใน GD คุณจะต้องเรียกใช้ตัวอย่างทั้งหมดในชุดฝึกอบรมของคุณเพื่อทำการอัปเดตเดียวสำหรับพารามิเตอร์ในการทำซ้ำโดยเฉพาะในสิงคโปร์ในอีกทางหนึ่งคุณใช้ตัวอย่างการฝึกอบรมเพียงชุดเดียวหรือชุดย่อยจากชุดฝึกอบรมของคุณ เพื่อทำการอัพเดตสำหรับพารามิเตอร์ในการวนซ้ำเฉพาะ หากคุณใช้ SUBSET จะเรียกว่า Minibatch Stochastic gradient Descent
ดังนั้นหากจำนวนตัวอย่างการฝึกอบรมมีขนาดใหญ่จริงๆแล้วมีขนาดใหญ่มากการใช้การไล่ระดับสีอาจใช้เวลานานเกินไปเนื่องจากในทุกการวนซ้ำเมื่อคุณกำลังอัพเดทค่าของพารามิเตอร์คุณกำลังวิ่งผ่านชุดการฝึกอบรมที่สมบูรณ์ ในทางกลับกันการใช้ SGD จะเร็วขึ้นเพราะคุณใช้ตัวอย่างการฝึกอบรมเพียงตัวอย่างเดียวและจะเริ่มพัฒนาตัวเองทันทีจากตัวอย่างแรก
SGD มักจะลู่เข้าเร็วกว่ามากเมื่อเปรียบเทียบกับ GD แต่ฟังก์ชั่นข้อผิดพลาดก็ไม่ได้ถูกย่อให้เล็กสุดในกรณีของ GD บ่อยครั้งในกรณีส่วนใหญ่การประมาณอย่างใกล้ชิดที่คุณได้รับในรูปดอลลาร์สิงคโปร์สำหรับค่าพารามิเตอร์นั้นเพียงพอเพราะค่าเหล่านั้นมาถึงค่าที่เหมาะสมและแกว่งไปมาเรื่อย ๆ
หากคุณต้องการตัวอย่างเกี่ยวกับเรื่องนี้ในทางปฏิบัติให้ตรวจสอบบันทึกย่อของ Andrew NG ที่นี่ซึ่งเขาจะแสดงขั้นตอนที่เกี่ยวข้องกับทั้งสองกรณีอย่างชัดเจน cs229 บันทึกย่อ
ที่มา: Quora Thread
รวมของคำสุ่มเพียงหมายถึงการสุ่มกลุ่มตัวอย่างจากข้อมูลการฝึกอบรมจะได้รับเลือกในการทำงานแต่ละพารามิเตอร์ในช่วงการปรับปรุงการเพิ่มประสิทธิภาพภายในกรอบของโคตรลาด
การทำเช่นนั้นไม่เพียง แต่คำนวณข้อผิดพลาดและอัปเดตตุ้มน้ำหนักในการทำซ้ำที่เร็วขึ้น (เพราะเราประมวลผลการเลือกตัวอย่างเพียงเล็กน้อยในครั้งเดียว) แต่ยังช่วยในการเลื่อนไปสู่การปรับที่เหมาะสมได้เร็วขึ้น มีดูที่คำตอบที่นี่สำหรับข้อมูลเพิ่มเติมเกี่ยวกับสาเหตุการใช้ minibatches สุ่มสำหรับการฝึกอบรมข้อดีข้อเสนอ
ข้อเสียอย่างหนึ่งที่อาจเกิดขึ้นคือเส้นทางสู่สิ่งที่ดีที่สุด ดังนั้นแทนที่จะเป็นเส้นโค้งการสูญเสียที่ราบรื่นแสดงให้เห็นว่าข้อผิดพลาดลดลงในการวนซ้ำของการไล่ระดับสีซ้ำแต่ละครั้งคุณอาจเห็นสิ่งนี้:
เราเห็นได้ชัดว่าการสูญเสียลดลงเมื่อเวลาผ่านไปอย่างไรก็ตามมีรูปแบบที่หลากหลายตั้งแต่ยุคไปจนถึงยุค (ชุดการฝึกอบรมเป็นชุดการฝึกอบรม) ดังนั้นเส้นโค้งจึงมีเสียงดัง
นี่เป็นเพียงเพราะเราคำนวณข้อผิดพลาดเฉลี่ยของชุดย่อยที่สุ่มเลือกจากชุดข้อมูลทั้งหมดในแต่ละการวนซ้ำ ตัวอย่างบางส่วนจะสร้างข้อผิดพลาดสูงบางต่ำ ดังนั้นค่าเฉลี่ยอาจแตกต่างกันไปขึ้นอยู่กับตัวอย่างที่เราใช้แบบสุ่มสำหรับการวนซ้ำของการไล่ระดับสี
n=1
หรือเพียงแค่มินิแบทช์ด้วย
ใน Gradient Descent หรือ Batch Gradient Descent เราใช้ข้อมูลการฝึกอบรมทั้งหมดต่อยุคในขณะที่ Stochastic Gradient Descent เราใช้ตัวอย่างการฝึกอบรมเพียงครั้งเดียวต่อ epoch และ Mini-batch Gradient Descent อยู่ระหว่างสองขั้วต่อนี้ซึ่งเราสามารถใช้ mini-batch (ส่วนเล็ก) ของข้อมูลการฝึกอบรมต่อยุคกฎง่ายๆสำหรับการเลือกขนาดของ mini-batch อยู่ในอำนาจ 2 เช่น 32, 64, 128 และอื่น ๆ
สำหรับรายละเอียดเพิ่มเติม: cs231n