आप नोड्स का एक बहुत है, तो जहां एक्स का मान -10 .. + 10 बॉक्स के बाहर है, तो आप सिर्फ उन मूल्यों बिल्कुल, है, तो तरह की गणना करने के उदाहरण के लिए छोड़ सकते हैं ..
if(x < -10)
y = 0;
else if(x > 10)
y = 1;
else
y = 1/(1 + Math.exp(-x));
return y;
बेशक, यह प्रत्येक गणना के लिए सशर्त चेक के ऊपरी हिस्से में पड़ता है, इसलिए यह केवल सार्थक है यदि आपके पास बहुत से संतृप्त नोड्स हैं।
उल्लेख करने योग्य एक और बात यह है कि, यदि आप बैकप्रोपैगेशन का उपयोग कर रहे हैं, और आपको फ़ंक्शन की ढलान से निपटना होगा, तो इसे 'लिखित' के बजाय टुकड़ों में गणना करना बेहतर होगा।
मुझे इस समय ढलान को याद नहीं किया जा सकता है, लेकिन उदाहरण के तौर पर मैं द्विध्रुवीय सिग्मोइड का उपयोग करने के बारे में बात कर रहा हूं। के बजाय इस तरह
y = (1 - exp(-x))/(1 + exp(-x));
जो दो बार exp() हिट की गणना, आप अस्थायी चर में महंगा गणना अप कैश कर सकते, तो
temp = exp(-x);
y = (1 - temp)/(1 + temp);
जैसी जगहों के बहुत बात की इस तरह डाल करने के लिए कर रहे हैं बीपी नेट में उपयोग करने के लिए।
क्या एक्स के मान कभी दोहराए गए हैं या क्या यह संभव है कि जब भी विधि कहा जाता है तो वे हमेशा अलग होंगे? – DaveJohnston
इसके अलावा, परिणाम कितना सटीक होना चाहिए? –
@ डेव - वांछित सटीकता पर निर्भर करता है, लेकिन वे सभी फ़्लोटिंग पॉइंट नंबर हैं, इसलिए बहुत अधिक अद्वितीय – Simon