तंत्रिका नेटवर्क में बैच सीखने की विधि में वजन कैसे अपडेट किया जाता है?


15

क्या कोई मुझे बता सकता है कि मुझे बैच विधि का उपयोग करके एक तंत्रिका नेटवर्क कैसे बनाया जाना चाहिए?

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

मैंने यह भी कहीं पढ़ा है कि, बैच विधि ऑनलाइन विधि की तरह है, लेकिन अंतर होने के साथ ही प्रशिक्षण सेट में सभी नमूनों के लिए त्रुटियों को योग करने की आवश्यकता होती है और फिर इसका औसत लेते हैं और फिर उसी तरह वजन को अपडेट करने के लिए उपयोग करते हैं एक ऑनलाइन तरीके से करता है (अंतर सिर्फ इतना औसत है) इस तरह है:

for epoch=1 to numberOfEpochs

   for all i samples in training set

         calculate the errors in output layer
         SumOfErrors += (d[i] - y[i])
   end

   errorAvg = SumOfErrors / number of Samples in training set

   now update the output layer with this error
   update all other previous layers

   go to the next epoch

end
  • इनमें से कौन सा सही मायने में बैच विधि का सही रूप है?
  • पहले एक के मामले में, सभी डेल्टा भार को एक बड़ी संख्या में जमा नहीं करता है?

1
"सही" विधि संदर्भ पर निर्भर करती है। यह पता चला है कि कई मामलों में, केवल एक बार प्रति सप्ताह वेट को अपडेट करना स्टोचस्टिक अपडेट (प्रत्येक उदाहरण के बाद वेट को अपडेट करना) की तुलना में बहुत अधिक धीरे-धीरे परिवर्तित होगा। मैं इसमें एक आम सहमति जोड़ूंगा कि आप आम तौर पर बैच अपडेट के किसी न किसी रूप का उपयोग करना चाहते हैं, लेकिन अधिक बार 1x प्रति एपिसोड से अधिक।
ताहलोर

जवाबों:


9

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

इसकी पुष्टि करने के लिए, पहले अद्यतन नियम को याद करें:

Δwij=αEwij

μEnnμEnw

Δwij=α(nμ)wij=αnμwij

ΔwΔw


1
क्या मिनी-बैच ग्रेडिएंट एक ही बैच-ग्रेडिएंट डीसेंट हैं? मैं यहाँ खो गया हूँ! यदि नहीं तो इनमे क्या अंतर है? मुझे सही करें यदि मैं गलत हूं, बैच मोड में, पूरे डेटासेट को बैचों में पढ़ने की आवश्यकता है, ग्रेडिएंट्स की गणना की जाती है, और जब सभी पढ़े जाते हैं, तो वे औसतन होते हैं और फिर मापदंडों को अपडेट किया जाता है, जबकि, मिनी-बैच में, प्रत्येक बैच को पढ़ा जाता है, ग्रेडिएंट्स की गणना की जाती है और फिर मापदंडों को अपडेट किया जाता है, और फिर अगले मिनी बैच को तब तक पढ़ा जाता है जब तक कि एक युग समाप्त न हो जाए।
राका

1
यह आम तौर पर दी गई परिभाषा है: एक समय में प्रशिक्षण डेटा के एक सबसेट का उपयोग करके अद्यतन पैरामीटर। (कुछ विधियाँ ऐसी हैं जिनमें मिनी-बैचों को यादृच्छिक रूप से अभिसरण तक नमूना किया जाता है, अर्थात बैच को एक युगांतर में फंसाया नहीं जाएगा।) देखें कि क्या यह सहायक है।
शॉन ईस्टर

0

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


धन्यवाद, लेकिन अगर वे वास्तव में एक ही हैं, तो प्रत्येक पैटर्न के लिए संचयी अपडेट को बनाए रखने पर इतनी मेमोरी बर्बाद करने से क्यों परेशान होते हैं, जब हम केवल उन त्रुटियों को योग कर सकते हैं जो केवल एक साधारण चर होगा?
रीका
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.