क्या हमें एक रेखीय प्रतिगमन मॉडल के गुणांक को खोजने के लिए ढाल वंश की आवश्यकता है?


31

मैं कौरसेरा सामग्री का उपयोग करके मशीन सीखने की कोशिश कर रहा था । इस व्याख्यान में, एंड्रयू एनजी रेखीय प्रतिगमन मॉडल के गुणांक को खोजने के लिए ढाल वंश एल्गोरिथ्म का उपयोग करता है जो त्रुटि फ़ंक्शन (लागत फ़ंक्शन) को कम करेगा।

रैखिक प्रतिगमन के लिए, क्या हमें ढाल मूल की आवश्यकता है? ऐसा लगता है कि मैं विश्लेषणात्मक रूप से त्रुटि फ़ंक्शन को अलग कर सकता हूं और गुणांक के समाधान के लिए इसे शून्य पर सेट कर सकता हूं; क्या वह सही है?


3
1700 के बाद से रैखिक मॉडल को अच्छी तरह से संभाला गया है। उन्हें संभालने के लिए एक तरह के तरीके हैं जिन्हें ग्रेडिएंट डिसेंट (जीडी) की आवश्यकता नहीं है। नॉनलाइनर मॉडल हैं, जहां उन तरीकों में से अधिकांश उनके चेहरे पर फ्लैट हो जाते हैं। एंड्रयू आपको एक सरल समस्या के खिलाफ एक अपरिचित लेकिन बहुत उपयोगी विधि का उपयोग कर रहा है ताकि आप अपने दृष्टिकोण को डीबग कर सकें। जब आप विधि के साथ अच्छे होते हैं, तो आप इसे आश्चर्यजनक रूप से नॉनलाइनियर समस्याओं के लिए लागू कर सकते हैं जिसके लिए जीडी परिणाम प्राप्त करने का एकमात्र तरीका है।
EngrStudent -

10
नहीं, आपको ग्रेडिएंट डिसेंट की तरह दृष्टिकोण का उपयोग नहीं करना होगा (यह किसी भी मामले में एकमात्र अनुकूलन विधि नहीं है)। आप वास्तव में विश्लेषणात्मक रूप से इसे हल कर सकते हैं, जैसा कि आप सुझाव देते हैं; आप प्रत्येक पैरामीटर के संबंध में अंतर करते हैं, इसलिए आपको प्रति पैरामीटर एक समीकरण मिलता है। लेकिन यह सरल समस्याओं को हल करने के लिए उपयोगी है जो अन्य तरीकों से किए जा सकते हैं; यदि आप पहले से ही उत्तर जानते हैं तो आप सुनिश्चित हो सकते हैं जब आप क्रमिक वंश के साथ सही उत्तर प्राप्त कर रहे हों।
Glen_b -Reinstate मोनिका

यदि लागत फ़ंक्शन सामान्य द्विघात ('दूरी') जुर्माना है, तो एक बंद फॉर्म समाधान है। हालांकि, ढाल वंश आमतौर पर बहुत तेजी से होता है, यही कारण है कि आमतौर पर इसका उपयोग किया जाता है।
अगिनेंसकी

इसके अलावा, क्रमिक वंश का उपयोग उन समस्याओं के संख्यात्मक समाधान खोजने के लिए किया जा सकता है जो विश्लेषणात्मक रूप से अचूक हैं। मुझे संदेह होगा कि वह एक का उपयोग करने के लिए जल्दी ढाल का उपयोग करता है। मेरा मानना ​​है कि वह फिर तंत्रिका जाल के साथ ढाल वंश का उपयोग करता है। यह कहने की जरूरत नहीं है कि तंत्रिका शुद्ध स्थिति अधिक जटिल है। मैं एक शैक्षणिक स्थिति से सोचता हूं, पहले उन्हें देखा है, रैखिक मॉडल के साथ, तंत्रिका जाल के साथ उपयोग के लिए ढाल वंश उचित लगता है।
अगिनेंस्की

