2016-09-22 13 views
5

मैं अपने तंत्र को लागू करने वाले एक तंत्रिका नेटवर्क के साथ खेल रहा हूं: यह आरपीआरओपी का उपयोग एक सीखने वाले एल्गोरिदम के रूप में मूल डिजाइन की तुलना में केवल "प्लस" के रूप में करता है।तंत्रिका नेटवर्क और एक्सओआर फ़ंक्शन

जब मैं एमएनआईएसटी के खिलाफ परीक्षण करता हूं या जब मैं छवि संपीड़न पर प्रयास करता हूं तो नेटवर्क स्कोर ठीक से होता है, लेकिन जब मैं एक्सओआर फ़ंक्शन के रूप में कुछ सरल मॉडल करने का प्रयास करता हूं, कभी-कभी सीखने के दौरान यह स्थानीय मिनीमा में फंस जाता है, और आउटपुट करता है निम्नलिखित सच्चाई तालिका:

0 XOR 0 = 1.4598413968251171e-171 
1 XOR 0 = 0.9999999999999998 
0 XOR 1 = 0.9999999999999998 
1 XOR 1 = 0.5 

अक्सर प्रशिक्षण के बाद परिणाम सही है, लेकिन कभी कभी 1 XOR 1 आउटपुट के बजाय 0.5 1 एकदम सही ढंग से। यह वास्तव में हमेशा एक्सओआर (1,1) के साथ नहीं होता है, लेकिन अन्य इनपुट के साथ भी। एक्सओआर होने के कारण पीछे प्रचार के साहित्य में एक "शास्त्रीय" है, मुझे आश्चर्य है कि यहां क्या हो रहा है, विशेष रूप से यह देखते हुए कि मेरा नेटवर्क अधिक जटिल (लेकिन शायद कम गैर-रैखिक) कार्यों को ठीक से सीखता प्रतीत होता है।

मेरा जंगली अनुमान यह है कि पूर्वाग्रहों में कुछ गड़बड़ है।

कोई संकेत?

नोट 1: ऊपर नेटवर्क लेआउट 2 | 3 | 1 है, लेकिन जब मैं अधिक छिपी हुई इकाइयों का उपयोग करता हूं तो बहुत कुछ नहीं बदलता है, कुछ सीखने के प्रयास अभी भी गलत हो जाते हैं।

नोट 2: एनएन के पूर्वाग्रह इकाई ठीक पहले उत्पादन इकाई सही ढंग से गणना नहीं था: मेरे कार्यान्वयन में एक बग के कारण https://gist.github.com/antirez/e45939b918868b91ec6fea1d1938db0d

+0

आप किस कार्य का उपयोग कर रहे हैं? क्या आप साझा कर सकते हैं? – ACV

+0

मैंने बस पूरे कार्यान्वयन को यहां फिसल दिया: https://gist.github.com/antirez/e45939b918868b91ec6fea1d1938db0d यह बहुत ही बुनियादी चीजें है। संपादित करें: अभी भी हेडर फ़ाइल भी जोड़ा गया है। – antirez

+0

असल में परीक्षण करने के बाद मैंने पाया कि यह केवल एक्सओआर (1,1) नहीं है जो विफल रहता है, लेकिन अन्य भी 0.5 उत्पादन कर सकते हैं। – antirez

उत्तर

2

समस्या थी: मैं एक सार में कार्यान्वयन डाल दिया। कोड को ठीक करने के बाद एक्सओआर फ़ंक्शन हमेशा गणना की जाती है।

संबंधित मुद्दे