ทำไมต้องใช้การไล่ระดับสี


10

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

ทำไมการไล่ระดับสีแทนจึงดำเนินการแทน


2
วิธีการหนึ่งตั้งอนุพันธ์โดยทั่วไปเป็น 0 สำหรับฟังก์ชั่นได้อย่างไร ด้วยอัลกอริธึมเช่นการไล่ระดับสี
หน้าผา AB

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



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

คำตอบ:


8

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

ตัวอย่างเช่นหากเราพิจารณาการถดถอยเชิงเส้นโซลูชันที่ชัดเจนต้องแปลงเมทริกซ์ที่มีความซับซ้อน O(ยังไม่มีข้อความ3). สิ่งนี้กลายเป็นสิ่งต้องห้ามในบริบทของข้อมูลขนาดใหญ่

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

ดังที่ได้กล่าวแล้วยังมีปัญหาที่ไม่เกี่ยวข้องกับนูนเช่นโครงข่ายประสาทที่วิธีการไล่ระดับสี (backpropagation) เป็นวิธีแก้ปัญหาที่มีประสิทธิภาพ อีกครั้งนี้มีความเกี่ยวข้องเป็นพิเศษสำหรับกรณีการเรียนรู้ลึก


2
อินเวอร์ติ้งเมทริกซ์เป็นเพียงส่วนน้อยของชาวนาที่นี่เนื่องจากการสลายตัวของ QR ด้วยการหมุนบางส่วนนั้นแม่นยำและรวดเร็วกว่า แต่ใช่ QR ยังคงอยู่ O(n3). ฉันยอมรับว่าสำหรับระบบที่มีขนาดใหญ่เพียงพอ (เช่น> 10,000 ตัวแปร) ที่สามารถเริ่มเป็นปัญหาได้ วิธีการที่ทันสมัยและใช้เทคโนโลยีขั้นสูงนั้นจะประมาณวิธีการแก้ปัญหาด้วยวิธีการซ้ำ ๆ ของ Krylov subspace (เช่น. conjugate gradient, GMRES)
Matthew Gunn

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

12

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

นั่นเป็นคำตอบที่พลิกกลับเล็กน้อย คำถามของคุณควรเป็น "ทำไมเราต้องมีวิธีการทำซ้ำ?" เช่น. ทำไมไม่ตรงไปที่วิธีการแก้ปัญหาถ้าปัญหานูนออกมา, เงื่อนไขของ Slater ถืออยู่, และเงื่อนไขการสั่งซื้อครั้งแรกเป็นสิ่งที่จำเป็นและเงื่อนไขเพียงพอสำหรับการที่เหมาะสม? นั่นคือเมื่อโซลูชันสามารถอธิบายได้ว่าเป็นวิธีแก้ปัญหาของระบบสมการทำไมไม่เพียงแค่แก้ปัญหาระบบ? คำตอบคือ:

  • สำหรับปัญหาการหาค่าเหมาะที่สุดกำลังสองเงื่อนไขการสั่งซื้อครั้งแรกคือระบบของสมการเชิงเส้นและเราสามารถไปที่โซลูชันได้โดยตรงเนื่องจากระบบเชิงเส้นสามารถแก้ไขได้อย่างมีประสิทธิภาพ! เราจะใช้เงื่อนไขการสั่งซื้อครั้งแรกและแก้ปัญหาระบบ (เช่นด้วยการสลายตัว QR, ข้อแม้ด้านล่าง)
  • โดยทั่วไปแม้ว่าเงื่อนไขการเรียงลำดับแรกจะกำหนดระบบที่ไม่ใช่เชิงเส้นของสมการและระบบที่ไม่ใช่เชิงเส้นอาจแก้ไขได้ยาก! ในความเป็นจริงวิธีที่คุณมักจะแก้ระบบสมการไม่เชิงเส้นเป็นตัวเลขคือคุณปรับโครงสร้างมันเป็นปัญหาการเพิ่มประสิทธิภาพ ...
  • สำหรับระบบเชิงเส้นที่มีขนาดใหญ่มากการแก้ปัญหาระบบโดยตรงด้วยการย่อยสลาย QR และการหมุนเป็นบางส่วนนั้นเป็นไปไม่ได้ ผู้คนทำอะไร! วิธีการวนซ้ำ! (เช่นวิธีการซ้ำ Krylov subspace ... )

