การลดการสูญเสีย: การไล่ระดับสีแบบ Stochastic Gradient

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

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

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

การไล่ระดับสีแบบขั้นต่ำหลายแบตช์ (mini-batch SGD) เป็นการผสมผสานระหว่างการทำซ้ำครั้งละทั้งชุดกับ SGD โดยทั่วไป กลุ่มตัวอย่างขนาดเล็ก มักอยู่ระหว่าง 10 ถึง 1,000 ตัวอย่าง โดยจะสุ่มเลือก Mini-batch SGD ช่วยลดปริมาณสัญญาณรบกวนใน SGD แต่ยังคงมีประสิทธิภาพมากกว่าการซื้อทั้งชุด

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