साइन लहरों की भविष्यवाणी करने में मैं अपने तंत्रिका नेटवर्क को बेहतर कैसे बनाऊं?


21

यहां, एक नज़र डालें: जनित साइन वेव आप ठीक से देख सकते हैं कि प्रशिक्षण डेटा कहाँ समाप्त होता है। प्रशिक्षण डेटा से तक जाता है ।11

मैंने केरस और तन-सक्रियण के साथ 1-100-100-2 घने नेटवर्क का उपयोग किया। मैं पी / क्यू के रूप में दो मूल्यों, पी और क्यू से परिणाम की गणना करता हूं। इस तरह मैं केवल 1 मान से छोटे का उपयोग करके संख्या के किसी भी आकार को प्राप्त कर सकता हूं।

कृपया ध्यान दें कि मैं अभी भी इस क्षेत्र में एक शुरुआत कर रहा हूं, इसलिए मुझ पर आसानी से जाएं।


1
स्पष्ट करने के लिए, आपका प्रशिक्षण डेटा लगभग -1.5 से +1.5 तक है, इसलिए नेटवर्क ने सही तरीके से सीखा है? तो आपका प्रश्न प्रशिक्षण डेटा की सीमा के बाहर अनदेखी संख्या के परिणाम को एक्सट्रपलेशन करने के बारे में है?
नील स्लेटर

11
आप फूरियर को सब कुछ बदलने और फ़्रीक्वेंसी डोमेन में काम करने की कोशिश कर सकते हैं।
निक अल्जीरिया

4
भविष्य के समीक्षकों के लिए: मुझे नहीं पता कि इसे बंद करने के लिए क्यों ध्वजांकित किया जा रहा है। यह मेरे लिए पूरी तरह से स्पष्ट है: यह तंत्रिका नेटवर्क के साथ आवधिक डेटा मॉडलिंग के लिए रणनीतियों के बारे में है।
साइकोरैक्स का कहना है कि मोनिका

1
मुझे लगता है कि मशीन सीखने के क्षेत्र में एक शुरुआत के लिए यह एक उचित सवाल है, जिसे हमें यहां समायोजित करना चाहिए। मैं इसे बंद नहीं करूंगा
अक्षल

1
मैं नहीं जानता कि क्या यह मदद करेगा, लेकिन बॉक्स से बाहर एक वेनिला एनएन केवल एक बहुपद कार्यों को जानने में सक्षम होगा। अभ्यास में जो ठीक है क्योंकि आप एक निश्चित अंतराल पर एक बहुपद मनमाने ढंग से बंद कर सकते हैं। लेकिन इसका मतलब है कि आप एक साइन लहर नहीं सीख सकते हैं जो अंतराल के पिछले हिस्से पर फैली हुई है। नीचे दिए गए अन्य उत्तरों के रूप में चाल समस्या को एक में बदलना है जिसे उस तरह से हल किया जा सकता है। यही फूरियर ट्रांसफॉर्म ने सुझाया है, और उस मामले में साइन लहर सीखना सिर्फ एक निरंतर सीखना है।
Ukko

जवाबों:


19

आप फ़ीड-फ़ॉरवर्ड नेटवर्क का उपयोग कर रहे हैं; अन्य उत्तर सही हैं कि एफएफएनएन प्रशिक्षण डेटा की सीमा से परे एक्सट्रपलेशन में महान नहीं हैं।

हालाँकि, चूंकि डेटा की आवधिक गुणवत्ता है, इसलिए समस्या LSTM के साथ मॉडलिंग करने के लिए उत्तरदायी हो सकती है। LSTM विभिन्न प्रकार के तंत्रिका नेटवर्क सेल हैं जो अनुक्रमों पर काम करते हैं, और उनके पास "मेमोरी" है जो उन्होंने पहले "देखा" है। इस पुस्तक के अध्याय के सार से पता चलता है कि एलएसटीएम दृष्टिकोण आवधिक समस्याओं पर एक योग्य सफलता है।