3
आंद्रे एनजी वीडियो मैं कई बार देखा था thet लिंक पोस्ट करने के लिए धन्यवाद। मैं पहले से ही यह जानता था, हालांकि इस चरम तक नहीं, लेकिन यह देखना डरावना है कि लोगों के "सीखने" अनुकूलन के विशाल बहुमत क्या सीख रहे हैं, यह उल्लेख करना नहीं कि उनमें से कम से कम कुछ सांख्यिकीय कंप्यूटिंग के बारे में क्या सीख रहे हैं। जीन गोलूब, एसवीडी की गणना और उपयोग करने में अग्रणी, अपनी कब्र में लुढ़क रहा होगा यदि वह जानता था कि उसके स्टैनफोर्ड कंप्यूटर विज्ञान विभाग में अब क्या पढ़ाया जा रहा है। "सबसे मजेदार 'वीडियो youtube.com/watch?v=B3vvKmgi8E है , जो अनुशंसा करता है और कम से कम वर्गों के लिए 2 काम एल्गोरिदम की तुलना करता है।
मार्क एल। स्टोन

जवाबों:


43

रैखिक कम से कम वर्गों द्वारा हल किया जा सकता है

0) एसवीडी या क्यूआर के आधार पर उच्च गुणवत्ता वाले रैखिक कम से कम वर्गों के सॉल्वर का उपयोग करना, जैसा कि नीचे वर्णित है, असंबद्ध रेखीय कम से कम वर्गों के लिए, या बाध्य या रैखिक बाध्य कम से कम वर्गों के लिए द्विघात प्रोग्रामिंग या कॉनिक अनुकूलन के एक संस्करण पर आधारित है, जैसा कि नीचे वर्णित है। इस तरह के एक सॉल्वर पूर्व-कैन्ड है, भारी परीक्षण किया जाता है, और जाने के लिए तैयार है - इसका उपयोग करें।

1) एसवीडी, जो सबसे विश्वसनीय और संख्यात्मक रूप से सटीक विधि है, लेकिन विकल्पों की तुलना में अधिक कंप्यूटिंग भी लेता है। MATLAB में, असंबद्ध रैखिक कम से कम वर्गों की समस्या का एसवीडी समाधान ए * एक्स = बी पिनव (ए) * बी है, जो बहुत सटीक और विश्वसनीय है।

2) क्यूआर, जो काफी विश्वसनीय और संख्यात्मक रूप से सटीक है, लेकिन एसवीडी जितना नहीं है, और एसवीडी से तेज है। MATLAB में, असंबद्ध रैखिक कम से कम वर्गों की समस्या का QR समाधान A * X = b A \ b है, जो काफी सटीक और विश्वसनीय है, सिवाय इसके कि जब A बुरी हालत में है, यानी, बड़ी स्थिति संख्या है। पिनव (A) * b की तुलना में A \ b अधिक तेज़ है, लेकिन विश्वसनीय या सटीक नहीं है।

3) सामान्य समीकरण बनाना (विश्वसनीयता और संख्यात्मक सटीकता के दृष्टिकोण से TERRIBLE, क्योंकि यह स्थिति संख्या को बढ़ाता है, जो कि बहुत बुरी बात है) और

3 ए) चोल्स्की फैक्टराइजेशन द्वारा हल करना (अच्छा नहीं)

3 बी) स्पष्ट रूप से अकशेरुकीय मैट्रिक्स (HORRIBLE)

4) एक द्विघात प्रोग्रामिंग समस्या या दूसरी क्रम कोन समस्या के रूप में हल करना

4a) उच्च गुणवत्ता वाले क्वाड्रेटिक प्रोग्रामिंग सॉफ्टवेयर का उपयोग कर हल करें। यह विश्वसनीय और संख्यात्मक रूप से सटीक है, लेकिन SVD या QR से अधिक समय लेता है। हालांकि, उद्देश्य समारोह में बाध्य या सामान्य रैखिक बाधाओं, या रैखिक या द्विघात (दो मानक) दंड या नियमितीकरण शर्तों को जोड़ना आसान है, और फिर भी द्विघात प्रोग्रामिंग सॉफ्टवेयर का उपयोग करके समस्या को हल करना है।

4 बी) उच्च गुणवत्ता वाले कॉनक ऑप्टिमाइज़ेशन सॉफ़्टवेयर का उपयोग करके दूसरे ऑर्डर कोन समस्या के रूप में हल करें। रिमार्क्स क्वाड्रैटिक प्रोग्रामिंग सॉफ़्टवेयर के लिए समान हैं, लेकिन आप बाध्य या सामान्य रैखिक बाधाओं और अन्य शंकु बाधाओं या उद्देश्य फ़ंक्शन की शर्तों, जैसे कि विभिन्न मानदंडों में दंड या नियमितीकरण की शर्तों को भी जोड़ सकते हैं।

