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

คุณจะแก้ไขข้อบกพร่องและบรรเทาความล้มเหลวในการเพิ่มประสิทธิภาพได้อย่างไร

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

กราฟเปรียบเทียบ Standard WideResNet กับ Stride 1x1 WideResNet
            แกน y คืออัตราข้อผิดพลาดการทดสอบ แกน x คืออัตราการเรียนรู้ฐาน
            WideResNet มาตรฐานพบว่า TestErrorRate ลดลงทีละน้อยเมื่ออัตราการเรียนรู้ฐานเพิ่มขึ้น ในทางตรงกันข้าม Stride wideResNet พบกับความผันผวนอย่างมากเมื่ออัตราการเรียนรู้พื้นฐานเพิ่มขึ้น
รูปที่ 4 การเปลี่ยนการก้าวในบล็อกเดียว (2x2 -> 1x1) ใน wideResnet จะทำให้การฝึกไม่เสถียร

 

โปรดสังเกตข้อมูลต่อไปนี้เกี่ยวกับรูปที่ 4:

  • การเปลี่ยนแปลงความก้าวหน้าจะไม่ทำให้ประสิทธิภาพลดลงเมื่อมีอัตราการเรียนรู้ต่ำ
  • อัตราการเรียนรู้สูงจะไม่สามารถฝึกได้ดีอีกต่อไปเนื่องจากความไม่เสถียร
  • การใช้การอุ่นเครื่อง 1, 000 ขั้นตอนสำหรับอัตราการเรียนรู้จะช่วยแก้ไขกรณีความไม่เสถียรที่เจาะจงนี้ได้ ทำให้การฝึกที่คงที่มีอัตราการเรียนรู้สูงสุดที่ 0.1

การระบุภาระงานที่ไม่เสถียร

ภาระงานจะไม่เสถียรหากอัตราการเรียนรู้สูงเกินไป ความไม่เสถียรจะเกิดขึ้นก็ต่อเมื่อจะต้องใช้อัตราการเรียนรู้ที่น้อยเกินไป มีความไม่เสถียรในการฝึกอย่างน้อย 2 ประเภทที่สมควรแยกความแตกต่าง ดังนี้

  • มีความไม่เสถียรเมื่อเริ่มต้นหรือการฝึกในช่วงแรกๆ
  • มีความไม่มั่นคงฉับพลันในระหว่างการฝึก

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

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

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

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

ในการตรวจสอบเรื่องนี้ คุณสามารถฝึกตามเส้นทางแบบย่อประมาณ 500 ก้าวโดยใช้ lr = 2 * current best แต่ให้ประเมินทุกขั้นตอน

กราฟ 2 แบบ โดยแกน x สำหรับทั้ง 2 กราฟคือ Global Step และแกน y ของทั้ง 2 กราฟคือ Train Loss ทั้ง 2 กราฟเปรียบเทียบ Conv Stride ของ (2,2) กับ Conv Stride ของ (1,1) กราฟแรกแสดงการประเมินทุกๆ 1,000 ขั้นตอน ในกราฟแรก Conv Stride ทั้ง 2 รายการจะแสดงการลดลงทีละน้อยโดยมีขั้นตอนส่วนกลางมากขึ้น กราฟที่ 2 แสดงการประเมินที่เกิดขึ้นบ่อยใน 25 ขั้นตอนแรก ในกราฟที่ 2 นี้ Conv Stride ของ (2,2) จะแสดงความผันผวนใน Train Loss ใน Global Steps 2-3 ก้าวแรกก่อนที่จะลดลงอย่างสม่ำเสมอมากขึ้นภายใน 20 ขั้นตอนทั่วโลก Conv Stride ของ (1,1) แสดงการสูญเสียรถไฟในระดับต่ำอย่างต่อเนื่องหลังจากขั้นตอนทั่วโลกครั้งแรก
รูปที่ 5 คุณค่าของการประเมินที่บ่อยขึ้นเมื่อเริ่มการฝึก มีประโยชน์หากคุณสงสัยว่าโมเดลจะมีปัญหาจากความไม่เสถียรของการฝึกในช่วงเริ่มต้น

 

การแก้ไขที่เป็นไปได้สำหรับรูปแบบความไม่เสถียรที่พบบ่อย

