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


73

ฉันกำลังเรียนหลักสูตร Machine Learning ออนไลน์และเรียนรู้เกี่ยวกับ Gradient Descent สำหรับการคำนวณค่าที่ดีที่สุดในสมมติฐาน

h(x) = B0 + B1X

ทำไมเราต้องใช้ Gradient Descent หากเราสามารถหาค่าได้ง่ายด้วยสูตรด้านล่าง นี่ดูตรงไปตรงมาและง่ายเกินไป แต่ GD ต้องการการวนซ้ำหลายครั้งเพื่อรับค่า

B1 = Correlation * (Std. Dev. of y/ Std. Dev. of x)

B0 = Mean(Y) – B1 * Mean(X)

หมายเหตุ:ถ่ายในhttps://www.dezyre.com/data-science-in-r-programming-tutorial/linear-regression-tutorial

ฉันตรวจสอบคำถามด้านล่างและสำหรับฉันมันก็ไม่ชัดเจนที่จะเข้าใจ

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

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

คำตอบข้างต้นเปรียบเทียบ GD กับการใช้อนุพันธ์


5
คุณไม่ต้องการการไล่ระดับสีเพื่อประมาณค่าสัมประสิทธิ์การถดถอยเชิงเส้น
Sycorax

8
@Sycorax "ไม่ต้องการ" เป็นคำสั่งที่แข็งแกร่ง วิธีการวนซ้ำอาจเป็นประโยชน์สำหรับข้อมูลขนาดใหญ่ สมมติว่า data matrix ใหญ่มากที่ไม่สามารถใส่หน่วยความจำได้
Haitao Du

8
@ hxd1011 ขอบคุณสำหรับการชี้แจงมิติการปฏิบัตินี้เพื่อปัญหา ฉันคิดในแง่คณิตศาสตร์ล้วนๆ
Sycorax

คำตอบ:


89

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

สูตรที่คุณเขียนนั้นดูเรียบง่ายมากแม้กระทั่งการคำนวณเพราะมันใช้ได้กับกรณีที่ไม่แปรเปลี่ยนเช่นเมื่อคุณมีตัวแปรเพียงตัวเดียว ในกรณีที่หลายตัวแปรเมื่อคุณมีตัวแปรหลายสูตรเล็กน้อยที่ซับซ้อนมากขึ้นบนกระดาษและต้องมากการคำนวณมากขึ้นเมื่อคุณใช้มันในซอฟต์แวร์: นี่คุณ จำเป็นต้องคำนวณเมทริกซ์จากนั้นกลับด้าน (ดูหมายเหตุด้านล่าง) เป็นการคำนวณราคาแพง สำหรับการอ้างอิงของคุณเมทริกซ์ X (ออกแบบ) มี K + 1 คอลัมน์โดยที่ K คือจำนวนของตัวทำนายและแถวการสังเกต N แถว ในอัลกอริทึมการเรียนรู้ของเครื่องคุณสามารถจบด้วย K> 1,000 และ N> 1,000,000 เมทริกซ์ตัวเองใช้เวลาสักครู่ในการคำนวณแล้วคุณจะต้องกลับX X X X K × K

