तंत्रिका नेटवर्क में सिग्मॉइड फ़ंक्शन की भूमिका व्युत्पन्न


18

मैं तंत्रिका नेटवर्क में सिग्मोइड फ़ंक्शन के व्युत्पन्न की भूमिका को समझने की कोशिश करता हूं। यहाँ छवि विवरण दर्ज करें

पहले मैं सिग्मॉइड फ़ंक्शन को प्लॉट करता हूं, और अजगर का उपयोग करके परिभाषा से सभी बिंदुओं का व्युत्पन्न करता हूं। इस व्युत्पन्न की भूमिका वास्तव में क्या है? यहाँ छवि विवरण दर्ज करें

import numpy as np
import matplotlib.pyplot as plt

def sigmoid(x):
    return 1 / (1 + np.exp(-x))

def derivative(x, step):
    return (sigmoid(x+step) - sigmoid(x)) / step

x = np.linspace(-10, 10, 1000)

y1 = sigmoid(x)
y2 = derivative(x, 0.0000000000001)

plt.plot(x, y1, label='sigmoid')
plt.plot(x, y2, label='derivative')
plt.legend(loc='upper left')
plt.show()

2
यदि आपके पास अधिक प्रश्न हैं, तो पूछने में संकोच न करें
JahKnows

जवाबों:


23

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


नुकसान समारोह

मशीन लर्निंग का सार एक लागत फ़ंक्शन का अनुकूलन करना है, ताकि हम या तो कम कर सकें या कुछ लक्ष्य फ़ंक्शन को अधिकतम कर सकें। इसे आमतौर पर नुकसान या लागत में कटौती कहा जाता है। हम आम तौर पर इस फ़ंक्शन को कम से कम करना चाहते हैं। लागत फ़ंक्शन, , मॉडल पैरामीटर के एक फ़ंक्शन के रूप में आपके मॉडल के माध्यम से डेटा पारित करते समय परिणामी त्रुटियों के आधार पर कुछ दंड को संबद्ध करता है।सी

आइए उस उदाहरण को देखें जहां हम यह लेबल लगाने की कोशिश करते हैं कि क्या किसी छवि में बिल्ली या कुत्ता है। अगर हमारे पास एक आदर्श मॉडल है, तो हम मॉडल को एक तस्वीर दे सकते हैं और यह हमें बताएगा कि क्या यह एक बिल्ली या कुत्ता है। हालांकि, कोई भी मॉडल सही नहीं है और यह गलतियाँ करेगा।

जब हम अपने मॉडल को प्रशिक्षित करते हैं, तो हम इनपुट डेटा से अर्थ का अनुमान लगाने में सक्षम होते हैं, हम जो गलतियाँ करते हैं, उनकी मात्रा को कम करना चाहते हैं। इसलिए हम एक प्रशिक्षण सेट का उपयोग करते हैं, इस डेटा में कुत्तों और बिल्लियों के बहुत सारे चित्र हैं और हमारे पास उस छवि के साथ जमीनी सच्चाई का लेबल है। हर बार जब हम मॉडल का एक प्रशिक्षण चलना चलाते हैं तो हम मॉडल की लागत (गलतियों की मात्रा) की गणना करते हैं। हम इस लागत को कम करना चाहेंगे।

कई लागत कार्य प्रत्येक अपने उद्देश्य की पूर्ति करते हैं। एक सामान्य लागत फ़ंक्शन जिसका उपयोग किया जाता है वह द्विघात लागत है जिसे परिभाषित किया गया है

सी=1एनΣमैं=0एन(y^-y)2

यह छवियों के लिए अनुमानित लेबल और जमीनी सच्चाई लेबल के बीच अंतर का वर्ग है जिसे हमने प्रशिक्षण दिया था। हम इसे किसी तरह कम करना चाहेंगे।एन

हानि फ़ंक्शन को कम करना

वास्तव में मशीन लर्निंग का अधिकांश ढांचा ढांचों का एक परिवार है जो कुछ लागत फ़ंक्शन को कम करके वितरण का निर्धारण करने में सक्षम हैं। सवाल हम पूछ सकते हैं "हम एक फ़ंक्शन को कैसे कम कर सकते हैं"?

चलिए निम्न फ़ंक्शन को कम करते हैं

y=एक्स2-4एक्स+6