इस मामले में, प्रशिक्षण डेटा tuples का एक क्रम होगा , और नए इनपुट x i + 1 ... x i + n के लिए सटीक भविष्यवाणियां करने के लिए कार्य कुछ n और मैं कुछ अनुक्रमित करता है बढ़ता क्रम। प्रत्येक इनपुट अनुक्रम की लंबाई, अंतराल की चौड़ाई जो वे कवर करते हैं, और उनके रिक्ति, आपके ऊपर हैं। सहज रूप से, मुझे लगता है कि एक नियमित ग्रिड शुरू करने के लिए 1 अवधि को कवर करने के लिए एक अच्छी जगह होगी, जिसमें कुछ अंतरालों तक सीमित होने के बजाय मूल्यों की एक विस्तृत श्रृंखला को कवर करने वाले प्रशिक्षण अनुक्रम होंगे।(xi,sin(xi))xi+1xi+nni

(Jimenez-Guarneros, Magdiel और गोमेज़-गिल, पिलर और फ़ोनसेका-डेलगाडो, रिगोबर्टो और रामिरेज-Cortes, मैनुअल और Alarcon-एक्विनो, विसेंट, "एक ज्या समारोह एक LSTM तंत्रिका नेटवर्क का उपयोग करने के लंबी अवधि की भविष्यवाणी", में प्रकृति हाइब्रिड इंटेलिजेंट सिस्टम के प्रेरित डिजाइन )


2
यहाँ अनुक्रम क्या है? समय कदम क्या हैं? यह मेरे लिए एक सरल वक्र-फिटिंग अनुप्रयोग जैसा दिखता है।
डेविड जे। हैरिस

@ DavidJ.Harris मैंने अपना जवाब अपडेट कर दिया है।
साइकोरैक्स

1/(2π)

क्या यह उदाहरण के लिए वे बाजार की भविष्यवाणियां कैसे करते हैं?
मार्कस एपेल

3
नहीं, यह नहीं है कि आप बाजार की भविष्यवाणियां कैसे करते हैं। कम से कम आप इसे पैसा बनाने के लिए कैसे नहीं करते हैं।
Aksakal

13

यदि आप जो करना चाहते हैं वह इस तरह के सरल आवधिक कार्यों को सीखना है, तो आप गौसियन प्रक्रियाओं का उपयोग कर सकते हैं। जीपी आपको एक उपयुक्त कोवरियन फ़ंक्शन निर्दिष्ट करके अपने डोमेन ज्ञान को एक हद तक लागू करने की अनुमति देता है; इस उदाहरण में, जब से आप जानते हैं कि डेटा आवधिक है, आप एक आवधिक कर्नेल चुन सकते हैं, तब मॉडल इस संरचना को एक्सट्रपलेशन करेगा। आप चित्र में एक उदाहरण देख सकते हैं; यहां, मैं ज्वार की ऊंचाई के आंकड़ों को फिट करने की कोशिश कर रहा हूं, इसलिए मुझे पता है कि इसकी आवधिक संरचना है। क्योंकि मैं एक आवधिक संरचना का उपयोग कर रहा हूं, इसलिए मॉडल इस आवधिकता (अधिक या कम) को सही ढंग से हटाता है। ओएफसी यदि आप तंत्रिका नेटवर्क के बारे में जानने की कोशिश कर रहे हैं तो यह वास्तव में प्रासंगिक नहीं है, लेकिन यह हाथ से इंजीनियरिंग सुविधाओं की तुलना में थोड़ा अच्छा दृष्टिकोण हो सकता है। संयोग से, तंत्रिका नेटवर्क और gp का सिद्धांत से गहरा संबंध है,यहां छवि विवरण दर्ज करें