พิจารณาการแก้ไขที่เป็นไปได้ต่อไปนี้สำหรับรูปแบบความไม่เสถียรที่พบบ่อย

  • ใช้การเตรียมอัตราการเรียนรู้ ตัวเลือกนี้เหมาะสำหรับความไม่เสถียรของการฝึกตั้งแต่เนิ่นๆ
  • ใช้การตัดแบบไล่ระดับสี ดีสำหรับความไม่เสถียรของการฝึกทั้งช่วงเริ่มต้นและระหว่างกลาง และอาจแก้ไขการเริ่มต้นที่ไม่ดีซึ่งการเตรียมตัวก่อนทำไม่ได้
  • ลองใช้เครื่องมือเพิ่มประสิทธิภาพใหม่ บางครั้ง อดัมสามารถรับมือกับความไม่มั่นคง ที่โมเมนตัมทำไม่ได้ นี่เป็นหัวข้อวิจัยที่กำลังดำเนินอยู่
  • ตรวจสอบว่าได้ใช้แนวทางปฏิบัติแนะนำและการเริ่มต้นที่ดีที่สุดสำหรับสถาปัตยกรรมโมเดลอยู่ (ดูตัวอย่างที่จะตามมา) เพิ่มการเชื่อมต่อที่เหลือและการทำให้เป็นมาตรฐานหากโมเดลยังไม่มีการเชื่อมต่อดังกล่าว
  • ทำให้เป็นการดำเนินการสุดท้ายก่อนค่าที่เหลือ ตัวอย่างเช่น x + Norm(f(x)) โปรดทราบว่า Norm(x + f(x)) อาจทำให้เกิดปัญหาได้
  • ลองกำหนดค่า Branch ที่เหลือให้เป็น 0 (ดู ReZero เป็นสิ่งที่คุณต้องการ: การบรรจบกันแบบรวดเร็วที่ความลึกขนาดใหญ่)
  • ลดอัตราการเรียนรู้ นี่เป็นทางเลือกสุดท้าย

เตรียมอัตราการเรียนรู้

กราฟ 2 แบบที่สาธิตการทดสอบเดียวกัน ในกราฟแรก แกน x คือขั้นตอนสากล และแกน y คือการสูญเสียรถไฟ เนื่องจากอัตราการเรียนรู้ที่ต่ำทำให้รถไฟสูญหายไม่เสถียรนัก
            ตัวเลขการอุ่นเครื่องที่เกิดจากอัตราการเรียนรู้ที่สูงขึ้น ทำให้รถไฟสูญหายมีความเสถียรมากขึ้นมาก
รูปที่ 6 ตัวอย่างความไม่เสถียรระหว่างช่วงเริ่มต้นระบบ (โปรดสังเกตสเกลบันทึกของแกนแนวนอน) จำเป็นต้องใช้การอุ่นเครื่อง 40,000 ขั้นตอนเพื่อให้การฝึกได้สำเร็จในกรณีนี้

ควรใช้การอุ่นเครื่องอัตราการเรียนรู้เมื่อใด

กราฟของการสูญเสียข้ามเอนโทรปีบนชุดการตรวจสอบ (แกน y) เทียบกับอัตราการเรียนรู้ฐาน (แกน x) กราฟแสดงการทดลองที่เป็นไปได้ 6 รายการ ซึ่งทั้งหมดมีอัตราการเรียนรู้ฐานค่อนข้างต่ำ การสูญเสียการตรวจสอบจะลดลงเมื่ออัตราการเรียนรู้ฐานเพิ่มขึ้น จากนั้นจะมีจุดต่ำสุดก่อนจะเริ่มเพิ่มขึ้น นอกจากนี้ กราฟยังแสดงการทดลองที่ไม่สำเร็จ 4 รายการ ซึ่งทั้งหมดมีอัตราการเรียนรู้ฐานที่ค่อนข้างสูง
รูปที่ 7ก ตัวอย่างพล็อตแกนไฮเปอร์พารามิเตอร์สำหรับโมเดลที่แสดงความไม่เสถียรของการฝึก อัตราการเรียนรู้ที่ดีที่สุดคือเท่าที่จะเป็นไปได้ การทดลองที่ "ทำไม่ได้" ทำให้เกิด NaN หรือมูลค่าของการสูญเสียที่สูงผิดปกติ

 

กราฟของการสูญเสียครอสเอนโทรปีในชุดการฝึก (แกน Y) เทียบกับขั้นตอนทั่วโลก (แกน X) การสูญเสียลดลงอย่างรวดเร็วในขั้นตอนทั่วโลกเริ่มต้น จากนั้น การสูญเสียจะเพิ่มขึ้นอย่างมากประมาณ 10,000 ก้าว จากนั้นการสูญเสียจะค่อยๆ ลดลงประมาณ 15,000 ก้าว
รูปที่ 7ข การสูญเสียการฝึกของโมเดลที่ฝึกด้วยอัตราการเรียนรู้ที่คุณเห็นว่าไม่เสถียร

 

