2011-02-24 9 views
16

मैंने इनपुट वैक्टर के पाप की भविष्यवाणी करने के लिए एक बहुआयामी perceptron लागू किया है। वेक्टर में यादृच्छिक रूप से चुने गए चार -1,0,1 का चयन होता है और पूर्वाग्रह 1 पर सेट होता है। नेटवर्क को वैक्टर सामग्री के योग के पाप की भविष्यवाणी करनी चाहिए।मल्टी-लेयर तंत्रिका नेटवर्क नकारात्मक मानों की भविष्यवाणी नहीं करेगा

जैसे इनपुट = < 0,1, -1,0,1> आउटपुट = पाप (0 + 1 + (- 1) + 0 + 1)

समस्या मैं कर रहा हूँ है कि नेटवर्क होगा कभी भी ऋणात्मक मूल्य की भविष्यवाणी न करें और कई वैक्टरों के पाप मूल्य नकारात्मक हैं। यह पूरी तरह से सभी सकारात्मक या शून्य आउटपुट की भविष्यवाणी करता है। मुझे लगता है कि वजन को अद्यतन करने में कोई समस्या है, जो प्रत्येक युग के बाद अद्यतन किया जाता है। क्या किसी ने एनएन के साथ इस समस्या का सामना किया है? कोई भी मदद बहुत अच्छी होगी !!

नोट: नेटवर्क में 5 इनपुट, 6 छिपी हुई इकाइयां 1 छिपी हुई परत और 1 आउटपुट में हैं। मैं छिपी हुई और आउटपुट परतों के सक्रियण पर सिग्मोइड फ़ंक्शन का उपयोग कर रहा हूं, और सीखने की दर (वर्तमान में 0.1) की कोशिश की है;

उत्तर

11

लंबे समय से होने के बाद से मैंने मल्टीलायर परिक्रमणों को देखा, इसलिए इसे नमक के अनाज के साथ लें।

मैं आपकी समस्या डोमेन को [-1,1] के बजाय [0,1] डोमेन पर पुन: सहेज दूंगा। आप रसद समारोह ग्राफ पर एक नज़र डालें, तो:

enter image description here

यह [0,1] के बीच मूल्यों उत्पन्न करता है। मुझे उम्मीद है कि यह नकारात्मक नतीजे पैदा करेगी। मैं गलत, कठिन हो सकता है।

संपादित:

आप वास्तव में आपकी समस्या डोमेन के लिए रसद समारोह का विस्तार कर सकते हैं। अपने डोमेन की सीमाओं के लिए generalized logistic curve सेटिंग ए और के पैरामीटर का उपयोग करें।

एक और विकल्प हाइपरबॉलिक टेंगेंट है, जो [-1, + 1] से जाता है और इसमें स्थापित करने के लिए कोई स्थिरांक नहीं है।

+0

बहुत बहुत धन्यवाद, यह समझ में आता है! Il को ऐसे फ़ंक्शन के लिए चारों ओर देखना होगा जो नकारात्मक मानों की अनुमति दे सकता है। दुर्भाग्यवश मैं समस्या डोमेन को कॉलेज के लिए असाइनमेंट के रूप में नहीं बदल सकता। एक बार फिर धन्यवाद! –

+0

@ बी। Bowles एक संभावित समाधान के साथ मेरा जवाब अद्यतन किया। –

+0

बहुत अच्छा है मैं अब कोशिश करूँगा! उस सूत्र में बहुत से पैरा हैं जो इस नेटवर्क पर लागू नहीं होते हैं, और गणित निश्चित रूप से मेरे मजबूत बिंदु नहीं हैं। यह निश्चित रूप से आगे की तरह लगता है। –

3

कई अलग-अलग प्रकार के सक्रियण कार्य हैं, जिनमें से कई को 0 से 1 के मान को आउटपुट करने के लिए डिज़ाइन किया गया है। यदि आप ऐसे फ़ंक्शन का उपयोग कर रहे हैं जो केवल 0 और 1 के बीच आउटपुट करता है, तो इसे समायोजित करने का प्रयास करें ताकि यह आउटपुट हो सके 1 और -1। यदि आप FANN का उपयोग कर रहे थे तो मैं आपको FANN_SIGMOID_SYMMETRIC सक्रियण फ़ंक्शन का उपयोग करने के लिए कहूंगा।

+0

दुर्भाग्य से मैं इस असाइनमेंट के लिए किसी भी libs का उपयोग नहीं कर सकता, अगर केवल! मुझे लगता है कि यह कैसे काम करता है, बहुत बहुत धन्यवाद –

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