मैं पिछले 3 महीनों से एक अस्पष्ट तर्क एसडीके पर काम कर रहा हूं, और यह उस बिंदु पर आया जहां मुझे इंजन को अत्यधिक अनुकूलित करना शुरू करना है।जटिल प्रणाली के पतन और स्थिरीकरण की भविष्यवाणी करने के लिए मशीन सीखने का उपयोग करना?
अधिकांश "उपयोगिता" या "ज़रूरतों" आधारित एआई सिस्टम के साथ, मेरा कोड दुनिया भर के विभिन्न विज्ञापनों को रखकर काम करता है, विभिन्न एजेंटों के गुणों के मुकाबले विज्ञापनों की तुलना करके विज्ञापन और "प्रति एजेंट" आधार] तदनुसार।
यह बदले में, अधिकांश एकल सिमुलेशन के लिए अत्यधिक दोहराव वाले ग्राफ उत्पन्न करता है। हालांकि, अगर विभिन्न एजेंटों को ध्यान में रखा जाता है, तो सिस्टम मेरे कंप्यूटर के अनुकरण के लिए अत्यधिक जटिल और भारी कठिन हो जाता है (चूंकि एजेंट एक दूसरे के बीच विज्ञापन प्रसारित कर सकते हैं, एनपी एल्गोरिदम बनाते हैं)।
नीचे: सिस्टम एक भी एजेंट पर 3 विशेषताओं के लिए गणना की repetitiveness के उदाहरण:
शीर्ष:
: प्रणाली 3 गुण और 8 एजेंटों के खिलाफ गणना का उदाहरण(शुरुआत में संकुचित करें, और शीघ्र ही बाद में वसूली। यह सबसे अच्छा उदाहरण है जो मैं उत्पन्न कर सकता हूं जो एक छवि पर फिट होगा, क्योंकि रिकवरी आमतौर पर बहुत धीमी होती है)
जैसा कि आप दोनों उदाहरणों से देख सकते हैं, भले ही एजेंट की संख्या बढ़ जाती है, सिस्टम अभी भी अत्यधिक दोहराया जा सकता है, और इसलिए मूल्यवान गणना समय बर्बाद कर रहा है।
मैं प्रोग्राम को फिर से आर्किटेक्चर करने की कोशिश कर रहा हूं ताकि उच्च दोहराव की अवधि के दौरान, अद्यतन फ़ंक्शन केवल पंक्ति ग्राफ को दोहराता है।
हालांकि मेरे फजी लॉजिक कोड के लिए यह निश्चित रूप से संभव है कि सिस्टम के पतन और स्थिरीकरण की गणना करने के लिए भविष्यवाणी की जाए, यह मेरे सीपीयू पर अत्यधिक कर लगा रहा है। मैं सोच रहा हूं कि मशीन सीखने के लिए यह सबसे अच्छा मार्ग होगा, क्योंकि ऐसा लगता है कि एक बार सिस्टम के प्रारंभिक सेट अप होने के बाद, अस्थिरता की अवधि हमेशा एक ही लंबाई के बारे में प्रतीत होती है (हालांकि वे "अर्ध" यादृच्छिक समय। मैं अर्द्ध कहता हूं, क्योंकि आमतौर पर ग्राफ पर दिखाए गए विशिष्ट पैटर्न से आसानी से ध्यान देने योग्य होता है, हालांकि, अस्थिरता की लंबाई की तरह, ये पैटर्न सेट अप से सेट अप में भिन्न होते हैं)।
जाहिर है, अगर अस्थिर अवधि सभी एक ही समय की लंबाई, एक बार जब मुझे पता चले कि सिस्टम कितना आसान हो जाता है जब यह संतुलन तक पहुंच जाएगा।
इस प्रणाली के बारे में एक तरफ ध्यान दें, पुनरावृत्ति की अवधि के दौरान सभी विन्यास 100% स्थिर नहीं हैं।
यह बहुत स्पष्ट रूप से ग्राफ में दिखाया गया है:
तो मशीन सीखने समाधान "छद्म" गिर, और पूर्ण गिर के बीच अंतर करने के लिए एक रास्ता आवश्यकता होगी।
एमएल समाधान का उपयोग करने में कितना व्यवहार्य होगा? क्या कोई भी एल्गोरिदम, या कार्यान्वयन दृष्टिकोण की सिफारिश कर सकता है जो सबसे अच्छा काम करेगा?
उपलब्ध संसाधनों के लिए, स्कोरिंग कोड समांतर आर्किटेक्चर (एजेंटों के बीच घनिष्ठ अंतःक्रियाओं के कारण) पर अच्छी तरह से मैप नहीं करता है, इसलिए यदि मुझे इन गणनाओं को करने के लिए एक या दो CPU थ्रेड को समर्पित करने की आवश्यकता है, तो हो । (मैं इसके लिए एक जीपीयू का उपयोग नहीं करना चाहूंगा, क्योंकि जीपीयू को मेरे कार्यक्रम के एक असंबंधित गैर-एआई भाग के साथ कर लगाया जा रहा है)।
हालांकि यह सबसे अधिक संभावना एक अंतर, प्रणाली है कि कोड पर रैम 18GB निष्पादन के दौरान छोड़ दिया है चल रहा है नहीं होगा। इसलिए, संभावित रूप से अत्यधिक डेटा रिलायंस समाधान का उपयोग करना निश्चित रूप से व्यवहार्य होगा।
तो प्रयोग करने के बजाय, आप इसे इस अनुमान के साथ बदलना चाहते हैं कि यह कैसा दिख सकता है? – ziggystar
हाँ, यह वही है जो मैं करना चाहता हूं। –
यह एक बुरा विचार की तरह लगता है। यदि आप किसी भी तरह से यह साबित कर सकते हैं कि आपका सिस्टम अपने आंतरिक काम के ज्ञान से आवधिक है जो ठीक रहेगा। लेकिन कुछ आउटपुट को देखते हुए और अनुमान लगाते हैं कि शायद इस तरह से जारी रहेगा इस तरह से त्रुटिपूर्ण प्रतीत होता है। – ziggystar