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


31

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

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


3
แบบจำลองเชิงเส้นได้รับการจัดการอย่างเหมาะสมตั้งแต่ปี 1700 มีวิธีมากมายในการจัดการกับพวกเขาที่ไม่ต้องการการไล่ระดับสี (GD) มีรูปแบบไม่เชิงเส้นที่วิธีการเหล่านั้นส่วนใหญ่จะแบนบนใบหน้าของพวกเขา แอนดรูว์กำลังทำให้คุณใช้วิธีที่ไม่คุ้นเคย แต่มีประโยชน์มากกับปัญหาที่ง่ายมากเพื่อให้คุณสามารถดีบักวิธีการของคุณ เมื่อคุณทำได้ดีด้วยวิธีการที่คุณสามารถนำไปใช้กับปัญหาไม่เชิงเส้นที่น่าทึ่งซึ่ง GD เป็นวิธีเดียวที่จะได้รับผลลัพธ์
EngrStudent - Reinstate Monica

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

หากฟังก์ชั่นค่าใช้จ่ายมีค่าปรับเป็นสองเท่า ('ระยะทาง') จะมีวิธีแก้ปัญหาแบบปิด อย่างไรก็ตามการไล่ระดับสีโดยทั่วไปนั้นเร็วกว่ามากนั่นคือสาเหตุที่ใช้โดยทั่วไป
aginensky

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

3
ขอบคุณที่โพสต์ลิงค์ thet ไปยังวิดีโอ Andre Ng ที่ฉันดูไปหลายครั้ง ฉันรู้แล้วแม้ว่าจะไม่สุดขั้ว แต่ก็น่ากลัวที่จะเห็นว่าการเพิ่มประสิทธิภาพ "การเรียนรู้" ของคนส่วนใหญ่กำลังเรียนรู้อะไรและอย่างน้อยพวกเขาบางคนกำลังเรียนรู้เกี่ยวกับการคำนวณเชิงสถิติ Gene Golub ผู้บุกเบิกในการใช้คอมพิวเตอร์และการใช้ SVD จะพลิกผันในหลุมฝังศพของเขาถ้าเขารู้ว่าสิ่งที่กำลังสอนอยู่ในแผนกวิทยาศาสตร์คอมพิวเตอร์ Stanford ของเขาวิดีโอ "ที่สนุกที่สุด" คือyoutube.com/watch?v=B3vseKmgi8Eซึ่ง แนะนำและเปรียบเทียบอัลกอริทึม 2 WORST อย่างน้อยกำลังสอง
Mark L. Stone

คำตอบ:


43

สี่เหลี่ยมเส้นตรงน้อยที่สุดสามารถแก้ไขได้โดย

0) การใช้ตัวแก้สมการกำลังสองเชิงเส้นสี่เหลี่ยมจัตุรัสเชิงเส้นคุณภาพสูงตาม SVD หรือ QR ดังที่อธิบายไว้ด้านล่างสำหรับสี่เหลี่ยมจัตุรัสเชิงเส้นที่น้อยที่สุดแบบไม่มีเงื่อนไขหรืออิงตามกำลังสองของการเขียนโปรแกรมแบบ Quadratic หรือ Conic Optimization สำหรับสี่เหลี่ยมจัตุรัส ตัวแก้ปัญหาดังกล่าวบรรจุกระป๋องล่วงหน้าทดสอบอย่างหนักและพร้อมใช้งาน - ใช้งาน

1) SVD ซึ่งเป็นวิธีการที่เชื่อถือได้และแม่นยำที่สุด แต่ยังต้องใช้การคำนวณมากกว่าทางเลือก ใน MATLAB โซลูชัน SVD ของปัญหากำลังสองน้อยที่สุดที่ไม่เป็นเชิงเส้น A * X = b คือ pinv (A) * b ซึ่งมีความแม่นยำและน่าเชื่อถือมาก

2) QR ซึ่งมีความน่าเชื่อถือและแม่นยำเป็นตัวเลข แต่ไม่มากเท่ากับ SVD และเร็วกว่า SVD ใน MATLAB คำตอบ QR ของปัญหากำลังสองน้อยที่สุดแบบเส้นตรงที่ไม่มีเงื่อนไข จำกัด A * X = b คือ A \ b ซึ่งค่อนข้างแม่นยำและเชื่อถือได้ยกเว้นเมื่อ A ไม่มีเงื่อนไขกล่าวคือมีจำนวนเงื่อนไขมาก A \ b เร็วกว่าการคำนวณกว่า pinv (A) * b แต่ไม่น่าเชื่อถือหรือแม่นยำ

3) การสร้างสมการปกติ (TERRIBLE จากความน่าเชื่อถือและมุมมองความแม่นยำเชิงตัวเลขเพราะมันจะทำให้จำนวนเงื่อนไขเป็นสี่เหลี่ยมซึ่งเป็นสิ่งที่เลวมากที่ต้องทำ) และ

