อัลกอริทึมการไล่ระดับสี: วิธีการ ตัวแปร & แนวทางปฏิบัติที่ดีที่สุด

เผยแพร่แล้ว: 2020-07-28

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

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

สารบัญ

โคตรลาด

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

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

แหล่งที่มา

สัญชาตญาณเบื้องหลังอัลกอริธึม Gradient Descent

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

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

แหล่งที่มา

อ่าน: การส่งเสริมการเรียนรู้ของเครื่อง: ฟังก์ชัน ประเภท และคุณลักษณะคืออะไร

อัลกอริธึมการไล่ระดับสีแบบไล่ระดับ- ระเบียบวิธี

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

ค่าสัมประสิทธิ์ = 0 (หรือค่าเล็กน้อย)

  • ฟังก์ชันต้นทุนคำนวณโดยการใส่ค่าสัมประสิทธิ์นี้ลงในฟังก์ชัน

ฟังก์ชันต้นทุน = f(สัมประสิทธิ์)

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

del = อนุพันธ์ (ฟังก์ชันต้นทุน)

  • หลังจากทราบทิศทางของการลงเนินจากทางลาดแล้ว คุณจะอัปเดตค่าสัมประสิทธิ์ตามลำดับ สามารถเลือกอัตราการเรียนรู้ (อัลฟา) เพื่อควบคุมว่าค่าสัมประสิทธิ์เหล่านี้จะเปลี่ยนแปลงมากน้อยเพียงใดในการวนซ้ำแต่ละครั้ง คุณต้องแน่ใจว่าอัตราการเรียนรู้นี้ไม่สูงหรือต่ำเกินไป

สัมประสิทธิ์ = สัมประสิทธิ์ – (อัลฟา * เดล)

  • กระบวนการนี้ทำซ้ำจนกว่าฟังก์ชันต้นทุนจะกลายเป็น 0 หรือใกล้เคียงกับ 0 มาก

f(สัมประสิทธิ์) = 0 (หรือใกล้เคียงกับ 0)

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

แหล่งที่มา

อัลกอริทึมของ Gradient Descent

Batch Gradient Descent

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

Stochastic Gradient Descent

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

โคตรไล่ระดับมินิแบทช์

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

แนวทางปฏิบัติที่ดีที่สุดสำหรับอัลกอริธึม Gradient Descent

  • ต้นทุนแผนที่เทียบกับเวลา: การพล็อตต้นทุนตามเวลาช่วยให้คุณเห็นภาพว่าต้นทุนลดลงหรือไม่หลังจากการทำซ้ำแต่ละครั้ง หากคุณเห็นว่าค่าใช้จ่ายยังคงไม่เปลี่ยนแปลง ให้ลองอัปเดตอัตราการเรียนรู้
  • อัตราการเรียนรู้: อัตรา การเรียนรู้ต่ำมากและมักถูกเลือกเป็น 0.01 หรือ 0.001 คุณต้องลองดูว่าค่าใดดีที่สุดสำหรับคุณ
  • อินพุตที่ปรับขนาดใหม่: อัลกอริทึมการไล่ระดับสีแบบไล่ระดับ จะย่อฟังก์ชันต้นทุนให้เหลือน้อยที่สุดเร็วขึ้น หากตัวแปรอินพุตทั้งหมดได้รับการปรับขนาดใหม่เป็นช่วงเดียวกัน เช่น [0, 1] หรือ [-1, 1]
  • ผ่านน้อยกว่า: โดยปกติ อัลกอริทึมการไล่ระดับการไล่ระดับสี แบบสุ่ม ไม่ต้องการมากกว่า 10 รอบเพื่อหาค่าสัมประสิทธิ์ที่ดีที่สุด

ชำระเงิน: 25 คำถามและคำตอบสำหรับการสัมภาษณ์แมชชีนเลิร์นนิง

ห่อ

คุณจะได้ทราบถึงบทบาทของการไล่ระดับการไล่ระดับสีในการเพิ่มประสิทธิภาพอัลกอริธึมการเรียนรู้ของเครื่อง ปัจจัยสำคัญประการหนึ่งที่ต้องคำนึงถึงคือการเลือกอัตราการเรียนรู้ที่เหมาะสมสำหรับ อัลกอริธึมการไล่ระดับการไล่ระดับสี เพื่อการทำนายที่เหมาะสมที่สุด

upGrad มอบ ประกาศนียบัตร PG ในการเรียนรู้ของเครื่องและ AI และ วิทยาศาสตรมหาบัณฑิตสาขาการเรียนรู้ด้วยเครื่องและ AI ที่อาจแนะนำคุณสู่การสร้างอาชีพ หลักสูตรเหล่านี้จะอธิบายความจำเป็นในการเรียนรู้ของเครื่องและขั้นตอนเพิ่มเติมในการรวบรวมความรู้ในโดเมนนี้ ซึ่งครอบคลุมแนวคิดที่หลากหลายตั้งแต่ อัลกอริทึมการไล่ระดับสีแบบไล่ระดับ ไปจนถึง Neural Networks

เป็นผู้นำการปฏิวัติเทคโนโลยีที่ขับเคลื่อนด้วย AI

PG DIPLOMA ในการเรียนรู้ของเครื่องและปัญญาประดิษฐ์
เรียนรู้เพิ่มเติม