รูปที่ 7a แสดงพล็อตแกนไฮเปอร์พารามิเตอร์ที่บ่งชี้ว่าโมเดล พบความไม่เสถียรในการเพิ่มประสิทธิภาพ เนื่องจากอัตราการเรียนรู้ที่ดีที่สุดอยู่ตรงขอบของความไม่เสถียร

รูปที่ 7b แสดงวิธีตรวจสอบอีกครั้งโดยการตรวจสอบการสูญเสียการฝึกของโมเดลที่ฝึกด้วยอัตราการเรียนรู้ที่ใหญ่กว่าจุดสูงสุดนี้ 5 เท่าหรือ 10 เท่า หากกราฟนั้นแสดงการขาดทุนที่เพิ่มขึ้นอย่างฉับพลันหลังจากลดลงอย่างสม่ำเสมอ (เช่น เมื่ออยู่ที่ขั้นตอนประมาณ 10,000 น. ในรูปด้านบน) โมเดลก็น่าจะได้รับผลกระทบจากความไม่เสถียรของการเพิ่มประสิทธิภาพ

วิธีเตรียมอัตราการเรียนรู้

กราฟของการสูญเสียการตรวจสอบในขั้นตอนที่ 76619 (แกน Y) เทียบกับอัตราการเรียนรู้พื้นฐาน (แกน X) กราฟจะเปรียบเทียบผลลัพธ์ของสถานการณ์ 4 สถานการณ์ที่แตกต่างกันบน LayerNorm Transformer ใน WMT14 EN-De การอุ่นเครื่องอัตราการเรียนรู้จะลดการสูญเสียการตรวจสอบความถูกต้องโดยมีอัตราการเรียนรู้ที่ต่ำลง
รูปที่ 8 ประโยชน์จากการเตรียมความพร้อมอัตราการเรียนรู้ในการรับมือกับความไม่เสถียรในการฝึก

 

กำหนดให้ unstable_base_learning_rate เป็นอัตราการเรียนรู้ที่โมเดลไม่เสถียร โดยทำตามขั้นตอนก่อนหน้านี้

อุ่นเครื่องรวมถึงการกำหนดอัตราการเรียนรู้ไว้ล่วงหน้าซึ่งจะเพิ่มอัตราการเรียนรู้จาก 0 เป็น base_learning_rate ที่คงที่ โดยมีขนาดอย่างน้อย 1 ขนาดที่ใหญ่กว่า unstable_base_learning_rate ค่าเริ่มต้นคือลองใช้ base_learning_rate ที่มีขนาด 10xunstable_base_learning_rate โปรดทราบว่าอาจเรียกใช้ขั้นตอนนี้ทั้งหมดได้อีกครั้งสำหรับประมาณ 100xunstable_base_learning_rate กำหนดการที่เจาะจงมีดังนี้

  • เพิ่มจาก 0 เป็น base_learning_rate จาก Warmup_steps
  • ฝึกด้วยอัตราคงที่สำหรับ post_warmup_steps

เป้าหมายของคุณคือการค้นหาจำนวน warmup_steps ที่สั้นที่สุดที่จะช่วยให้คุณเข้าถึงอัตราการเรียนรู้สูงสุดที่สูงกว่า unstable_base_learning_rate มาก ดังนั้นสำหรับ base_learning_rate แต่ละรายการ คุณต้องปรับแต่ง warmup_steps และ post_warmup_steps อย่างไรก็ตาม คุณสามารถตั้ง post_warmup_steps เป็น 2*warmup_steps ได้

ปรับแต่งการปรับอุณหภูมิได้อย่างอิสระจากกำหนดการลดลงที่มีอยู่ warmup_steps ควรถูกกวาดตามอันดับของขนาดต่างๆ เช่น การศึกษาตัวอย่างอาจลองใช้ [10, 1000, 10,000, 100,000] จุดที่เป็นไปได้มากที่สุดไม่ควรเกิน 10% ของ max_train_steps