3a) การแก้ปัญหาโดย Cholesky Factorization (ไม่ดี)

3b) เมทริกซ์ย้อนกลับอย่างชัดเจน (HORRIBLE)

4) การแก้ปัญหาการเขียนโปรแกรมสมการกำลังสองหรือปัญหาโคนลำดับที่สอง

4a) แก้ปัญหาด้วยซอฟต์แวร์เขียนโปรแกรม Quadratic คุณภาพสูง สิ่งนี้มีความน่าเชื่อถือและแม่นยำตัวเลข แต่ใช้เวลานานกว่า SVD หรือ QR อย่างไรก็ตามมันเป็นเรื่องง่ายที่จะเพิ่มข้อ จำกัด เชิงเส้นหรือทั่วไปหรือโทษเชิงเส้นหรือสมการกำลังสอง (สองบรรทัดฐาน) หรือเงื่อนไขการทำให้เป็นมาตรฐานในฟังก์ชันวัตถุประสงค์และยังคงแก้ปัญหาโดยใช้ซอฟต์แวร์กำลังสองโปรแกรม

4b) แก้ไขเป็นปัญหาโคนลำดับที่สองโดยใช้ซอฟต์แวร์ Conic Optimization ที่มีคุณภาพสูง ข้อสังเกตเหมือนกับซอฟต์แวร์ Quadratic Programming แต่คุณสามารถเพิ่มข้อ จำกัด เชิงเส้นหรือทั่วไปและข้อ จำกัด รูปกรวยอื่น ๆ หรือข้อกำหนดฟังก์ชันวัตถุประสงค์เช่นการลงโทษหรือข้อกำหนดในบรรทัดฐานต่าง ๆ

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

6) แก้ปัญหาโดยใช้จุดประสงค์ทั่วไปของอัลกอริธึมการเพิ่มประสิทธิภาพที่ไม่ใช่เชิงเส้น -> อย่าทำเช่นนี้

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

7 i) เรียนรู้เกี่ยวกับการคำนวณทางสถิติจากคนที่รู้เรื่องนี้

7 ii) เรียนรู้การปรับให้เหมาะสมจากคนที่รู้บางสิ่งเกี่ยวกับมัน


โพสต์ดีทำไมคุณคิดว่า Cholesky ไม่ดีเพราะระบบของคุณเป็น PD? (และไม่ได้มีหมายเลขเงื่อนไขที่น่าหัวเราะ) BTW ฉันคิดว่าคุณต้องการที่จะพูด (หรือเพิ่ม) ความคิดของการผกผันทั่วไป (ส่วนใหญ่ใช้เพื่อการศึกษาอย่างเห็นได้ชัด) ทั้งที่ "SVD" หรือจุด
usεr11852พูดว่า Reinstate Monic

2
BTW มันไร้สาระว่าการฝึกอบรมที่มีตัวเลขที่มีเงื่อนไขสูงมากถูกสร้างขึ้นโดยเฉพาะอย่างยิ่งโดยฝูงที่ไม่เคยอาบน้ำ (เช่นคนส่วนใหญ่ที่ทำสี่เหลี่ยมจัตุรัสเชิงเส้นน้อยที่สุดโดยเฉพาะอย่างยิ่งเมื่อได้รับการเข้าถึงประชาธิปไตย)
Mark L. Stone

1
mldivide เช่น backslash กล่าวคือ \ ใช้ QR เมื่อ m ~ = n (กำลังสองน้อยที่สุด) ดังที่ฉันระบุไว้ในประโยคที่ 2 ของวรรค (2) ข้างต้น คุณจะประหลาดใจที่มีอึมากใน MATLAB - ไม่ใช่แค่ในกล่องเครื่องมือซึ่งบางอันก็น่าสยดสยองอย่างแน่นอน
Mark L. Stone

1
@ MarkL.Stone คำตอบที่ยอดเยี่ยม! คุณช่วยอธิบายเพิ่มเติมหน่อยได้ไหมว่าทำไมจึงไม่แนะนำให้ใช้ Gradient descent สำหรับการแก้ปัญหากำลังสองน้อยที่สุด! (ในความเข้าใจของฉันมันเป็นเพียงวิธีการทำซ้ำเมื่อเทียบกับคนอื่น ๆ (แนวทางการแก้ปัญหาทิศทาง) ซึ่งคุณได้กล่าวถึงข้างต้น) ยิ่งกว่านั้นคุณสามารถให้ความเห็นเกี่ยวกับปัญหา: "ถ้าฉันมีคุณสมบัติ n> = 30,000 สำหรับปัญหาวิธีสมการปกติจะช้ามากเนื่องจากการแปลงเมทริกซ์ n * n จะแย่มากในทางกลับกัน GD จะทำงานในสิ่งนี้ กรณีที่น่ารัก! ความคิดใด ๆ เกี่ยวกับวิธีที่ SVD & QR จะแสดง " ข้อเสนอแนะใด ๆ จะเป็นประโยชน์
anu

