Gradient Descent เป็นศูนย์กลางของทุกเครื่องมือเพิ่มประสิทธิภาพหรือไม่


13

ฉันต้องการทราบว่า Gradient descent เป็นอัลกอริทึมหลักที่ใช้ในเครื่องมือเพิ่มประสิทธิภาพเช่น Adam, Adagrad, RMSProp และเครื่องมือเพิ่มประสิทธิภาพอื่น ๆ


1
ฉันประหลาดใจที่ไม่มีใครพูดถึง "ผู้ประสานงานสืบเชื้อสาย" หรือ "ประสานงานทางขึ้น" en.wikipedia.org/wiki/Coordinate_descent
นาธาน

คำตอบ:


28

ไม่ได้การไล่ระดับสีแบบเกรเดียนต์ใช้ในอัลกอริธึมการออปติไมซ์ที่ใช้การไล่ระดับสีเป็นพื้นฐานของการเคลื่อนที่แบบสเต็ป Adam, AdagradและRMSPropทั้งหมดใช้รูปแบบการไล่ระดับสีบางรูปแบบอย่างไรก็ตามมันไม่ได้ใช้ทุกเครื่องมือเพิ่มประสิทธิภาพ อัลกอริธึมวิวัฒนาการเช่นการเพิ่มประสิทธิภาพจับกลุ่มอนุภาคและอัลกอริทึมทางพันธุกรรมได้รับแรงบันดาลใจจากปรากฏการณ์ธรรมชาติไม่ได้ใช้การไล่ระดับสี อัลกอริทึมอื่น ๆ เช่นการเพิ่มประสิทธิภาพแบบเบย์ดึงแรงบันดาลใจจากสถิติ

ลองดูการสร้างภาพของการเพิ่มประสิทธิภาพแบบเบย์ในลักษณะนี้: การเพิ่มประสิทธิภาพเบย์ในการดำเนินการ

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

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

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

ฟังก์ชันเกณฑ์มาตรฐาน Rastrigin


ขอบคุณมาก. ชอบคำตอบของคุณ
InAFlash

8

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

ตามร่างกาย:
ใช่ Adam, Adagrad, RMSProp และเครื่องมือเพิ่มประสิทธิภาพอื่น ๆ ที่คล้ายกัน (Nesterov, Nadam, ฯลฯ ) กำลังพยายามเสนอขนาดขั้นตอนการปรับตัว (อัตราการเรียนรู้) สำหรับการไล่ระดับสีเพื่อเพิ่มความเร็วในการลู่เข้าโดยไม่ต้องเสียสละประสิทธิภาพ ขีดสุด).

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

บางบันทึกพิเศษ

  1. รูปร่างของฟังก์ชั่นการสูญเสียขึ้นอยู่กับทั้งพารามิเตอร์ของโมเดลและข้อมูลดังนั้นการเลือกวิธีที่ดีที่สุดนั้นขึ้นอยู่กับงานเสมอและต้องการทดลองและข้อผิดพลาด

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

  3. w21(0,1.1)(0,1)(0.43,0.9)


3

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

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

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

ประการที่สองความซับซ้อนของการหา extremums ใช้เมทริกซ์และผกผันของพวกเขาคือสำหรับงานถดถอยง่ายๆที่พารามิเตอร์สามารถพบการใช้TY) ปรากฎว่าวิธีการไล่ระดับสีแบบง่ายสามารถมีประสิทธิภาพที่ดีขึ้น มันควรจะกล่าวว่าในกรณีก่อนคุณต้องนำข้อมูลไปยังหน่วยความจำพร้อมกันซึ่งเป็นไปไม่ได้สำหรับโอกาสที่คุณจัดการกับงานข้อมูลขนาดใหญ่O(n3)w=(XtX)1(Xty)

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


3

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

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.