7

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

ในโลกแห่งความเป็นจริงฟังก์ชั่นค่าใช้จ่ายจำนวนมากไม่มีอนุพันธ์ทุกที่ (นอกจากนี้ฟังก์ชั่นค่าใช้จ่ายอาจไม่ต่อเนื่องและไม่มีอนุพันธ์ใด ๆ เลย) นอกจากนี้คุณยังสามารถคำนวณอนุพันธ์ได้ แต่คุณไม่สามารถแก้สมการเชิงวิเคราะห์ได้ (ตัวอย่างเช่นคิดถึงวิธีแก้x7+x3-52+อีx+ล.โอก.(x+x2)+1/x=0วิเคราะห์? ฉันสามารถบอกคุณได้คำตอบเชิงตัวเลขคือx=1.4786แต่ไม่ทราบวิธีการวิเคราะห์) เราต้องใช้วิธีการเชิงตัวเลข (ตรวจสอบสาเหตุที่นี่ในกรณีพหุนามAbel Ruffin ทฤษฎีบท )

วิธีการวนซ้ำนั้นใช้งานได้ดีและเข้าใจง่าย สมมติว่าคุณต้องการเพิ่มประสิทธิภาพหนึ่งฟังก์ชั่นแทนการแก้สมการและได้รับคำตอบคุณพยายามปรับปรุงคำตอบของคุณด้วยจำนวนการวนซ้ำ / ขั้นตอนหลังจากการทำซ้ำมากพอคุณจะได้คำตอบใกล้เคียงกับ "คำตอบที่แท้จริง" พูดว่าถ้าคุณใช้แคลคูลัสเพื่อย่อขนาด(x)=x2คุณจะได้รับโดยตรง x=0แต่โดยใช้วิธีการเชิงตัวเลขคุณอาจได้รับ x=1.1234×10-20.

ตอนนี้มันเป็นสิ่งสำคัญที่จะเข้าใจวิธีการทำงานซ้ำเหล่านี้ แนวคิดหลักคือการรู้วิธีอัปเดตพารามิเตอร์อินพุตของคุณเพื่อรับโซลูชันที่ดีขึ้น สมมติว่าคุณต้องการลด(x1,x2)=x12+x22+|x1+x2| (โปรดทราบว่าฟังก์ชั่นค่าใช้จ่ายนี้ไม่ได้มีความแตกต่างกันไปทุกที่ แต่มีความแตกต่างกันใน "สถานที่ส่วนใหญ่" นี่เป็นสิ่งที่ดีพอสำหรับเราเนื่องจากเรารู้วิธีอัปเดตที่ "สถานที่ส่วนใหญ่") ขณะนี้คุณอยู่ (1,1)และค่าใช้จ่ายคือ 4.0ตอนนี้คุณต้องการอัปเดต (x1,x2)เพื่อทำให้ฟังก์ชั่นวัตถุประสงค์มีขนาดเล็กลง คุณจะทำอย่างไร คุณอาจบอกว่าฉันต้องการลดทั้งสองx1 x2แต่ทำไม ในความเป็นจริงคุณมีความหมายโดยใช้แนวคิดของการไล่ระดับสี "เปลี่ยนจำนวนเล็กน้อยxจะเกิดอะไรขึ้น Y" . ใน(1,1)อนุพันธ์คือ (3,3)ดังนั้นการไล่ระดับสีที่เป็นลบจะคูณด้วยอัตราการเรียนรู้ α=0.001, คือ (-0.003,-0.003)ดังนั้นเราจึงอัปเดตโซลูชันของเราจาก 1,1 ถึง (0.997,0.997) ซึ่งมีต้นทุนที่ดีกว่า


ข้อมูลเพิ่มเติมสามารถพบได้ในโพสต์ที่เกี่ยวข้อง
Haitao Du

4

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

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

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