चुनौती
सबसे छोटा फीडफॉर्वर्ड न्यूरल नेटवर्क खोजें जैसे कि, [ - 10 , 10 ] में पूर्णांक प्रविष्टियों के साथ किसी भी 3-आयामी इनपुट वेक्टर को दिया गया है , नेटवर्क सबसे बड़ा (यानी, "सबसे सकारात्मक") रूट को आउटपुट करता है। बहुपद x 3 + a x 2 + b x + c त्रुटि के साथ कड़ाई से 0.1 से कम है ।
स्वीकार्यता
मेरी पिछली न्यूरल नेट गोल्फिंग चुनौती में स्वीकार्यता की धारणा थोड़ी प्रतिबंधात्मक थी, इसलिए इस चुनौती के लिए, हम फीडबैकवर्ड न्यूरल नेटवर्क की अधिक उदार परिभाषा का उपयोग कर रहे हैं:
एक न्यूरॉन एक समारोह है कि एक सदिश द्वारा निर्दिष्ट किया जाता के वजन , एक पूर्वाग्रह , और एक सक्रियण समारोह निम्नलिखित तरीके से:
के साथ एक feedforward तंत्रिका नेटवर्क इनपुट नोड्स की एक समारोह है कि एक दृश्य से बनाया जा सकता है न्यूरॉन्स की, जहां प्रत्येक इनपुट लेता है और एक स्केलर आउटपुट करता है। कुछ निर्दिष्ट सेट को देखते हुएकाउत्पादन नोड्स, तो तंत्रिका नेटवर्क के उत्पादन वेक्टर है ।
चूंकि सक्रियण कार्यों को किसी भी कार्य के लिए ट्यून किया जा सकता है, इसलिए हमें इस चुनौती को दिलचस्प बनाए रखने के लिए सक्रियण कार्यों के वर्ग को प्रतिबंधित करना होगा। निम्नलिखित सक्रियण कार्यों की अनुमति है:
पहचान।
Relu।
SoftPlus।
अवग्रह।
Sinusoid।
कुल मिलाकर, एक स्वीकार्य तंत्रिका जाल इनपुट नोड्स, न्यूरॉन्स के एक अनुक्रम और आउटपुट नोड्स द्वारा निर्दिष्ट किया जाता है, जबकि प्रत्येक न्यूरॉन एक वेक्टर वजन, एक पूर्वाग्रह और उपरोक्त सूची से एक सक्रियण फ़ंक्शन द्वारा निर्दिष्ट किया जाता है। उदाहरण के लिए, निम्न तंत्रिका जाल स्वीकार्य है, हालांकि यह इस चुनौती के प्रदर्शन के लक्ष्य को पूरा नहीं करता है:
इनपुट नोड्स:
न्यूरॉन्स: के लिए
आउटपुट नोड्स:
इस नेटवर्क में 8 न्यूरॉन्स होते हैं, जिनमें से प्रत्येक में शून्य पूर्वाग्रह और पहचान सक्रियण होता है। शब्दों में, यह नेटवर्क और द्वारा उत्पन्न सामान्यीकृत फाइबोनैचि अनुक्रम की गणना करता है और फिर इस क्रम से 5 वें, 9 वें और 10 वें नंबर को आउटपुट करता है।
स्कोरिंग
यह देखते हुए एक वास्तविक संख्या समाप्त दशमलव विस्तार के साथ, चलो सबसे छोटी गैर नकारात्मक पूर्णांक होने जिसके लिए , और होना सबसे छोटी ग़ैर-ऋणात्मक पूर्णांक जिसके लिए पूर्णांक है। फिर हम कहते हैं कि है परिशुद्धता के ।
उदाहरण के लिए, में सटीकता है , जबकि की परिशुद्धता में ।
आपका स्कोर आपके तंत्रिका नेटवर्क में भार और पूर्वाग्रहों के पूर्वाभास का योग है।
(उदाहरण, उपरोक्त उदाहरण में 16 का स्कोर है।)
सत्यापन
जबकि जड़ों को घन सूत्र के रूप में व्यक्त किया जा सकता है , सबसे बड़ी जड़ संभवतः संख्यात्मक साधनों द्वारा आसानी से प्राप्त की जाती है। @ Xnor के सुझाव के बाद, मैंने पूर्णांक की हर पसंद के लिए सबसे बड़ी जड़ की गणना की , और परिणाम यहां देखे जा सकते हैं । इस पाठ फ़ाइल की प्रत्येक पंक्ति प्रपत्र की है a,b,c,root
। उदाहरण के लिए, पहली पंक्ति रिपोर्ट करती है कि की सबसे बड़ी जड़ - 10 x 2 - 10 x - 10 लगभग ।
संपादित करें: मेरे द्वारा पोस्ट की गई मूल फ़ाइल में उन मामलों में त्रुटियां थीं, जहां बहुपद एक बहु रूट प्रदर्शित करता है। वर्तमान संस्करण ऐसी त्रुटियों से मुक्त होना चाहिए।
a
नॉनजेरो होगा, या यहां तक कि सिर्फ 1। इसके अलावा, मैं कुछ परीक्षण मामलों में डालने की सलाह दूंगा , जड़ें उच्च परिशुद्धता को दे रही हैं ताकि हम जांच कर सकें कि हमारे 0.1 के भीतर हैं। सभी संभावित निविष्टियों के लिए आउटपुट देना भी अच्छा होगा, शायद एक लिंक में क्योंकि यह पोस्ट के लिए बहुत कुछ है।
x -> a * sin(b * softplus(x) + c)
किसी भी परिमित संख्या के डेटा बिंदुओं को पूर्णांक के साथ x
एक बहुत बड़ी और सटीक आवृत्ति का उपयोग करके मनमाना परिशुद्धता के साथ ओवरफिट कर सकता है ।
a=0
कि द्विघात और दो जटिल जड़ें कब होती हैं?