1
@ anu ใช้การไล่ระดับสีเป็นทางเลือกสุดท้ายเท่านั้น และนั่นจะเป็นเพียงถ้าปัญหาใหญ่เกินไปที่จะแก้ไขโดย SVD หรือ QR ไม่เคยสร้างสมการปกติเอาไว้อย่างเดียวกลับด้านเมทริกซ์เพื่อแก้สมการปกติไม่เคย ปัจจุบันมีฟีเจอร์ 30,000 รายการที่ไม่เหมือนกันมากนัก
Mark L. Stone

0

การหาค่าสัมประสิทธิ์ของรูปแบบเชิงเส้นเป็นเทคนิคขั้นตอนการหาทางแก้ปัญหาให้กับชุดของสมการเชิงเส้น

สำหรับการคำนวณโซลูชันดังกล่าวนั้นoptimization techniquesได้มีการพัฒนาขึ้นมากมายและGradient Descentเป็นหนึ่งในนั้น
ดังนั้น Gradient Descent ไม่ใช่วิธีเดียวที่จะทำเช่นนั้น

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


ในขณะที่ไม่ผิดฉันคิดว่าคำตอบของคุณคิดถึงภาพที่ใหญ่ขึ้นโดยเน้นที่กรณีที่ไม่ได้มาตรฐาน ส่วนใหญ่ของแบบจำลองการถดถอยเชิงเส้นมีการติดตั้งโดยใช้ QR สลายจ้างวิธีการแก้ปัญหาแบบปิด GD- ทางเลือกที่เหมาะสม - ใช้เป็นตัวอย่างในการแนะนำวิธีการขั้นสูงเพิ่มเติม (เช่นSGD- สุ่มGD)
usεr11852พูดว่า Reinstate Monic

คุณช่วยอธิบายการสลายตัวของ QR คืออะไร?
วิกเตอร์

3
คุณต้องการที่จะแก้ Ax=. ป.ร. ให้ไว้A=QR ที่ไหน R เป็นรูปสามเหลี่ยมบนและ Q เป็นมุมฉาก Ax=QRx=Rx=QT ซึ่งสามารถแก้ไขได้ด้วยการทดแทนย้อนหลัง (เช่น. เร็ว) เป็น R เป็นรูปสามเหลี่ยมและ QTQ=ผม. สำหรับเมทริกซ์ที่มีขนาดใหญ่มาก (รายการนับล้าน) สิ่งนี้อาจมีราคาแพงกว่าตัวแก้แบบวนซ้ำเช่น SGD. เนื่องจากคนส่วนใหญ่ไม่มีเมทริกซ์ที่ใหญ่มากการสลายตัวของ QR จึงดีกว่า โดยทั่วไปการสลายตัวของ QR มีรูปร่างเป็นโลกแห่งตัวเลข SIAMเลือกให้เป็นหนึ่งในอัลกอริทึม 10 อันดับแรกของศตวรรษที่ 20
usεr11852พูดว่า Reinstate Monic

@ usεr11852ใช่แน่นอน นั่นเป็นเพราะฉันต้องการให้คำตอบง่าย ๆ เพื่อหลีกเลี่ยงแนวคิดเช่นการถอดรหัส QR ซึ่งยังคงเกี่ยวข้องกับโดเมนของระดับหลักสูตรของ Ng
Vikas Raturi

3
QR เป็นหนึ่งใน 10 อัลกอริทึมยอดนิยมของศตวรรษที่ 20 แต่เวลาเดินเข้ามาถึงแม้ว่าอัลกอริธึมที่มีประสิทธิภาพสำหรับการคำนวณวันที่ของ SVD กลับไปเป็นปี 1960 คุณต้องดูความสำคัญของพื้นที่แอปพลิเคชัน ดังนั้นฉันเชื่อว่า SVD เป็นอัลกอริทึมยอดนิยมของศตวรรษที่ 21 คุณค่อนข้างเคยได้ยินเรื่องการใช้ QR เพื่อแนะนำภาพยนตร์บ้างไหม? ไม่ SVD ถูกนำมาใช้เพื่อการอ้างอิงที่สำคัญ SVD เป็นอัลกอริธึมที่เลือกอย่างชัดเจนเมื่อ Twitter ส่งคำแนะนำที่ไม่พึงประสงค์ไปยังผู้แก่เก่าที่อนุรักษ์นิยมว่าพวกเขาควรทำตามดาราคนไหน มาดู QR กันเลย !!!
Mark L. Stone
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.