यदि हम इसे प्लॉट करते हैं तो हम देख सकते हैं कि पर एक न्यूनतम है । इसे विश्लेषणात्मक रूप से करने के लिए हम इस फ़ंक्शन के व्युत्पन्न को ले सकते हैंएक्स=2

yएक्स=2एक्स-4=0

एक्स=2

हालाँकि, कई बार वैश्विक रूप से न्यूनतम विश्लेषणात्मक खोजना संभव नहीं होता है। इसलिए इसके बजाय हम कुछ अनुकूलन तकनीकों का उपयोग करते हैं। यहाँ के रूप में अच्छी कई अलग अलग तरीकों मौजूद जैसे: न्यूटन- Raphson, ग्रिड खोज, आदि इनमें है ढाल वंश । यह तंत्रिका नेटवर्क द्वारा उपयोग की जाने वाली तकनीक है।

ढतला हुआ वंश

आइए इसे समझने के लिए एक प्रसिद्ध रूप से प्रयुक्त सादृश्य का उपयोग करें। 2 डी न्यूनतम समस्या की कल्पना करें। यह जंगल में पहाड़ी पहाड़ी पर होने के बराबर है। आप उस गाँव में वापस जाना चाहते हैं जिसे आप जानते हैं कि वह सबसे निचले पायदान पर है। भले ही आपको गाँव की कार्डिनल दिशाओं का पता न हो। आपको बस इतना करने की ज़रूरत है कि आप लगातार सबसे कठिन रास्ता अपनाएँ, और आप अंततः गाँव पहुँच जाएँगे। तो हम ढलान की स्थिरता के आधार पर सतह से नीचे उतरेंगे।

चलिए हमारा फंक्शन हुआ

y=एक्स2-4एक्स+6

हम निर्धारित करेंगे जिसके लिए कम से कम है। ग्रेडिएंट डीसेंट अल्गोरिथम पहले कहता है कि हम लिए रैंडम वैल्यू । आइए हम पर आरंभ करते हैं । तब एल्गोरिथ्म निम्नलिखित पुनरावृत्ति करेगा जब तक हम अभिसरण तक नहीं पहुंचते।y x x = 8एक्सyएक्सएक्स=8

एक्सnw=एक्सएल-νyएक्स

जहां सीखने की दर है, हम इसे उस मूल्य पर सेट कर सकते हैं जो हमें पसंद आएगा। हालाँकि इसे चुनने का एक स्मार्ट तरीका है। बहुत बड़ा है और हम कभी भी अपने न्यूनतम मूल्य तक नहीं पहुंचेंगे, और बहुत बड़ा हम वहां पहुंचने से पहले बहुत समय बर्बाद कर देंगे। यह उन चरणों के आकार के अनुरूप है जिन्हें आप खड़ी ढलान पर ले जाना चाहते हैं। छोटे कदम और तुम पहाड़ पर मर जाओगे, तुम कभी नीचे नहीं उतरोगे। एक कदम बहुत बड़ा है और आप गांव की शूटिंग और पहाड़ के दूसरी तरफ खत्म होने का जोखिम उठाते हैं। व्युत्पन्न वह साधन है जिसके द्वारा हम इस ढलान को अपने न्यूनतम की ओर ले जाते हैं।ν

yएक्स=2एक्स-4

ν=0.1

Iteration 1:

