तंत्रिका नेटवर्क से वास्तविक-मूल्यवान निरंतर उत्पादन कैसे प्राप्त करें?


14

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

मेरे प्रश्न हैं:

1. Should I still scale the input features using feature scaling? What range?
2. What transformation function should I use in place of the sigmoid?

मैं शुरू में इसे लागू करने के लिए देख रहा हूँ PyBrain जो इन परत प्रकारों का वर्णन करता है ।

तो मैं सोच रहा हूं कि मुझे शुरू करने के लिए 3 परतें होनी चाहिए (एक इनपुट, छिपी, और आउटपुट परत) जो सभी रैखिक परतें हैं? क्या यह एक उचित तरीका है? या वैकल्पिक रूप से मैं -5 से 5 की रेंज में सिग्मॉइड फ़ंक्शन को "स्ट्रेच" कर सकता था?


1
सुनिश्चित करें कि आप एक सिग्मॉइड उपयोग कर सकते हैं । जैसे लॉजिस्टिक फ़ंक्शन से शुरू, 10 से गुणा करें, 5 घटाएं ...[,][5,5]
SX

क्या कोई विशेष कारण है जिससे आप दो छिपी परतों का उपयोग करने से बच रहे हैं? यह एक तंत्रिका नेटवर्क से वास्तविक-मूल्यवान निरंतर उत्पादन प्राप्त करने का सबसे आसान तरीका प्रतीत होगा। "किसी भी फ़ंक्शन को दो छिपी परतों के साथ एक नेटवर्क द्वारा मनमानी सटीकता के लिए अनुमानित किया जा सकता है" (मिशेल मशीन से पाठ स्लाइड 26 में नोटों में उल्लेख किया गया है: cs.cmu.edu/afs/cs.cmu.edu/project/o-20/ www / mlbook / ch4.pdf )
क्रिस सिमोकैट

@ChrisSimokat: नहीं, लेकिन मैंने अब तक जो भी पढ़ा है, उसमें से अधिकांश एक छिपी हुई परत को एक उचित शुरुआती बिंदु के रूप में बताता है। क्या एक छिपी हुई परत नेटवर्क किसी भी फ़ंक्शन को अनुमानित नहीं कर सकती है?
उपयोगकर्ता

1
@ क्रिसहिमोकैट: शायद मुझे कुछ याद आ रहा है, लेकिन मुझे लगा कि एकल छिपी हुई परत "सिंगल लेयर पेसेप्ट्रॉन" के बराबर नहीं है?
उपयोगकर्ता

1
नहीं, आप कुछ भी याद नहीं कर रहे हैं मैं सिर्फ जाहिरा तौर पर उस के बारे में पर्याप्त खेद नहीं पढ़ रहा था।
क्रिस सिमोकैट

जवाबों:


12

1 है । क्या मुझे अभी भी फीचर स्केलिंग का उपयोग करके इनपुट सुविधाओं को स्केल करना चाहिए? क्या सीमा है?

स्केलिंग से कुछ बिगड़ता नहीं है। सरले के तंत्रिका नेटवर्क से इस उत्तर को पढ़ें: विषय: क्या मुझे डेटा को सामान्य / मानकीकृत / पुनर्विक्रय करना चाहिए?

। सिग्माइड के स्थान पर मुझे किस परिवर्तन कार्य का उपयोग करना चाहिए?

आप सक्रियण फ़ंक्शन के रूप में लॉजिस्टिक सिग्मॉइड या टैन का उपयोग कर सकते हैं। इससे कोई फर्क नहीं पड़ता। आपको लर्निंग एल्गोरिदम को बदलना नहीं है। आपको बस अपने लेयर के आउटपुट को स्केल करने के लिए आउटपुट लेयर एक्टिवेशन फंक्शन ( या ) के पैमाने पर सेट करना होगा और जब आप अपने नेटवर्क को प्रशिक्षित करते हैं, तो आपको अपने आउटपुट को स्केल करना होगा नेटवर्क को । आपको वास्तव में कुछ और बदलने की जरूरत नहीं है।[ - , ] [ - , ][0,1][1,1][5,5]


[५,५] सीमा तक तंत्रिका नेटवर्क आउटपुट को स्केल करने का सही तरीका क्या है?
यूजर