5) उच्च गुणवत्ता वाले सामान्य उद्देश्य nonlinear अनुकूलन सॉफ्टवेयर का उपयोग कर हल करें। यह अभी भी अच्छी तरह से काम कर सकता है, लेकिन सामान्य रूप से द्विघात प्रोग्रामिंग या कॉनिक ऑप्टिमाइज़ेशन सॉफ़्टवेयर की तुलना में धीमा होगा, और शायद उतना विश्वसनीय नहीं है। हालांकि, न केवल बाध्य और सामान्य रेखीय बाधाओं को शामिल करना संभव हो सकता है, बल्कि कम से कम वर्गों के अनुकूलन में अशुद्धियों को भी शामिल किया जा सकता है। इसके अलावा, nonlinear कम से कम वर्गों के लिए इस्तेमाल किया जा सकता है, और अगर अन्य nonlinear शर्तें उद्देश्य समारोह में जोड़ रहे हैं।

6) घटिया सामान्य उद्देश्य nonlinear अनुकूलन एल्गोरिदम का उपयोग कर हल -> यह कभी नहीं है।

7) काम के सामान्य स्थिति के गैर-सामान्य अनुकूलन एल्गोरिथ्म का उपयोग करके हल करें, अर्थात्, ढाल वंश। इसका उपयोग केवल तभी करें जब आप यह देखना चाहते हैं कि समाधान कितना खराब और अविश्वसनीय है यदि कोई व्यक्ति आपको रैखिक कम से कम वर्गों की समस्याओं को हल करने के लिए ढाल वंश का उपयोग करने के लिए कहता है

7 i) किसी ऐसे व्यक्ति से सांख्यिकीय कंप्यूटिंग के बारे में जानें जो इसके बारे में कुछ जानता है

7 ii) किसी ऐसे व्यक्ति से अनुकूलन सीखें जो इसके बारे में कुछ जानता है।


अच्छा पोस्ट, आप क्यों सोचते हैं कि चोल्स्की अच्छा नहीं है क्योंकि आपका सिस्टम पीडी है? (और एक हास्यास्पद स्थिति संख्या के साथ नहीं) बीटीडब्ल्यू, मुझे लगता है कि आप सामान्य रूप से व्युत्क्रम की धारणा (या अधिकतर शैक्षिक उद्देश्यों के लिए इस्तेमाल किया गया) की धारणा को "SVD" या "स्पष्ट रूप से inverting" बिंदु पर कहना (या जोड़ना) चाहते हैं।
us --r11852 का कहना है कि

2
BTW, यह बहुत हास्यास्पद है कि कितनी बार बहुत उच्च स्थिति संख्या वाले मैट्रिसेस उत्पन्न होते हैं, विशेष रूप से अनचाही जनता (अर्थात, रैखिक कम से कम वर्ग के अधिकांश लोग, विशेष रूप से पहुंच में लोकतांत्रिकरण को देखते हुए), जो इसे ध्यान नहीं देते हैं।
मार्क एल। स्टोन

1
Mldivide, अर्थात। बैकस्लैश, यानी, \ _ क्यू का उपयोग करता है जब m ~ = n (कम से कम वर्ग), जैसा कि मैंने ऊपर अपने पैराग्राफ (2) के 2 वें वाक्य में कहा है। आपको आश्चर्य होगा कि MATLAB में कितनी बकवास है - न केवल टूलबॉक्स में, जिनमें से कुछ बिल्कुल डरावनी हैं, लेकिन कुछ मुख्य कार्यों में भी कुछ हद तक कम हैं।
मार्क एल। स्टोन

1
@ MarkL.Stone, शानदार जवाब! क्या आप कम से कम वर्ग को हल करने के लिए ग्रेडिएंट वंश का उपयोग करना उचित नहीं है, इस बारे में थोड़ा और अधिक बता सकते हैं! (मेरी समझ में यह अन्य (दिशा समाधान दृष्टिकोण) जो आपने ऊपर उल्लेख किया है की तुलना में सिर्फ एक पुनरावृत्त दृष्टिकोण है)। इसके अलावा, क्या आप इस समस्या पर भी टिप्पणी कर सकते हैं: "अगर मेरे पास समस्या के लिए n> = 30,000 सुविधाएँ हैं, तो सामान्य समीकरण विधि बहुत धीमी हो जाएगी क्योंकि n * n मैट्रिक्स भयानक होगा! दूसरी ओर, GD इसमें काम करेगा! मामला बहुत बढ़िया! SVD और QR कैसे प्रदर्शन करेंगे पर कोई विचार "। कोई भी सुझाव मददगार होगा।
अनु

