ประเภทของเครื่องมือเพิ่มประสิทธิภาพในการเรียนรู้เชิงลึกที่วิศวกร AI ทุกคนควรรู้

เผยแพร่แล้ว: 2020-12-01

สารบัญ

บทนำ

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

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

เรียนรู้ หลักสูตร AI ML จากมหาวิทยาลัยชั้นนำของโลก รับ Masters, Executive PGP หรือ Advanced Certificate Programs เพื่อติดตามอาชีพของคุณอย่างรวดเร็ว

โคตรลาด (GD)

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

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

Stochastic Gradient Descent

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

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

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

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

อ่าน: แนวคิดโครงการการเรียนรู้ของเครื่อง

โมเมนตัมตามการไล่ระดับสีโคตร

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

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

องค์ประกอบนี้ขึ้นอยู่กับค่าก่อนหน้า อัตราการเรียนรู้ และพารามิเตอร์ใหม่ที่เรียกว่า แกมมา ซึ่งควบคุมการอัปเดตประวัตินี้ กฎการอัพเดทจะเป็นแบบ w = w – v โดยที่ v คือองค์ประกอบประวัติ

Nesterov เร่งความเร็วไล่ระดับ (NAG)

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

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

อ่านเพิ่มเติม: เทคนิคการเรียนรู้เชิงลึกที่คุณควรรู้

อดากราด

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

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

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

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

RMSProp

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

อดัม

Adaptive Moment Estimation รวมพลังของ RMSProp (root-mean-square prop) และ GD แบบโมเมนตัม ในตัวเพิ่มประสิทธิภาพของ Adam พลังของโมเมนตัม GD ในการเก็บประวัติของการอัปเดตและอัตราการเรียนรู้แบบปรับตัวโดย RMSProp ทำให้ Adam Optimization เป็นวิธีการที่มีประสิทธิภาพ นอกจากนี้ยังแนะนำไฮเปอร์พารามิเตอร์ใหม่สองตัวคือ beta1 และ beta2 ซึ่งปกติจะอยู่ที่ประมาณ 0.9 และ 0.99 แต่คุณสามารถเปลี่ยนได้ตามกรณีการใช้งานของคุณ

ต้องอ่าน: การทำให้เป็นมาตรฐานในการเรียนรู้อย่างลึกซึ้ง

บทสรุป

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

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

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

หากคุณอยากเชี่ยวชาญด้านการเรียนรู้ของเครื่องและ AI ให้เพิ่มอาชีพของคุณด้วยวิทยาศาสตรมหาบัณฑิตสาขาการเรียนรู้ของเครื่องและ AI กับ IIIT-B และมหาวิทยาลัย Liverpool John Moores

เครื่องมือเพิ่มประสิทธิภาพทำงานการเรียนรู้เชิงลึกอย่างไร

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

เหตุใดการเพิ่มประสิทธิภาพอัลกอริธึมการเรียนรู้เชิงลึกจึงเป็นเรื่องยาก

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

เครื่องมือเพิ่มประสิทธิภาพต่างๆ ในการเรียนรู้เชิงลึกต่างกันอย่างไร

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