x ( 2 * 5.07 - 4 ) = 4.45 एक्स एन डब्ल्यू = 4.45 - 0.1 = 3.25 एक्स एन डब्ल्यू = 3.25 - 0.1 ( 2 * 3.25 - 4 ) = 3.00 2.64 - 0.1 ( 2)एक्सnw=8-0.1(2*8-4)=6.8
एक्स एन डब्ल्यू =5.84-0.1(2*5.84-4)=5.07 x n e w =5.07-0.1एक्सnw=6.8-0.1(2*6.8-4)=5.84
एक्सnw=5.84-0.1(2*5.84-4)=5.07
एक्सnw=5.07-0.1(2*5.07-4)=4.45
एक्स एन डब्ल्यू = 3.96 - 0.1 ( 2 * 3.96 - 4 ) = 3.57 एक्स एन डब्ल्यू = 3.57 - 0.1 ( 2 * 3.57 - 4 )एक्सnw=4.45-0.1(2*4.45-4)=3.96
एक्सnw=3.96-0.1(2*3.96-4)=3.57
एक्सnw=3.57-0.1(2*3.57-4)=3.25
एक्सnw=3.25-0.1(2*3.25-4)=3.00
x n e w = 2.80 - 0.1 ( 2 2.80 - 4) ) = 2.64 x n e w =एक्सnw=3.00-0.1(2*3.00-4)=2.80
xnew=2.800.1(22.804)=2.64
एक्स एन डब्ल्यू = 2.51 - - 4 ) = 2.26 एक्स एन डब्ल्यू = 2.26 - 0.1 ( 2 * 2.26 - 4 ) = 2.21 डब्ल्यू = 2.13 - 0.1 ( 2 * 2.13 - 4 ) = 2.10 x n e w = 2.10 -xnew=2.640.1(22.644)=2.51
एक्स एन डब्ल्यू = 2.41 - 0.1 ( 2 * 2.41 - 4 ) = 2.32 एक्स एन डब्ल्यू = 2.32 - 0.1 ( 2 * 2.32xnew=2.510.1(22.514)=2.41
xnew=2.410.1(22.414)=2.32
xnew=2.320.1(22.324)=2.26
xnew=2.26-0.1(2*2.26-4)=2.21
एक्स एन डब्ल्यू = 2.16 - 0.1 ( 2 * 2.16 - 4 ) = 2.13 x nएक्सnw=2.21-0.1(2*2.21-4)=2.16
एक्सnw=2.16-0.1(2*2.16-4)=2.13
xnew=2.130.1(22.134)=2.10
एक्स एन डब्ल्यू = 2.08 - 0.1 ( 2 * 2.08 - 4 ) = 2.06 एक्स n e w = 2.06 - 0.1 (xnew=2.100.1(22.104)=2.08
xnew=2.080.1(22.084)=2.06
एक्स एन डब्ल्यू = 2.05 - 0.1 ( 2 * 2.05 - 4 ) = 2.04 एक्स एन डब्ल्यू = 2.04 - 0.1 ( 2 * 2.04 - 4 ) = 2.03 एक्स एन डब्ल्यू = 2.03 - 0.1 ( 2 2.03 - 4 ) =xnew=2.060.1(22.064)=2.05
xnew=2.050.1(22.054)=2.04
xnew=2.040.1(22.044)=2.03
एक्स एन डब्ल्यू = 2.02 - 0.1 ( 2 * 2.02 - 4 ) = 2.02 एक्स एन डब्ल्यू = 2.02 - 0.1 ( 2 * 2.02 - 4 ) = 2.01 एक्स एन डब्ल्यू = 2.01 - 0.1 ( 2 * 2.01 - 4 ) = 2.01 x n e w = 2.01xnew=2.030.1(22.034)=2.02
xnew=2.020.1(22.024)=2.02
xnew=2.020.1(22.024)=2.01
xnew=2.010.1(22.014)=2.01
एक्स एन डब्ल्यू = 2.01 - 0.1 ( 2 * 2.01 - 4 ) = 2.00 एक्स एन डब्ल्यू = 2.00 - 0.1 ( 2 * 2.00 - 4 ) = 2.00 एक्स एन डब्ल्यू = 2.00 - 0.1 ( 2 * 2.00 -xnew=2.010.1(22.014)=2.01
xnew=2.010.1(22.014)=2.00
xnew=2.000.1(22.004)=2.00
एक्स एन डब्ल्यू = 2.00 - 0.1 ( 2 * 2.00 - 4 ) = 2.00 एक्स एन डब्ल्यू = 2.00 - 0.1 ( 2 * 2.00 - 4 ) = 2.00xnew=2.000.1(22.004)=2.00
xnew=2.000.1(22.004)=2.00
xnew=2.000.1(22.004)=2.00

और हम देखते हैं कि एल्गोरिथ्म परिवर्तित होता है ! हमने न्यूनतम पाया है।x=2


तंत्रिका नेटवर्क पर लागू होता है

पहले न्यूरल नेटवर्क में केवल एक न्यूरॉन होता था जो कुछ इनपुट में लेता था और फिर आउटपुट । एक सामान्य फ़ंक्शन का उपयोग सिग्मॉइड फ़ंक्शन हैyxy^

σ(z)=11+exp(z)

y^(wTx)=11+exp(wTx+b)

जहां प्रत्येक इनपुट लिए संबद्ध भार है और हमारे पास एक पूर्वाग्रह । हम फिर अपने लागत समारोह को कम करना चाहते हैंएक्स बीwxb

C=12Ni=0N(y^y)2

तंत्रिका नेटवर्क को कैसे प्रशिक्षित किया जाए?

हम सिग्मॉइड फ़ंक्शन के आउटपुट के आधार पर वेट को प्रशिक्षित करने के लिए ढाल वंश का उपयोग करेंगे और हम कुछ लागत फ़ंक्शन उपयोग करेंगे और आकार के डेटा के बैचों पर ट्रेन करेंगे ।एनCN

C=12NiN(y^y)2

y^ सिग्मॉइड फ़ंक्शन से प्राप्त पूर्वानुमानित वर्ग है और जमीनी सच्चाई लेबल है। हम वेट संबंध में लागत समारोह को कम करने के लिए ढाल वंश का उपयोग करेंगे । जीवन को आसान बनाने के लिए हम व्युत्पन्न को निम्नानुसार विभाजित करेंगेyw

Cw=Cy^y^w

Cy^=y^y

और हमारे पास उस और सिग्मॉइड फ़ंक्शन का व्युत्पन्न इस प्रकार हमारे पास है,y^=σ(wTx)σ(z)z=σ(z)(1σ(z))

y^w=11+exp(wTx+b)(111+exp(wTx+b))

तो हम फिर क्रमिक वंश के माध्यम से भार को अपडेट कर सकते हैं

wnew=woldηCw

जहां सीखने की दर है।η


2
कृपया मुझे बताएं कि यह प्रक्रिया पुस्तकों में इतनी अच्छी तरह से वर्णित क्यों नहीं है? क्या आपका कोई ब्लॉग है? तंत्रिका नेटवर्क सीखने के लिए आप क्या सामग्री सुझाते हैं? मेरे पास परीक्षण डेटा है और मैं इसे प्रशिक्षित करना चाहता हूं। क्या मैं एक फ़ंक्शन आकर्षित कर सकता हूं जिसे मैं कम से कम करूंगा? मैं इसे बेहतर ढंग से समझने के लिए इस प्रक्रिया की कल्पना करना चाहूंगा।
लूकाज़

क्या आप इस सरल तरीके से बैकप्रोपैजैशन की व्याख्या कर सकते हैं?
लुकासज़

1
अद्भुत उत्तर ... (+ 1)
आदित्य

1
Backprop भी JKKnows के ऊपर बताया गया है के समान है ... इसकी बस ढाल आउटपुट से सही इनपुट के लिए सभी तरह से किया जाता है .. एक त्वरित गूगल खोज यह स्पष्ट कर देगा .. इसके अलावा हर दूसरे सक्रियण कार्य भी जाता है ..
आदित्य

1
@lukassz, ध्यान दें कि उसका समीकरण वही है जो मेरे पास पिछले समीकरण में वजन अपडेट के लिए है। । वह मेरे जैसे ही लागत फ़ंक्शन का उपयोग करता है, यह न भूलें कि आपको नुकसान फ़ंक्शन के व्युत्पन्न को भी लेने की आवश्यकता है, जो कि हो जाता है , जहां पूर्वानुमानित लेबल हैं और जमीनी सच्चाई हैं लेबल। Cw=(y^y)derivative of sigmoidy^yy^y
जाह्नवीस

2

चरण के दौरान जहां तंत्रिका नेटवर्क अपनी भविष्यवाणी उत्पन्न करता है, यह नेटवर्क के माध्यम से इनपुट को आगे बढ़ाता है। प्रत्येक परत के लिए, परत का इनपुट पहले एक एफाइन ट्रांसफॉर्मेशन माध्यम से जाता है और फिर सिग्मॉइड फ़ंक्शन माध्यम से पारित किया जाता है ।XWX+bσ(WX+b)

नेटवर्क को प्रशिक्षित करने के लिए, आउटपुट की तुलना लागत फ़ंक्शन ) के माध्यम से अपेक्षित आउटपुट (या लेबल) से की जाती है । संपूर्ण प्रशिक्षण प्रक्रिया का लक्ष्य उस लागत कार्य को कम करना है। ऐसा करने के लिए, ग्रेडिएंट डिसेंट नामक एक तकनीक का प्रदर्शन किया जाता है जो गणना करता है कि हमें और कैसे बदलना चाहिए ताकि लागत कम हो जाए।y^y L(y,y^)=L(y,σ(WX+b))Wb

ग्रेडिएंट डिसेंट को लागत फ़ंक्शन wrt और के व्युत्पन्न की गणना करने की आवश्यकता होती है । ऐसा करने के लिए हमें श्रृंखला नियम लागू करना चाहिए , क्योंकि जिस व्युत्पत्ति की हमें गणना करनी है वह दो कार्यों की एक रचना है। जैसा कि श्रृंखला नियम द्वारा तय किया गया है, हमें सिग्माइड फ़ंक्शन के व्युत्पन्न की गणना करनी चाहिए ।Wb

तंत्रिका नेटवर्क के साथ सिग्मॉइड फ़ंक्शन लोकप्रिय होने का एक कारण यह है कि इसकी व्युत्पत्ति गणना के लिए आसान है


1

सरल शब्दों में:

व्युत्पन्न विशेष इनपुट पर सीखने की न्यूरॉन की क्षमता को दर्शाता है ।

उदाहरण के लिए यदि इनपुट 0 या 1 या -2 है , तो व्युत्पन्न ("सीखने की क्षमता") उच्च है और बैक-प्रचार इस नमूने के लिए नाटकीय रूप से न्यूरॉन के वजन में सुधार करेगा।

दूसरी ओर, यदि इनपुट 20 है , तो व्युत्पन्न 0 के बहुत करीब होगा । इसका मतलब है कि इस नमूने पर बैक-प्रचार इस न्यूरॉन को बेहतर परिणाम देने के लिए "सिखाना" नहीं होगा।

ऊपर की चीजें एकल नमूने के लिए मान्य हैं।

चलो प्रशिक्षण सेट में सभी नमूनों के लिए, बड़ी तस्वीर देखें। यहाँ हमारे पास कई स्थितियाँ हैं:

  • यदि आपके प्रशिक्षण सेट में सभी नमूनों के लिए व्युत्पन्न 0 है और न्यूरॉन हमेशा गलत परिणाम देता है - इसका मतलब है कि न्यूरॉन संतृप्त (गूंगा) है और इसमें सुधार नहीं होगा।
  • यदि आपके प्रशिक्षण सेट में सभी नमूनों के लिए व्युत्पन्न 0 है और न्यूरॉन हमेशा सही परिणाम उत्पन्न करता है - इसका मतलब है कि न्यूरॉन वास्तव में अच्छी तरह से अध्ययन कर रहा है और पहले से ही जितना स्मार्ट हो सकता है (साइड नोट: यह मामला अच्छा है लेकिन यह संभावित ओवरफिटिंग का संकेत दे सकता है, जो अच्छा नहीं है)

  • यदि व्युत्पन्न कुछ नमूनों पर 0 है, तो अन्य नमूनों पर गैर-0 और न्यूरॉन मिश्रित परिणाम उत्पन्न करते हैं - यह दर्शाता है कि यह न्यूरॉन कुछ अच्छा काम कर रहा है और संभवतः आगे के प्रशिक्षण से बेहतर हो सकता है (हालांकि जरूरी नहीं कि यह अन्य न्यूरॉन्स और प्रशिक्षण डेटा पर निर्भर करता है है)

इसलिए, जब आप व्युत्पन्न भूखंड को देख रहे हैं, तो आप देख सकते हैं कि एक विशेष इनपुट को देखते हुए, नए ज्ञान को सीखने और अवशोषित करने के लिए न्यूरॉन कितना तैयार है।


0

आपके द्वारा यहां देखा गया व्युत्पन्न तंत्रिका नेटवर्क में महत्वपूर्ण है। यही कारण है कि आम तौर पर लोग कुछ और पसंद करते हैं जैसे कि रेक्टिफाइड लीनियर यूनिट

क्या आप दो सिरों के लिए व्युत्पन्न ड्रॉप देखते हैं? क्या होगा यदि आपका नेटवर्क बहुत बाईं ओर है, लेकिन इसे दाईं ओर स्थानांतरित करने की आवश्यकता है? सोचिए आप -10.0 पर हैं, लेकिन आप 10.0 चाहते हैं। आपके नेटवर्क के शीघ्र रूप से परिवर्तित होने के लिए ढाल बहुत छोटा होगा। हम इंतजार नहीं करना चाहते, हम जल्दी अभिसरण चाहते हैं। RLU में यह समस्या नहीं है।

हम इस समस्या को " तंत्रिका नेटवर्क संतृप्ति " कहते हैं।

कृपया देखें https://www.quora.com/What-is-special-about-rectifier-neural-units-used-in-NN-learning

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.