β=(X'X)-1X'Y
X'XX'XK×K matrix - มันมีราคาแพง

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

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

สิ่งนี้มีความสำคัญมากยิ่งขึ้นเมื่อมิติข้อมูลเพิ่มขึ้นเมื่อคุณมีตัวแปรหลายพันตัวเช่นในการเรียนรู้ของเครื่อง

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

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

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

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


17
แต่อึ้งเป็นคนวิทยาการคอมพิวเตอร์
อะมีบา

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

14
ผู้เยาว์ Nitpick: คุณไม่ต้องกลับหัวกลับหาง ; แทนที่คุณจะแก้ปัญหาเชิงเส้นระบบสมการ X ' X β = X ' Yสำหรับβ บทคัดย่อมันเหมือนกัน แต่ตัวเลขนั้นมีความเสถียรมากกว่าและอาจถูกกว่าด้วยซ้ำ X'XX'Xβ=X'Yβ
Stephan Kolassa

3
@AnderBiguri Solution ที่มีการแยกตัวประกอบ QR ในทางกลับกันมีความเสถียรย้อนหลังดังนั้นจึงให้โซลูชันที่แม่นยำที่สุดเท่าที่จะเป็นไปได้เนื่องจากความไม่แน่นอนในข้อมูลอินพุต
Federico Poloni

7
ฉันคิดว่าเราควรหยุดเขียนและเพียงแค่เขียนX t X β = X t yตลอดเวลา β=(Xเสื้อX)-1Xเสื้อYXเสื้อXβ=Xเสื้อY
Matthew Drury

21

ก่อนอื่นฉันขอแนะนำอย่างยิ่งให้คุณอ่านสองโพสต์ต่อไปนี้ (หากไม่ซ้ำกัน)

โปรดตรวจสอบคำตอบของ JM

ขั้นตอนวิธีใดที่ใช้ในการถดถอยเชิงเส้น

โปรดตรวจสอบคำตอบของมาร์ก (จากจุดเสถียรภาพเชิงตัวเลข)

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


ลด Ax-2
2AT(Ax-)0T x = T
ATAx=AT

ในระดับสูงมีสองวิธีในการแก้ปัญหาระบบเชิงเส้น วิธีการโดยตรงและวิธีการวนซ้ำ หมายเหตุ: วิธีการโดยตรงคือการแก้และเชื้อสายลาด (ตัวอย่างเช่นวิธีการหนึ่งซ้ำแล้วซ้ำอีก) โดยตรงแก้ 2ATAx=ATลด Ax-2

เปรียบเทียบกับวิธีการโดยตรง (พูดถึงการแยกส่วนประกอบของ QR / LU ) วิธีการทำซ้ำมีข้อดีบางอย่างเมื่อเรามีข้อมูลจำนวนมากหรือข้อมูลเบาบางมาก

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


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

1
ขนาดของข้อมูล maxtrix ไม่ใช่ปัญหาจริงโดยใช้ความสัมพันธ์ ; คุณสามารถคำนวณและครั้งละหนึ่งการสังเกต นี่เป็นวิธีการที่เกิดขึ้นจริงใน SAS ย้อนกลับไปในสมัยที่หน่วยความจำคอมพิวเตอร์ถูก จำกัด กว่าวันนี้ มันคือจำนวนคอลัมน์ในที่เป็นปัจจัย จำกัด X T X X T y XXTX=ΣxผมxผมTXTXXTYX
jbowman

6

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

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


2
สำหรับคำสั่ง overfitting คุณสามารถให้ลิงค์หรือไม่ การเพิ่มระยะการทำให้เป็นมาตรฐานดีกว่าการ จำกัด จำนวนการวนซ้ำหรือไม่
Haitao Du

คุณสามารถดูบทที่ 7 ของการเรียนรู้ลึกโดย Goodfellow et al ซึ่งกล่าวถึงการหยุดก่อนหน้าเพื่อป้องกันไม่ให้ล้นในตาข่ายประสาท
แบทแมน

2
การทำให้เป็นมาตรฐานโดยการหยุด แต่เนิ่น ๆ นั้นไม่ใช่เทคนิคใหม่ มันเป็นเทคนิคที่รู้จักกันดีในการพูด Landweber ซ้ำ: en.wikipedia.org/wiki/Landweber_iteration
cfh

3

(XTX)-1XTYซึ่งมาจากสมมติฐานที่คุณอ้างถึง โดยวิธีการวิธีแรกคือสมการปกติเป็นผลิตภัณฑ์ของวิธีที่สองคือวิธีการเพิ่มประสิทธิภาพ

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

O(ยังไม่มีข้อความ3)ยังไม่มีข้อความXXมีเงื่อนไขไม่ดีมันจะสร้างข้อผิดพลาดในการคำนวณ ดังนั้นจึงเป็นอัลกอริธึมการเพิ่มประสิทธิภาพแบบลาดชันซึ่งสามารถช่วยเราให้พ้นจากปัญหาประเภทนี้ได้ ปัญหาอีกประการหนึ่งคือการประเมินค่ามากเกินไปและการประเมินค่าสัมประสิทธิ์การถดถอย

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

ทั้งหมดที่ดีที่สุด


5
ไม่แนะนำ "อินเวอร์เตอร์เมทริกซ์" QR มีเสถียรภาพเชิงตัวเลขมากกว่าในการแก้ปัญหาระบบเชิงเส้น
Haitao Du

1
ฉันเห็นด้วยกับข้อโต้แย้งการคำนวณ อย่างไรก็ตาม over- หรือ underfitting ไม่มีส่วนเกี่ยวข้องกับการใช้ GD กับสมการปกติ แต่ใช้ความซับซ้อนของตัวแบบ (ถดถอย) ทั้งสองวิธี (GD ถ้ามันทำงานอย่างถูกต้อง) ค้นหาวิธีกำลังสองน้อยที่สุดที่เหมือนกัน (ถ้ามี) และจะทำให้ข้อมูลมากเกินไปหรือน้อยกว่านั้นด้วยจำนวนเท่ากัน
Ruben van Bergen

2

อันดับแรกใช่เหตุผลที่แท้จริงคือเหตุผลที่ Tim Atreides มอบให้ นี่คือแบบฝึกหัดการสอน

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

(อย่างใดอย่างหนึ่งสามารถสำหรับการถดถอยเชิงเส้นปฏิรูประบบการวิเคราะห์เป็นระบบการเกิดซ้ำ แต่นี่ไม่ใช่เทคนิคทั่วไป)


2

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

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