GPs हमेशा उपयोगी नहीं होते हैं क्योंकि तंत्रिका जाल के विपरीत, वे बड़े डेटासेट और गहरे नेटवर्क के पैमाने पर कठिन होते हैं, लेकिन यदि आप इस तरह की कम आयामी समस्याओं में रुचि रखते हैं, तो वे संभवतः अधिक तेज़ और अधिक विश्वसनीय होंगे।

(तस्वीर में, ब्लैक डॉट्स डेटा को प्रशिक्षित कर रहे हैं और लाल लक्ष्य हैं; आप देख सकते हैं कि भले ही यह बिल्कुल सही नहीं है, मॉडल समय-समय पर लगभग सीखता है। रंगीन बैंड मॉडल के आत्मविश्वास अंतराल हैं। भविष्यवाणी)


2
यह भूखंड सुंदर है।
साइकोरैक्स का कहना है कि

11

मशीन लर्निंग एल्गोरिदम - तंत्रिका नेटवर्क सहित - मनमाने ढंग से कार्यों को अनुमानित करने के लिए सीख सकते हैं, लेकिन केवल अंतराल में जहां प्रशिक्षण डेटा का पर्याप्त घनत्व है।

सांख्यिकी आधारित मशीन लर्निंग एल्गोरिदम सबसे अच्छा काम करते हैं, जब वे प्रक्षेप का प्रदर्शन कर रहे हैं - उन मूल्यों की भविष्यवाणी करना जो प्रशिक्षण के उदाहरणों के बीच में या उनके करीब हैं।

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

आपके प्रशिक्षण डेटा की सीमा के बाहर नेटवर्क (या अन्य एमएल) कैसे व्यवहार करता है, इसका उपयोग सक्रियण कार्यों सहित इसकी वास्तुकला पर निर्भर करेगा।

sinsin(x),sin(2x+π/4)पाप


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

@ अक्षल: हाँ यह सच है। हालाँकि मैं यह नहीं बताना चाहता था कि "सभी एमएल एल्गोरिदम कभी भी कार्यों को विश्लेषणात्मक रूप से नहीं सीखते हैं।" क्योंकि किसी को कोई संदेह नहीं है कि कुछ बायेसियन विश्लेषणात्मक शिक्षार्थी या आनुवांशिक प्रोग्रामिंग आदि के प्रति-उदाहरण के साथ मैं इसे और अधिक सामान्य बनाने के लिए संपादित करने की कोशिश करूंगा
नील स्लेटर

9

कुछ मामलों में, @Neil Slater के एक आवधिक फ़ंक्शन के साथ आपकी सुविधाओं को बदलने का सुझाव बहुत अच्छा काम करेगा, और सबसे अच्छा समाधान हो सकता है। यहां कठिनाई यह है कि आपको मैन्युअल रूप से अवधि / तरंग दैर्ध्य चुनने की आवश्यकता हो सकती है ( यह प्रश्न देखें )।

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

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


9

आपने गलत तरीका अपनाया, इस मुद्दे को ठीक करने के लिए इस दृष्टिकोण के साथ कुछ भी नहीं किया जा सकता है।

समस्या को संबोधित करने के कई अलग-अलग तरीके हैं। मैं फीचर इंजीनियरिंग के माध्यम से सबसे स्पष्ट सुझाव दूंगा। एक रैखिक सुविधा के रूप में समय को प्लग करने के बजाय, इसे शेष मापांक 1 = 1 के रूप में रखें। उदाहरण के लिए, t = 0.2, 1.2 और 2.2 सभी एक फीचर बन जाएंगे t1 = 0.1 आदि। जब तक T तरंग की अवधि से बड़ा होगा, यह काम करेगा। इस चीज़ को अपने नेट में प्लग करें और देखें कि यह कैसे काम करता है।

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

इसके अलावा, मुझे आशा है कि आपको यह महसूस होगा कि यह फीचर इंजीनियरिंग का सबसे कठिन उदाहरण है। यह आपको केवल एक विचार देना है कि आप इसके साथ क्या कर सकते हैं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.