เมื่อมีการสร้าง warmup_steps ที่ยังไม่เริ่มต้นในการฝึกที่ base_learning_rate แล้ว คุณควรนำไปใช้กับโมเดลพื้นฐาน โดยพื้นฐานแล้ว ให้เพิ่มกำหนดการนี้ลงในกำหนดการที่มีอยู่ และใช้จุดตรวจสอบที่เหมาะสมที่สุดซึ่งกล่าวถึงข้างต้นเพื่อเปรียบเทียบการทดสอบนี้กับเกณฑ์พื้นฐาน เช่น หากเดิมเรามี max_train_steps 10,000 รายการและใช้ warmup_steps สำหรับ 1,000 ขั้นตอน ขั้นตอนการฝึกใหม่ควรจะมีทั้งหมด 11,000 ขั้นตอน

หากต้องใช้ warmup_steps แบบยาวสำหรับการฝึกที่เสถียร (มากกว่า 5% ของ max_train_steps) คุณอาจต้องเพิ่ม max_train_steps เพื่อชดเชยส่วนนี้

จริงๆ แล้วไม่มีค่า "ปกติ" สำหรับภาระงานทั้งหมด บางรุ่นต้องใช้เพียง 100 ขั้นตอนเท่านั้น ขณะที่บางรุ่น (โดยเฉพาะ Transformer) อาจต้องมากกว่า 40, 000 ขั้นตอน

การตัดไล่ระดับสี

กราฟของ Grad l2 norm (แกน y) เทียบกับขั้นบันไดทั่วโลก (แกน x) การฝึกบรรทัดฐานการไล่ระดับสี "ปกติ" ไม่เสถียรมากในขั้นตอนทั่วโลกช่วงแรกๆ เกณฑ์ของคลิปที่ก้าวร้าวเกินไปจะลดอัตราการเรียนรู้และทำให้การฝึกช้าลง เกณฑ์ของคลิปที่ดีขึ้น (สูงกว่าค่าปกติของการไล่ระดับสีทั่วไป) ทำให้การฝึกในช่วงแรกคงที่
รูปที่ 9 การไล่ระดับสีเพื่อแก้ไขความไม่เสถียรของการฝึกในช่วงแรก

 

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

  • ความไม่เสถียรของการฝึกในช่วงแรก (ค่าการไล่ระดับสีขนาดใหญ่ในช่วงต้น)
  • ความไม่เสถียรของการฝึกระดับกลาง (การไล่ระดับสีอย่างฉับพลันขณะฝึก)

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

🤖 การตัดคลิประหว่างการเตรียมเครื่องจะเป็นอย่างไร

เกณฑ์ของคลิปที่เหมาะสมจะสูงกว่าค่าการไล่ระดับสี "ปกติ" เท่านั้น

ตัวอย่างวิธีการตัดการไล่ระดับสีมีดังนี้

  • หากค่าปกติของการไล่ระดับสี $\left | g \right |$ มากกว่า เกณฑ์การตัดไล่ระดับสี $\lambda$ ให้ทำ ${g}'= \lambda \times \frac{g}{\left | g \right |}$ โดย ${g}'$ คือการไล่ระดับสีใหม่

บันทึกค่าการไล่ระดับสีแบบยกเลิกการยึดระหว่างการฝึก โดยค่าเริ่มต้น ให้สร้างสิ่งต่อไปนี้

  • พล็อตแบบไล่ระดับสีแบบปกติเทียบกับขั้นตอน
  • ฮิสโตแกรมของเส้นตรงของการไล่ระดับสีที่รวบรวมจากขั้นตอนทั้งหมด

เลือกเกณฑ์การตัดการไล่ระดับสีตามเปอร์เซ็นไทล์ที่ 90 ของค่าปกติการไล่ระดับสี เกณฑ์จะขึ้นอยู่กับภาระงาน แต่ 90% ก็เป็นจุดเริ่มต้นที่ดี หาก 90% ไม่ได้ผล คุณปรับเกณฑ์นี้ได้

🤖 กลยุทธ์แบบปรับเปลี่ยนได้บ้างไหม

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

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

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