1
@ अनु केवल एक अंतिम उपाय के रूप में ढाल वंश का उपयोग करते हैं। और यह तभी होगा जब समस्या एसवीडी या क्यूआर द्वारा हल करने के लिए बहुत बड़ी हो। सामान्य समीकरणों को कभी न बनाएं, अकेले सामान्य समीकरणों को हल करने के लिए स्पष्ट रूप से एक मैट्रिक्स को पलटने दें। 30,000 के फीचर्स आजकल बहुत ज्यादा नहीं बजते हैं।
मार्क एल स्टोन

0

एक रैखिक मॉडल के गुणांक ढूंढना तकनीकी रूप से की प्रक्रिया है से रैखिक समीकरणों के एक सेट का समाधान खोजने

ऐसे समाधानों की गणना के लिए, बहुत सारे optimization techniquesविकसित किए गए हैं और Gradient Descentउनमें से एक है।
इस प्रकार, ग्रेडिएंट डिसेंट केवल ऐसा करने का एकमात्र तरीका नहीं है।

एंड्रयू एनजी पाठ्यक्रम में इसका उपयोग करता है, क्योंकि यह समझने में सरल है, उन्नत रैखिक बीजगणित और संख्यात्मक कम्प्यूटिंग से निपटने के बिना।


गलत नहीं है, लेकिन मुझे लगता है कि आपका जवाब एक गैर-मानक मामले पर ध्यान केंद्रित करके बड़ी तस्वीर को याद करता है। विशाल बहुमत रेखीय प्रतीपगमन मॉडल की QR अपघटन एक बंद फ़ॉर्म समाधान को रोजगार का उपयोग करके लगे हैं। GD-अभिनय सभ्य - एक उदाहरण के रूप में अधिक उन्नत तरीकों (जैसे। SGD- स्टोकेस्टिक GD) का उपयोग करने के लिए उपयोग किया जाता है ।
us --r11852

क्या आप विस्तार कर सकते हैं कि क्यूआर अपघटन क्या है?
विक्टर

3
Ax=bA=QRRQAx=bQRx=bRx=QTbRQTQ=I बहुत बड़ी मैट्रिक्स (प्रविष्टियों के लाखों लोगों) यह एक सतत solver जैसे की तुलना में अधिक महंगा हो सकता है।SGD। जैसा कि अधिकांश लोगों के पास बहुत बड़े मैट्रीज़ नहीं हैं क्यूआर अपघटन बेहतर है। सामान्य क्यूआर अपघटन में संख्यात्मक दुनिया को आकार दिया गया है; SIAM ने इसे 20 वीं सदी के शीर्ष 10 एल्गोरिदम में से एक के रूप में चुना।
us --r11852 का कहना है कि मोनिक जूल 31'15

@ us @r11852 हाँ संभोग। ऐसा इसलिए है, क्योंकि मैं उत्तर को सरल रखना चाहता था, ताकि क्यूआर डिकम्पोस्टियन जैसी अवधारणाओं से बचा जा सके, जो कि Ng के पाठ्यक्रम स्तर के डोमेन के लिए प्रासंगिक है।
विकास रतूड़ी

3
QR 20 वीं सदी के शीर्ष 10 एल्गोरिदम में से एक था। लेकिन समय मार्च पर, और 1960 के दशक में एसवीडी की गणना के लिए प्रभावी एल्गोरिदम के बावजूद, आपको आवेदन क्षेत्रों के महत्व को देखना होगा। इसलिए मेरा मानना ​​है कि SVD 21 वीं सदी का TOP एल्गोरिथम है। बहुत स्पष्ट रूप से, क्या आपने कभी क्यूआर को फिल्मों की सिफारिश करने के लिए इस्तेमाल करने के बारे में सुना है? नहीं, एसवीडी का उपयोग उस महत्वपूर्ण आशंका के लिए किया जाता है। एसवीडी स्पष्ट रूप से पसंद का एल्गोरिथ्म है जब ट्विटर रूढ़िवादी पुराने गीज़र के लिए अवांछित सिफारिशें भेजता है, जिसके लिए किशोर हस्तियों को उनका पालन करना चाहिए। आइए देखते हैं क्यूआर करते हैं !!!
मार्क एल। स्टोन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.