5

मैं कृत्रिम तंत्रिका नेटवर्क के लिए नया हूं।पृथक्करण और पैटर्न मिलान तकनीक

मैं इस तरह एक आवेदन में दिलचस्पी है:

table

मैं वस्तुओं की एक काफी बड़े सेट है। प्रत्येक ऑब्जेक्ट में छह गुण होते हैं, जिन्हें पी 1 – पी 6 द्वारा दर्शाया गया है। प्रत्येक संपत्ति में एक मूल्य होता है जो एक प्रतीकात्मक मूल्य है। दूसरे शब्दों में, मेरे उदाहरण में पी 1 – पी 6 सेट {ए, बी, सी, डी, ई, एफ} से एक मूल्य हो सकता है। वे संख्यात्मक नहीं हैं। (मान लीजिए ए, बी, सी, डी, ई, एफ रंग हैं;। तो आप मेरा विचार समझ जाएगा)

अब, वहाँ एक और संपत्ति आर है कि मैं में दिलचस्पी है मान लीजिए

आर =। {G1, G2, G3, जी -4, G5}

मैं P1 – पी 6 और प्रासंगिक आर के एक बड़े सेट के लिए एक प्रणाली प्रशिक्षित करने की आवश्यकता अब मैं निम्नलिखित करना चाहते हैं।

  1. मैं एक वस्तु है और मैं पी 6 के लिए पी 1 के मूल्यों को जानते हैं। मुझे आर (समूह जो ऑब्जेक्ट संबंधित है) को खोजने की आवश्यकता है।

  2. वांछित आर प्राप्त करने के लिए मुझे पी 1 – पी 6 में क्या पैटर्न चाहिए। एक उदाहरण के रूप में दिया गया है कि आर = जी 2 मुझे पीपी 6 में किसी भी पैटर्न को समझने की आवश्यकता है।

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

  1. क्या सिद्धांतों/प्रौद्योगिकियों/तकनीकों मैं पढ़ना चाहिए और 1 और 2, क्रमशः लागू करने के क्रम में जानने के कर रहे हैं?

  2. यह नकली/कार्यान्वित/परीक्षण प्राप्त करने के लिए आप कौन से टूल/पुस्तकालयों की सिफारिश कर सकते हैं?

+0

{ए, बी, सी, डी, ई, एफ, ...} सेट कितना बड़ा है? क्या यह सीमित है? – wildplasser

+0

हां यह है। और वे स्वतंत्र हैं –

+0

ठीक है, तो IMHO आपकी समस्या एक खोज इंजन या अनुशंसा प्रणाली की तरह कम या कम दिखाई देती है (पीएक्स निश्चित आकार होने के अलावा) क्या आपने एसवीडी देखा है? – wildplasser

उत्तर

3

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

हालांकि, मुझे कृत्रिम बुद्धि में किसी भी विधि की जानकारी नहीं है, जो दो-तरफा वर्गीकरण (या दूसरे शब्दों में, दोनों आपके पूर्व शर्त 1 और 2 को एक साथ लागू करने की अनुमति देता है) की अनुमति देता है। जैसा कि आप अभी तक करना चाहते हैं, पी 1..पी 6 < => आर का एक द्विदिश मैपिंग है, मैं सुझाव देता हूं कि कृत्रिम बुद्धिमान एल्गोरिदम के बजाय मैपिंग टेबल का उपयोग करें। यदि आप बिल्कुल नहीं जानते हैं तो एआई बहुत अच्छा काम करेगा, आपके नमूने को पी 1..पी 6 में ए..ई के तहत वर्गीकृत किया गया है।

यदि आप इसके लिए एआई का उपयोग करने का आग्रह करते हैं, तो मैं पहले Perceptron पर विचार करने का सुझाव दूंगा। एक अवधारणा में इनपुट, इंटरमीडिएट और आउटपुट न्यूरॉन्स होते हैं। आपके उदाहरण के लिए, आपके पास इनपुट-न्यूरॉन्स पी 1 ए..पी 1, पी 2 ए..पी 2, ... और पांच आउटपुट न्यूरॉन्स आर 1..आर 5 होगा। प्रशिक्षण के बाद, आप पी 1..पी 6 इनपुट करने और आउटपुट के रूप में उपयुक्त R1..R5 प्राप्त करने में सक्षम होना चाहिए।

ढांचे और प्रौद्योगिकियों के लिए, मुझे केवल विजुअल स्टूडियो के लिए बिजनेस इंटेलिजेंस सूट के बारे में पता है, हालांकि वहां एआई के लिए कई अन्य ढांचे हैं। चूंकि मैंने उनमें से कोई भी उपयोग नहीं किया है (मैंने हमेशा उन्हें सी/सी ++ में कोड किया है), मैं किसी की भी सिफारिश नहीं कर सकता।

5

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

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

आपको मेरी राय में निश्चित रूप से किसी भी जटिल तकनीक (जैसे तंत्रिका नेटवर्क) के लिए नहीं जाना चाहिए क्योंकि आपके डेटा में सटीक संख्यात्मक व्याख्या नहीं है और मूल्यों को धीरे-धीरे व्याख्या नहीं किया जा सकता है।

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

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

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

1

यह एक सामान्य वर्गीकरण समस्या की तरह लगता है। यदि आपके पास वास्तव में बहुत अधिक डेटा है तो Apache Mahout पर एक नज़र डालें जो मशीन लर्निंग एल्गोरिदम के वितरित कार्यान्वयन प्रदान करता है। यदि आपको TimBL प्रोटोटाइप के लिए कुछ जटिल जटिलता की आवश्यकता है तो यह एक अच्छा विकल्प है।