क्या एक तंत्रिका नेटवर्क "हां" या "नहीं" जवाब से अधिक प्रदान कर सकता है?


11

छवि मान्यता के लिए हर उदाहरण तंत्रिका नेटवर्क मैंने पढ़ा है एक सरल "हाँ" या "नहीं" उत्तर पैदा करता है। एक निकास नोड "हां, यह एक मानवीय चेहरा है" से मेल खाता है, और एक "नहीं, यह मानव चेहरा नहीं है" से मेल खाता है।

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

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

क्या ऐसे पहचानकर्ता को असंभव बना देता है? या क्या मैं एल्गोरिथ्म को गलत समझ रहा हूं? केवल दो चीजें जो मैं सोच सकता हूं, वे हैं:

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

  • हास्यास्पद जटिल प्रशिक्षण पद्धति का निर्माण करें, जिसमें अविश्वसनीय रूप से उन्नत गणित की आवश्यकता होगी और किसी भी तरह सभी संभावित आउटपुट (दूसरे शब्दों में, insert math magic here) के लिए एक आदर्श न्यूरॉन-वेट-स्टेट का उत्पादन करेंगे ।

(साइड नोट 1: मैं विशेष रूप से बहुस्तरीय पेसेप्ट्रॉन को एक तरह के तंत्रिका नेटवर्क के रूप में देख रहा हूं।)

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

जवाबों:


15

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

अपने उदाहरण पर अधिक ध्यान देने के लिए - जानवरों को पहचानना - मैं कहूंगा कि यह संभव है। यह ज्यादातर लिखावट मान्यता उदाहरण का एक विस्तार है; आप किसी आकृति की विशेषताओं को पहचान रहे हैं और उनकी तुलना "आदर्श" आकृतियों से करते हैं जो देखने के लिए मेल खाते हैं। मुद्दे तकनीकी हैं, सैद्धांतिक के बजाय। हस्तलिपि, जब मान्यता सॉफ्टवेयर के माध्यम से चलती है, तो आमतौर पर लाइनों और घटता के एक सेट के लिए मैप किया जाता है - अच्छा और सरल। पशु के चेहरे को पहचानना कठिन होता है, इसलिए आपको आंखों, नाक, मुंह, खुरदरी खोपड़ी आदि जैसी सुविधाओं को निकालने के लिए इमेज प्रोसेसिंग लॉजिक की आवश्यकता होगी।

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

संपादित करें:

(पूर्ण प्रकटीकरण के हित में: मैं अभी भी इस परियोजना के लिए खुद पर शोध कर रहा हूं, इसलिए मेरा ज्ञान अभी भी अधूरा है और संभवतः स्थानों पर बंद है।)

यह कैसे एक उत्पादन नोड के लिए backpropogation सेटिंग वजन के साथ टाई करता है दूसरे, पहले से प्रशिक्षित नोड के लिए वजन को बर्बाद कर रहा है?

मैंने अब तक जो पढ़ा है, उससे एआरटी प्रतिमान थोड़ा अलग है; यह दो वर्गों में विभाजित है - एक जो इनपुट सीखता है, और एक जो उनके लिए आउटपुट सीखता है। इसका मतलब यह है कि जब यह एक इनपुट सेट से मेल खाता है जो मेल नहीं खाता है, तो इनपुट से मिलान करने के लिए एक uncommitted न्यूरॉन सक्रिय और समायोजित होता है, ताकि न्यूरॉन अगली बार एक मैच को ट्रिगर करेगा। इस परत में न्यूरॉन्स केवल मान्यता के लिए हैं। एक बार जब इस परत का मिलान हो जाता है, तो इनपुट को परत के नीचे सौंप दिया जाता है, जो कि वह है जो प्रतिक्रिया की गणना करता है। आपकी स्थिति के लिए, यह परत बहुत सरल होगी। मैं जिस सिस्टम को देख रहा हूं वह ड्राइव करना सीख रहा है। यह वास्तव में दो प्रकार की सीख है; एक व्यक्ति विभिन्न परिस्थितियों में गाड़ी चलाना सीख रहा है, और दूसरा स्थिति को पहचानना सीख रहा है। उदाहरण के लिए,

पहले से सीखे गए व्यवहारों को बर्बाद किए बिना नए इनपुट सीखने का यह विचार स्थिरता / प्लास्टिसिटी दुविधा के रूप में जाना जाता है। एक शुद्ध जरूरतों होने के लिए स्थिर सीखा व्यवहार को बनाए रखने के लिए पर्याप्त है, लेकिन प्लास्टिक पर्याप्त है कि यह नई बातें सिखाया जा सकता है जब हालात बदल जाते हैं। यह वही है जो एआरटी नेट को हल करने का इरादा है।


आपके शानदार उत्तर के लिए धन्यवाद! तो यह कैसे एक उत्पादन नोड के लिए backpropogation सेटिंग वजन के साथ दूसरे, पहले से प्रशिक्षित नोड के लिए वजन को बर्बाद करने के साथ करता है? या मैं इस बारे में गलत तरीके से सोच रहा हूं?
ऐस्टर

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

3

@ anaximander का जवाब बहुत अच्छा है, मुझे लगा कि मैं आपके सवाल के इस हिस्से पर टिप्पणी करूंगा:

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

अच्छा, मुझे लगता है कि आपकी धारणा यहाँ गलत है; अगर मैं सही ढंग से समझूं, तो आपके पास एक श्रेणी के साथ एक एनएन है जिसे आप वर्गीकृत करने की कोशिश कर रहे हैं। आदर्श रूप से, आप उन्हें लगभग स्वतंत्र रूप से संचालित करना चाहेंगे, ताकि "कुत्ते" और "पक्षी" वर्गीकरण एक ही समय में आग न करें। तो वास्तव में, प्रशिक्षण के दौरान, क्या होगा कि जब आप "कुत्ते" परिणाम के साथ एनएन को प्रशिक्षित कर रहे हैं, तो बैकप्रॉपैगैशन यह सुनिश्चित करने की कोशिश करेगा कि "पक्षी" और अन्य आउटपुट न्यूरॉन्स झूठी सकारात्मकता पैदा नहीं करते हैं। इसलिए, सैद्धांतिक रूप से, यह ठीक काम करेगा, आपकी टिप्पणी के विपरीत; "पक्षी" के लिए एक नकारात्मक परिणाम का सुदृढीकरण सही है।

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

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


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

1

संक्षिप्त और बहुत कठोर उत्तर नहीं: हां हर एनएन सिर्फ yesया, से अधिक जानकारी प्रदान कर सकता है no। यह दहलीज के कारण है। यदि वज़न कुछ सीमा से अधिक है, तो उत्तर वर्गीकरण वर्गों में से एक है, यदि यह उत्तर कम है तो दूसरा वर्गीकरण वर्ग है। मूल रूप से:

    0..threshold 
    threshold..1

न्यूरॉन का उत्पादन अंतराल में है [0..1] (या [-1,1] यह निर्भर करता है), और आप उत्तर नहीं प्राप्त करना चाहते हैं कि आउटपुट थ्रेशोल्ड से कम या अधिक है लेकिन आउटपुट (आउटपुट आप आसानी से 0..1 अंतराल में बदल सकते हैं और इसका मतलब है कि%)

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