2010-02-07 11 views
11

मैं backpropagation का उपयोग कर मौसम पूर्वानुमान के लिए एक कार्यक्रम लिखने की कोशिश कर रहा हूं। मैं इस क्षेत्र में एक नौसिखिया हूँ। मेरे पास तापमान, आर्द्रता, हवा की गति, वर्षा इत्यादि जैसे विभिन्न मानकों के साथ ऐतिहासिक डेटा हैएक तंत्रिका नेटवर्क का उपयोग करने का मौसम पूर्वानुमान

मैं इस डेटा को इनपुट परत को प्रदान करने के तरीके के बारे में उलझन में हूं। क्या प्रत्येक इनपुट नोड को किसी दिए गए दिन के लिए पूरे डेटा को दिया जाना चाहिए, या क्या मुझे प्रत्येक पैरामीटर के लिए एक अलग नेटवर्क होना चाहिए? मैं आउटपुट परत के बारे में भी उलझन में हूं।

उत्तर

1

ऐसा लगता है कि निर्णय पेड़ तंत्रिका नेटवर्क की तुलना में इस समस्या का बेहतर समाधान हो सकता है। Here एक विवरण है कि निर्णय पेड़ कैसे काम करते हैं। साथ ही, सॉफ्टवेयर उपलब्ध है जिसमें तंत्रिका नेटवर्क सहित विभिन्न वर्गीकरणकर्ताओं के कार्यान्वयन हैं। मैंने Weka के साथ काम किया है और यह बहुत अच्छी तरह से काम करता है। ऐसे पुस्तकालय भी हैं जिनका उपयोग आप जावा और सी # जैसी प्रोग्रामिंग भाषाओं के साथ वेका की कार्यक्षमता का उपयोग करने के लिए कर सकते हैं। यदि आप वेका के साथ काम करने का निर्णय लेते हैं, तो सुनिश्चित करें कि आप here वर्णित .arff प्रारूप के साथ स्वयं को परिचित करें।

+0

यदि आप वेका का उपयोग करने में रुचि रखते हैं, तो एक विकल्प हो सकता है कि एक ग्रहण आधारित वर्कफ़्लो पैकेज जिसमें वेका प्राइमेटिव्स शामिल हैं। –

+0

मुझे उत्सुकता है कि आप इस समस्या के लिए निर्णय पेड़ कैसे लागू करेंगे। – brian

+0

यादृच्छिक जंगलों मजेदार हैं – ron

2

इनपुट परत में इनपुट डेटा के प्रत्येक आयाम (मौसम, हवा, आदि) के लिए एक्स अलग नोड्स हैं, जहां एक्स वापस देखने के लिए दिनों की संख्या है (चलिए 4-7 कहें)। फिर आपको प्रत्येक इनपुट आयाम को उपयुक्त श्रेणी में सामान्यीकृत करना चाहिए, मान लें [-1.0, 1.0]।

एक दूसरी "छिपी हुई" परत पूरी परत से पूरी तरह से जुड़ा हुआ है (और फिक्स्ड पॉइंट के रूप में कार्य करने के लिए एक फिक्स 1.0 इनपुट "पूर्वाग्रह" नोड के साथ भी)। इनपुट परत की तुलना में यहां कम नोड्स होना चाहिए, लेकिन यह अंगूठे का नियम है, आपको प्रयोग करने की आवश्यकता हो सकती है।

अंतिम परत आपकी आउटपुट परत दूसरी परत (और एक पूर्वाग्रह में भी ड्रॉप) से पूरी तरह से जुड़ा हुआ है। प्रत्येक आयाम के लिए एक अलग आउटपुट न्यूरॉन है।

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

(यह भी ध्यान दें कि वहां है एक विधि "अस्थायी backpropagation" जो समय श्रृंखला डेटा के लिए देखते है)

+0

क्या यह मानना ​​सही होगा कि अधिक संबंधित चर शामिल हैं और अधिक सटीक? यानी {टेम्प, दबाव, आर्द्रता} का उपयोग करना, {वर्षा, विंडस्पेड, यूवी इंडेक्स} से बेहतर है? –

+0

@Aaron: अधिक संबंधित चर का उपयोग करना हमेशा बेहतर होता है, हालांकि यदि कोई मजबूत संबंध है, तो नेटवर्क अन्य चरों का उपयोग करके सीखने में सक्षम हो सकता है। यह भी ध्यान रखें कि नेटवर्क को बेहतर अध्ययन करने के लिए कुछ डेटा को बदलने की आवश्यकता हो सकती है (उदाहरण के लिए लॉग-स्केल, आदि)। – ron

1

मैं का इस्तेमाल किया है (और खुद) इस पुस्तक कहा जाता है:। Introduction to Neural Networks with Java

मैं इसे एक उपयोगी संदर्भ पाया। इसमें बैकप्रोपोगेशन सहित एनएन विषयों के काफी स्पेक्ट्रम शामिल हैं।