5

मेरे पास ऑब्जेक्ट्स के दो सरणी हैं जो एक तंत्रिका नेटवर्क की संरचना का वर्णन करते हैं, मैं उन्हें एक संतान पैदा करने के लिए कैसे जोड़ सकता हूं जो यथार्थवादी हैं? "क्रोमोसोम" कुछ इस तरह दिखेगा:आनुवांशिक एल्गोरिदम का उपयोग करके, मैं दो तंत्रिका नेटवर्क संरचनाओं के आधार पर संतान कैसे बना सकता हूं?

chromosome = [ 
    [Node, Node, Node], 
    [Node, Node, Node, Node, Node], 
    [Node, Node, Node, Node], 
    [Node, Node, Node, Node, Node], 
    [Node, Node, Node, Node, Node, Node, Node], 
    [Node, Node, Node], 
]; 

एक उदाहरण नोड:

Node { 
    nodesThatThisIsConnectedTo = [0, 2, 3, 5] // These numbers identify which nodes to collect output from in the preceding layer from based on their index number 
    weights = [0.34, 0.33, 0.76, -0.56] // These are the corresponding weights applied to the mentioned nodes 
} 
+3

तंत्रिका नेटवर्क के लिए पारस्परिक कई कारणों से मुश्किल है। आप [NEAT] (http://www.cs.ucf.edu/~kstanley/neat.html) को देखना चाहते हैं, जो समस्या को हल करने के लिए एक चालाक तंत्र (ऐतिहासिक मार्कर) का उपयोग करता है। लिंक किए गए कागजात (पृष्ठ के निचले हिस्से में) इस बारे में अधिक जानकारी रखते हैं कि यह कैसे/क्यों काम करता है। – DataWraith

+0

मूल 2005 (मुझे लगता है) पेपर पढ़ें, यह शानदार ढंग से लिखा गया है और आपके सभी सवालों का जवाब देगा। – mbatchkarov

उत्तर

0

मुझे लगता है कि एक बेहतर दृष्टिकोण प्रत्येक नोड के वजन वेक्टर के लिए एक आनुवंशिक एल्गोरिथ्म खोज लागू करने के लिए हो सकता है - अगर आप ' जीए का उपयोग कर बंद कर दिया।

प्रत्येक नोड के लिए वैक्टर की आबादी है, और प्रत्येक पुनरावृत्ति एक नोड अपने वजन वेक्टर को बदलता है। यह मुझे एक बहुत ही अच्छे दृष्टिकोण की तरह लगता है, फिर दो पूर्ण नेटवर्क के बीच पार हो गया।