13

का व्युत्पन्न मैं सीखने के लिए बैकप्रोपैगेशन तकनीक का उपयोग कर एक तंत्रिका नेटवर्क बना रहा हूं।सिग्मोइड

मुझे समझ में आता है कि हमें उपयोग किए गए सक्रियण फ़ंक्शन के व्युत्पन्न को खोजने की आवश्यकता है। मैं मानक अवग्रह समारोह

f(x) = 1/(1 + e^(-x)) 

उपयोग कर रहा हूँ और मैंने देखा है कि अपनी व्युत्पन्न

dy/dx = f(x)' = f(x) * (1 - f(x)) 

यह एक Daft प्रश्न हो सकता है, लेकिन इसका मतलब यह है कि हम के माध्यम से एक्स पारित करने के लिए है कि अवग्रह समारोह दो बार समीकरण के दौरान, तो यह

dy/dx = f(x)' = 1/(1 + e^(-x)) * (1 - (1/(1 + e^(-x)))) 

का विस्तार या यह बस f(x) की पहले से ही गणना की उत्पादन है, जो न्यूरॉन के उत्पादन में है लेने की बात है होता है, और f(x) के लिए उस मान को प्रतिस्थापित करें?

+0

मैं व्युत्पन्न स्वयं को लेने का प्रयास करने का सुझाव दूंगा। बीजगणित के कुछ हिस्सों के साथ आप वास्तव में एफ (एक्स) * (1 - एफ (एक्स)) प्राप्त कर सकते हैं, और फिर आप समझेंगे कि क्या हो रहा है। (और नीचे दिया गया जवाब 100% सही है।) –

+0

प्रतिस्थापन के मामले में आपकी मूल समस्या के बारे में सोचें और आप देखेंगे कि f (x) एक सामान्य शब्द है जिसे आप प्रतिस्थापन के माध्यम से कारक बना सकते हैं –

उत्तर

7

ऐसा करने के दो तरीके समकक्ष हैं (चूंकि गणितीय कार्यों के दुष्प्रभाव नहीं होते हैं और हमेशा दिए गए आउटपुट के लिए एक ही इनपुट लौटाते हैं), तो आप इसे (तेज़) दूसरे तरीके से भी कर सकते हैं।

15

डगल सही है। बस

f = 1/(1+exp(-x)) 
df = f * (1 - f) 
3

थोड़ा बीजगणित इसे सरल बना सकता है ताकि आपके पास डीएफ कॉल एफ न हो।
DF = exp (-x)/(1 + exp (-x))^2

व्युत्पत्ति:

df = 1/(1+e^-x) * (1 - (1/(1+e^-x))) 
df = 1/(1+e^-x) * (1+e^-x - 1)/(1+e^-x) 
df = 1/(1+e^-x) * (e^-x)/(1+e^-x) 
df = (e^-x)/(1+e^-x)^2 
0

आप अपने sigmoid फ़ंक्शन के परिणाम का उपयोग करें और यह अपने SigmoidDerivative कार्य करने के लिए पारित कर सकते हैं निम्नलिखित में f(x) के रूप में उपयोग किया जाना चाहिए:

dy/dx = f(x)' = f(x) * (1 - f(x))