क्या एल्गोरिदम को विकसित करने के लिए तंत्रिका नेटवर्क का उपयोग किया जा सकता है?


9

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

क्या तंत्रिका एल्गोरिदम को क्लासिक एल्गोरिथम समस्याओं को हल करने के लिए प्रशिक्षित किया जा सकता है?

यहां मेरा मतलब है कि उदाहरण के लिए नेटवर्क को इनपुट ग्राफ मिलेगा G भारित किनारों के साथ, और दो कोने s तथा t निर्दिष्ट, और हमने इसे सबसे छोटा खोजने के लिए कहा stजितनी जल्दी हो सके रास्ता। तब मुझे लगता है कि न्यूरल नेटवर्क डिक्स्ट्रा या कुछ इसी तरह का उपयोग करने के लिए खुद को खोज और प्रशिक्षित करेगा।

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

बेशक, एल्गोरिथ्म को निकालना एक अलग सवाल है। मुझे संदेह है कि विशेषज्ञ ऐसा करना जानते हैं, लेकिन इस पर चर्चा करना इस प्रश्न का विषय नहीं है।

दो दिन बाद जोड़ा गया: जवाब देखने के बाद, मुझे यह बताने दें कि यदि आप नकारात्मक उत्तर देते हैं, तो मैं जानना चाहूंगा

क्यों शतरंज खेलना दीजकस्ट्रा या ग्राफिसोमोर्फिज्म की तुलना में आसान है?


टिप्पणियाँ विस्तारित चर्चा के लिए नहीं हैं; इस वार्तालाप को बातचीत में स्थानांतरित कर दिया गया है ।
लेव Reyzin

जवाबों:


2

रेजा ज़ैध के इस ब्लॉग के अनुसार , एक तंत्रिका नेटवर्क को सही आउटपुट देने के लिए प्रशिक्षण देना, यहां तक ​​कि प्रशिक्षण के दो-तिहाई उदाहरणों के लिए भी कम्प्यूटेशनल रूप से कठिन है:

वास्तव में, 1988 में जे। स्टीफन जुड ने एनपी-हार्ड होने के लिए निम्नलिखित समस्या बताई:

एक सामान्य तंत्रिका नेटवर्क और प्रशिक्षण उदाहरणों के एक सेट को देखते हुए, क्या नेटवर्क के लिए बढ़त भार का एक सेट मौजूद है ताकि नेटवर्क सभी प्रशिक्षण उदाहरणों के लिए सही आउटपुट का उत्पादन करे?

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


1
मैं वास्तव में नहीं देखता कि यह मेरे प्रश्न का उत्तर कैसे देता है।
डोमोटर

पोस्ट को संपादित करने से पहले, आपका पहला प्रश्न एनएन के प्रशिक्षण के बारे में है। चूँकि आपने CC टैग जोड़ा है, इसलिए मेरा उत्तर दिखाता है कि NN को प्रशिक्षित करना कठिन है, चाहे आपकी एलगोरिदमिक समस्या P या NPC में हो
मोहम्मद अल-तुर्कस्टनी

मुझे खेद है अगर मैं अस्पष्ट था।
डोमटॉर्प

0

यह एक पूर्ण उत्तर नहीं है और मैं तंत्रिका जाल में बहुत अनुभवी नहीं हूं, लेकिन शायद मददगार हूं।

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

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

क्यों शतरंज खेलना दीजकस्ट्रा या ग्राफिसोमोर्फिज्म की तुलना में आसान है?

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

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

मुझे नहीं लगता कि हमें यह मान लेना चाहिए कि तंत्रिका जाल छोटी-छोटी राहों या इसी तरह की एल्गोरिदम संबंधी समस्याओं को हल नहीं कर सकता है, लेकिन वे एक कदम-दर-चरण एल्गोरिथम की तुलना में मौलिक रूप से समस्याओं को हल करते हैं जो हमेशा सही होती है।

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


मुझे नहीं लगता कि एक उत्तर देने से कोई फर्क पड़ता है - दो खिलाड़ी प्रतिस्पर्धा करके दिज्कस्त्र खेल सकते हैं जो एक छोटा रास्ता खोज सकते हैं। स्केलेबिलिटी एक अधिक गंभीर मुद्दा हो सकता है - क्या आपको लगता है कि NN सीख सकते हैं कि NIM कैसे खेलें?
डोमटॉर्प

@domotorp, मुझे लगता है कि सही एल्गोरिदम और गलत लेकिन अनुमानित अनुमानों के बीच एक बड़ा वैचारिक और व्यावहारिक अंतर है। आपने यह नहीं पूछा कि शतरंज लगभग सबसे छोटे रास्तों की तुलना में कठिन क्यों है, आपने पूछा कि शतरंज क्यों दिज्कस्त्र की तुलना में कठिन है जो सभी इनपुट आकारों पर समय के 100% सही है। पुन: nim, कोई विचार नहीं; आपको एक एनएन आर्किटेक्चर की आवश्यकता है जो मनमाने ढंग से बड़े इनपुट के साथ शुरू करने के लिए स्वीकार करता है ...
usul

0

मैं किसी भी तरह से एक विशेषज्ञ नहीं हूं, लेकिन मैं नहीं देखता कि अभी तक क्यों नहीं।

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

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

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

मुझे लगता है कि अगर आपको सही फिटनेस मेट्रिक्स और समायोजन एल्गोरिदम मिलें, तो आप ऐसा कर पाएंगे।


-3

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


मुझे लगता है कि उपयुक्त गेम के लिए एक इष्टतम रणनीति इसी समस्या के लिए एक इष्टतम एल्गोरिदम के समान है।
डोमटॉर्प

@domotorp "रणनीति" एल्गोरिथ्म की तुलना में एक अनुमान के अधिक है
riemann77

-6

मैं क्यूए ऑटोमेशन इंजीनियर हूं, इसलिए न्यूरल नेटवर्क में विशेषज्ञता का दावा नहीं करता, लेकिन, तात्विक रूप से, हां एनएन खुद एल्गोरिदम बना सकता है। मनुष्य स्वयं किसी स्तर पर एनएन है, और हम एल्गोरिदम बनाते हैं, इसलिए यह इस कारण से खड़ा होता है कि हम जो कृत्रिम एनएन सिस्टम बनाते हैं वह स्वयं एल्गोरिदम हो सकता है।

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