คำว่า "hyperparameter" มีความหมายชัดเจนในแมชชีนเลิร์นนิงแบบ Bayes ดังนั้นการอ้างอิงถึงอัตราการเรียนรู้และพารามิเตอร์การเรียนรู้เชิงลึกอื่นๆ ส่วนใหญ่แบบปรับแต่งได้เป็น "hyperparameters" ถือเป็นการละเมิดการใช้คำศัพท์ เราต้องการใช้คำว่า "metaparameter" สำหรับอัตราการเรียนรู้ พารามิเตอร์ทางสถาปัตยกรรม และสิ่งที่ปรับแต่งไม่ได้ทั้งหมดเกี่ยวกับการเรียนรู้เชิงลึก นั่นเป็นเพราะพารามิเตอร์เมตาช่วยหลีกเลี่ยงความสับสนที่อาจเกิดขึ้น จากการใช้คำว่า "ไฮเปอร์พารามิเตอร์" ในทางที่ผิด โดยเฉพาะเมื่อพูดถึงการเพิ่มประสิทธิภาพ Bayesian ซึ่งโมเดลพื้นผิวการตอบสนองความน่าจะเป็นมีไฮเปอร์พารามิเตอร์ที่แท้จริงของตัวเอง

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

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

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

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

เมื่อพิจารณาผลกระทบทั้งหมดแล้ว จะไม่มีหลักฐานที่เชื่อได้ว่าขนาดกลุ่มมีผลต่อประสิทธิภาพการตรวจสอบสูงสุดที่สามารถบรรลุผลได้ ดูรายละเอียดได้ที่ Shallue et al. 2018

กฎการอัปเดตสำหรับอัลกอริทึมการเพิ่มประสิทธิภาพยอดนิยมทั้งหมดมีอะไรบ้าง

ส่วนนี้จะแสดงกฎการอัปเดตสำหรับอัลกอริทึมการเพิ่มประสิทธิภาพที่ได้รับความนิยมหลายรายการ

การไล่ระดับสีแบบสโตแคสติก (SGD)

\[\theta_{t+1} = \theta_{t} - \eta_t \nabla \mathcal{l}(\theta_t)\]

$\eta_t$ คืออัตราการเรียนรู้ในขั้นตอนที่ $t$

สร้างกระแส

\[v_0 = 0\]

\[v_{t+1} = \gamma v_{t} + \nabla \mathcal{l}(\theta_t)\]

\[\theta_{t+1} = \theta_{t} - \eta_t v_{t+1}\]

โดย $\eta_t$ คืออัตราการเรียนรู้ในขั้นตอนที่ $t$ และ $\gamma$ คือสัมประสิทธิ์โมเมนตัม

เนสเตรอฟ

\[v_0 = 0\]

\[v_{t+1} = \gamma v_{t} + \nabla \mathcal{l}(\theta_t)\]

\[\theta_{t+1} = \theta_{t} - \eta_t ( \gamma v_{t+1} + \nabla \mathcal{l}(\theta_{t}) )\]

โดย $\eta_t$ คืออัตราการเรียนรู้ในขั้นตอนที่ $t$ และ $\gamma$ คือสัมประสิทธิ์โมเมนตัม

RMSProp

\[v_0 = 1 \text{, } m_0 = 0\]

\[v_{t+1} = \rho v_{t} + (1 - \rho) \nabla \mathcal{l}(\theta_t)^2\]

\[m_{t+1} = \gamma m_{t} + \frac{\eta_t}{\sqrt{v_{t+1} + \epsilon}}\nabla \mathcal{l}(\theta_t)\]

\[\theta_{t+1} = \theta_{t} - m_{t+1}\]

เอแดม

\[m_0 = 0 \text{, } v_0 = 0\]

\[m_{t+1} = \beta_1 m_{t} + (1 - \beta_1) \nabla \mathcal{l} (\theta_t)\]

\[v_{t+1} = \beta_2 v_{t} + (1 - \beta_2) \nabla \mathcal{l}(\theta_t)^2\]

\[b_{t+1} = \frac{\sqrt{1 - \beta_2^{t+1}}}{1 - \beta_1^{t+1}}\]

\[\theta_{t+1} = \theta_{t} - \alpha_t \frac{m_{t+1}}{\sqrt{v_{t+1}} + \epsilon} b_{t+1}\]

นาดา

\[m_0 = 0 \text{, } v_0 = 0\]

\[m_{t+1} = \beta_1 m_{t} + (1 - \beta_1) \nabla \mathcal{l} (\theta_t)\]

\[v_{t+1} = \beta_2 v_{t} + (1 - \beta_2) \nabla \mathcal{l} (\theta_t)^2\]

\[b_{t+1} = \frac{\sqrt{1 - \beta_2^{t+1}}}{1 - \beta_1^{t+1}}\]

\[\theta_{t+1} = \theta_{t} - \alpha_t \frac{\beta_1 m_{t+1} + (1 - \beta_1) \nabla \mathcal{l} (\theta_t)}{\sqrt{v_{t+1}} + \epsilon} b_{t+1}\]