3
एक अंतराल तत्व को स्केल करने के लिए आपको गणना करनी होगी । [ , ] - एकe[a,b][c,d]eaba(dc)+c
अल्फ़ा

2
लेकिन चूंकि सिग्मॉइड गैर-रैखिक है, समान वितरण के साथ सिग्मॉइड के मूल्य का नमूना लेने से हमें संभवतः 1 के करीब या 0. के करीब कुछ मिलेगा, जिसका अर्थ है कि हमें मध्य में मूल्यों को अधिक सावधानी से लेने के लिए हमारे नेटवर्क को सीखना होगा। क्या सिग्मॉइड + स्केलिंग वास्तव में एक अच्छा विकल्प है?
स्मार्टी 7

0

डिस्क्लेमर: प्रस्तुत दृष्टिकोण निरंतर मूल्यों के लिए संभव नहीं है, लेकिन मेरा मानना ​​है कि प्रोजेक्ट के लिए निर्णय लेने में कुछ वजन भालू है स्मार्टआई 7 एक पुनर्निर्मित सिग्माइड फ़ंक्शन का उपयोग करने के बारे में एक अच्छा बिंदु लाता है। स्वाभाविक रूप से, सिग्मॉइड फ़ंक्शन एक संभावना पैदा करता है, जो एक नमूना सफलता दर का वर्णन करता है (यानी इन सुविधाओं के साथ 100 में से 95 फ़ोटो सफलतापूर्वक 'कुत्ते' हैं)। वर्णित अंतिम परिणाम एक द्विआधारी एक है, और प्रशिक्षण, 'बाइनरी क्रॉस-एन्ट्रोपी' का उपयोग करते हुए, अलग-अलग विरोध परिणामों को अलग करने की एक प्रक्रिया का वर्णन करता है, जो स्वाभाविक रूप से मध्य-सीमा में परिणाम को हतोत्साहित करता है। आउटपुट की निरंतरता केवल नमूनों की संख्या के आधार पर स्केलिंग के लिए होती है (यानी 0.9761 के परिणाम का मतलब है कि 10000 नमूनों में से 9761 उन या इसी तरह के ट्रायट को प्रदर्शित करता है जो 'कुत्ता' हैं), लेकिन प्रत्येक परिणाम स्वयं को अभी भी द्विआधारी माना जाना चाहिए न कि मनमाने ढंग से। जैसे, यह गलत नहीं होना चाहिए और एक वास्तविक संख्या के रूप में लागू किया जाना चाहिए और यहां लागू नहीं हो सकता है। हालांकि मैं नेटवर्क के उपयोग के बारे में सुनिश्चित नहीं हूं, लेकिन मैं आउटपुट वेक्टर wrt को सामान्य करूंगा। यह सॉफ्टमैक्स के साथ किया जा सकता है। इसके लिए नेटवर्क से 11 लीनियर आउटपुट (डिब्बे) होने चाहिए (प्रत्येक आउटपुट -5 से +5 के लिए), प्रत्येक वर्ग के लिए एक। यह किसी एक 'बिन' के लिए सही उत्तर होने पर एक आश्वासन मूल्य प्रदान करेगा। यह आर्किटेक्चर एक-गर्म एन्कोडिंग के साथ प्रशिक्षित किया जाएगा, जिसमें 1 सही बिन का संकेत देगा। परिणाम व्याख्यात्मक है तो एक तरह से लालची रणनीति या संभाव्य नमूने की तरह। हालाँकि, इसे एक सतत चर में बदलने के लिए, प्रत्येक इंडेक्स की विश्वसनीयता को एक नंबर-लाइन (सिग्मॉइड यूनिट के व्यवहार के समान) पर मार्कर रखने के लिए एक वजन के रूप में इस्तेमाल किया जा सकता है, लेकिन यह प्राथमिक मुद्दे को भी उजागर करता है: यदि नेटवर्क काफी निश्चित है तो परिणाम -2 है या +3, लेकिन बिल्कुल निश्चित है कि यह कुछ और नहीं है, +1 एक व्यवहार्य परिणाम है? आपके विचार करने के लिए धन्यवाद। आपकी परियोजना के लिए शुभकामनाएं।

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