तंत्रिका नेटवर्क का प्रशिक्षण करते समय युग बनाम उत्तेजना


जवाबों:


574

तंत्रिका नेटवर्क शब्दावली में:

  • एक युग = एक फ़ॉरवर्ड पास और ट्रेनिंग के सभी उदाहरणों में से एक बैकवर्ड पास
  • बैच आकार = एक फॉरवर्ड / बैकवर्ड पास में प्रशिक्षण उदाहरणों की संख्या। बैच आकार जितना अधिक होगा, आपको उतनी अधिक मेमोरी स्पेस की आवश्यकता होगी।
  • की संख्या पुनरावृत्तियों = गुजरता की संख्या, प्रत्येक पास [बैच आकार] उदाहरण के नंबर का उपयोग कर। स्पष्ट होने के लिए, एक पास = एक फॉरवर्ड पास + एक बैकवर्ड पास (हम फॉरवर्ड पास और बैकवर्ड पास को दो अलग-अलग पासों के रूप में नहीं गिनते हैं)।

उदाहरण: यदि आपके पास 1000 प्रशिक्षण उदाहरण हैं, और आपके बैच का आकार 500 है, तो 1 युग पूरा करने के लिए 2 पुनरावृत्तियां लेंगे।

FYI करें: एक तंत्रिका नेटवर्क को प्रशिक्षित करने के लिए ट्रेडऑफ़ बैच आकार बनाम पुनरावृत्तियों की संख्या


"बैच" शब्द अस्पष्ट है: कुछ लोग इसका उपयोग पूरे प्रशिक्षण सेट को नामित करने के लिए करते हैं, और कुछ लोग इसका उपयोग एक आगे / पिछड़े पास में प्रशिक्षण उदाहरणों की संख्या को संदर्भित करने के लिए करते हैं (जैसा कि मैंने इस उत्तर में किया था)। उस अस्पष्टता से बचने और यह स्पष्ट करने के लिए कि बैच एक आगे / पिछड़े पास में प्रशिक्षण उदाहरणों की संख्या से मेल खाती है, कोई भी मिनी-बैच शब्द का उपयोग कर सकता है ।


37
मैं उलझन में हूं। एक से अधिक डेटा पर आप एक से अधिक युगों के लिए प्रशिक्षण क्यों लेंगे? उस पर हावी नहीं होगा?
Soubriquet

29
@Soubriquet तंत्रिका नेटवर्क को आम तौर पर पुनरावृत्त अनुकूलन विधि (ज्यादातर समय, ढाल वंश) का उपयोग करके प्रशिक्षित किया जाता है, जिसे अक्सर अच्छे परिणाम प्राप्त करने के लिए प्रशिक्षण सेट पर कई पास करने की आवश्यकता होती है।
फ्रेंक डर्नोनकोर्ट

6
लेकिन अगर बहुत सारे एफ प्रशिक्षण नमूने हैं, तो $ 1 मिलियन डॉलर का कहना है, क्या सिर्फ एक युग पर्याप्त होगा? यदि प्रशिक्षण सेट बहुत बड़ा है तो लोग आमतौर पर क्या करते हैं? बस प्रशिक्षण सेट को बैचों में विभाजित करें और सिर्फ एक युग का प्रदर्शन करें?
पिकाचूचमलेन

5
@pikachuchameleon यह कार्य की जटिलता पर निर्भर करता है: एक युग वास्तव में कुछ मामलों में पर्याप्त हो सकता है।
फ्रेंक डेर्नोनकोर्ट

9
@MaxPower - आमतौर पर, प्रत्येक पुनरावृत्ति के बाद कदम उठाया जाता है , जैसा कि फ्रेंक डर्नोनकोर्ट का जवाब निहित है; बैकवर्ड पास की जानकारी के साथ हम यही करते हैं। के साथ एक मिनी बैच ढाल वंश में मीटर युग प्रति पुनरावृत्तियों, हम अद्यतन मापदंडों m युग प्रति बार।
डेन मैकिनले

142

युग और पुनरावृत्ति विभिन्न चीजों का वर्णन करते हैं।


युग

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

यात्रा

एक पुनरावृत्ति एल्गोरिथम के माध्यम से पारित डेटा के एक बैच की संख्या का वर्णन करता है। तंत्रिका नेटवर्क के मामले में, इसका मतलब है कि फॉरवर्ड पास और बैकवर्ड पास । तो, हर बार जब आप एनएन के माध्यम से डेटा का एक बैच पास करते हैं, तो आपने एक पुनरावृति पूरा किया ।


उदाहरण

एक उदाहरण यह स्पष्ट कर सकता है।

मान लें कि आपके पास 10 उदाहरणों (या नमूनों) का डेटासेट है। आपके पास 2 का एक बैच आकार है, और आपने निर्दिष्ट किया है कि आप एल्गोरिथ्म को 3 युगों तक चलाना चाहते हैं।

इसलिए, प्रत्येक युग में, आपके पास 5 बैच (10/2 = 5) हैं। प्रत्येक बैच एल्गोरिदम से गुजरता है, इसलिए आपके पास प्रति युग 5 पुनरावृत्तियों हैं। चूंकि आपने 3 युग निर्दिष्ट किए हैं, इसलिए आपके पास प्रशिक्षण के लिए कुल 15 पुनरावृत्तियां (5 * 3 = 15) हैं।


15
क्या आप बता सकते हैं कि क्या वजन हर युग के बाद या हर पुनरावृत्ति के बाद अपडेट किया जाता है?
गीक

7
@ InheritedGeek प्रत्येक बैच epoch या पुनरावृत्ति नहीं के बाद वजन अद्यतन कर रहे हैं।
thisisbhavin

2
@bhavindhedhi 1 बैच = 1 पुनरावृति, है ना?
मधुमक्खी

2
@ नहीं, उदाहरण के लिए १०००० प्रशिक्षण नमूने और प्रति बैच १००० नमूने लें, फिर १ युग पूरा करने के लिए १० पुनरावृत्तियाँ होंगी।
Thisisbhavin

4
@ भावविंधी मुझे लगता है कि मधुमक्खी क्या पूछ रही थी कि 1000 बैचों के साथ कुल 10000 नमूनों के आपके उदाहरण में, आपके पास प्रभावी रूप से 10 कुल बैच हैं, जो 10 पुनरावृत्तियों के बराबर है। मुझे लगता है कि समझ में आता है, लेकिन निश्चित नहीं है कि यह व्याख्या करने का एक उचित तरीका है।
माइकल ड्यू

24

कई तंत्रिका नेटवर्क प्रशिक्षण एल्गोरिदम में तंत्रिका नेटवर्क के लिए निर्धारित संपूर्ण डेटा की कई प्रस्तुतियाँ शामिल हैं। अक्सर, पूरे डेटा सेट की एक एकल प्रस्तुति को "युग" के रूप में जाना जाता है। इसके विपरीत, कुछ एल्गोरिदम तंत्रिका नेटवर्क को एक बार में एक ही मामले में डेटा प्रस्तुत करते हैं।

"इटरेशन" एक बहुत अधिक सामान्य शब्द है, लेकिन जब से आपने इसके बारे में "युगांतर" के साथ एक साथ पूछा, मैं मानता हूं कि आपका स्रोत एक एकल नेटवर्क के लिए एक एकल मामले की प्रस्तुति का उल्लेख कर रहा है।


3
महान, क्या आप एक प्रकाशन का उल्लेख कर सकते हैं जहां यह विस्तृत है?
एलेक्स

17

इन दोनों के बीच अंतर को समझने के लिए आपको ग्रेडिएंट डिसेंट अल्गोरिथम और उसके वेरिएंट को समझना होगा ।

इससे पहले कि मैं वास्तविक उत्तर के साथ शुरुआत करूं, मैं कुछ पृष्ठभूमि तैयार करना चाहूंगा।

एक बैच पूरा डेटासेट है। इसका आकार उपलब्ध डेटासेट में प्रशिक्षण उदाहरणों की कुल संख्या है।

मिनी-बैच आकार एक पास (आगे और पीछे) में सीखने की एल्गोरिथ्म प्रक्रियाओं के उदाहरण हैं।

एक मिनी-बैच , दिए गए मिनी-बैच आकार के डेटासेट का एक छोटा सा हिस्सा है ।

Iterations एल्गोरिथ्म को देखे गए डेटा के बैचों की संख्या है (या केवल डेटासेट पर एल्गोरिथ्म ने कितने पास किए हैं)।

युग एक बार सीखने की एल्गोरिथ्म पूरा डेटासेट देखता है। अब, यह पुनरावृत्तियों की संख्या के बराबर नहीं हो सकता है , क्योंकि डेटासेट को मिनी-बैचों में भी संसाधित किया जा सकता है, संक्षेप में, एकल पास केवल डेटासेट के एक भाग को संसाधित कर सकता है। ऐसे मामलों में, पुनरावृत्तियों की संख्या युगों की संख्या के बराबर नहीं है ।

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

स्टोकेस्टिक ढाल वंश मिनी बैच ढाल वंश, जिसमें से एक विशेष मामला है मिनी बैच का आकार है 1

बैच ढाल वंश बनाम मिनी-बैच ढाल वंश

बैच, स्टोचस्टिक और मिनी-बैच ग्रेडिएंट अवरोही की तुलना।


12

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


क्या इसे क्रॉस वेलिडेशन से जोड़ा जा सकता है?
sk

8

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

एक युग पूरे प्रशिक्षण सेट से मेल खाता है जो एक बार पूरे नेटवर्क से गुजर रहा है। यह सीमित करने के लिए उपयोगी हो सकता है, जैसे कि ओवरफिटिंग से लड़ने के लिए।


7

एक युग में कुछ पुनरावृत्तियों होते हैं। यही वास्तव में यह 'युग' है। चलो तंत्रिका नेटवर्क को प्रशिक्षित करने के लिए डेटा सेट पर पुनरावृत्तियों की संख्या के रूप में 'युग' को परिभाषित करते हैं।


4
युग एक संख्या नहीं है ... यह रीफ़्रेशिंग के साथ कर सकता है, मुझे लगता है।
निकाना रेक्लाविक्स

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

7

मेरी समझ में, जब आपको एक एनएन को प्रशिक्षित करने की आवश्यकता होती है, तो आपको बड़े डेटासेट की आवश्यकता होती है जिसमें कई डेटा आइटम शामिल होते हैं। जब एनएन को प्रशिक्षित किया जा रहा है, तो डेटा आइटम एक-एक करके एनएन में जाते हैं, इसे एक पुनरावृत्ति कहा जाता है; जब संपूर्ण डेटासेट गुजरता है, तो इसे युग कहा जाता है।


6

मेरा मानना ​​है कि पुनरावृत्ति एकल बैच के आगे + बैच के बैकपॉप के बराबर है। युग एक बार संपूर्ण डेटासेट से गुजर रहा है (जैसा कि किसी और ने उल्लेख किया है)।


5

मुझे लगता है कि तंत्रिका नेटवर्क शब्दावली के संदर्भ में:

  • युग: जब आपका नेटवर्क पूरा प्रशिक्षण सेट (यानी, प्रत्येक प्रशिक्षण उदाहरण के लिए एक बार) समाप्त होता है, तो यह एक युग पूरा करता है

चलना (उर्फ कदम ) को परिभाषित करने के लिए , आपको पहले बैच के आकार के बारे में जानना होगा :

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

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

    • परिभाषा: फॉरवर्ड पास की संख्या (आपके द्वारा बनाए गए बैचों की संख्या) जो आपके नेटवर्क को एक युग पूरा करने के लिए करना है (यानी, सभी प्रशिक्षण उदाहरणों पर जा रहा है) Iteration कहलाता है ।

उदाहरण के लिए, जब आपके पास 1000 प्रशिक्षण उदाहरण हैं और आप 10 के आकार के साथ बैचिंग करना चाहते हैं ; एक युग पूरा करने के लिए आपको 10000/10 = 1000 पुनरावृत्तियों को करना होगा।

आशा है कि यह आपके प्रश्न का उत्तर दे सकता है!


3

युग प्रशिक्षण के लिए नमूनों के सबसेट का एक पुनरावृत्ति है, उदाहरण के लिए, तटस्थ नेटवर्क में ढाल वंश एल्गोरिथ्म। एक अच्छा संदर्भ है: http://neuralnetworksanddeeplearning.com/chap1.html

ध्यान दें कि पृष्ठ में ग्रेडिएंट डिसेंट अल्गोरिथम के लिए एक कोड है जो युग का उपयोग करता है

def SGD(self, training_data, epochs, mini_batch_size, eta,
        test_data=None):
    """Train the neural network using mini-batch stochastic
    gradient descent.  The "training_data" is a list of tuples
    "(x, y)" representing the training inputs and the desired
    outputs.  The other non-optional parameters are
    self-explanatory.  If "test_data" is provided then the
    network will be evaluated against the test data after each
    epoch, and partial progress printed out.  This is useful for
    tracking progress, but slows things down substantially."""
    if test_data: n_test = len(test_data)
    n = len(training_data)
    for j in xrange(epochs):
        random.shuffle(training_data)
        mini_batches = [
            training_data[k:k+mini_batch_size]
            for k in xrange(0, n, mini_batch_size)]
        for mini_batch in mini_batches:
            self.update_mini_batch(mini_batch, eta)
        if test_data:
            print "Epoch {0}: {1} / {2}".format(
                j, self.evaluate(test_data), n_test)
        else:
            print "Epoch {0} complete".format(j)

कोड को देखो। प्रत्येक युग के लिए, हम बेतरतीब ढंग से ढाल वंश एल्गोरिथ्म के लिए इनपुट का एक सबसेट उत्पन्न करते हैं। पृष्ठ में क्यों प्रभावी है, यह भी समझाया गया है। कृपया देख लीजिये।


1

युग

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

यात्रा

प्रशिक्षण के दौरान एक मॉडल के वजन का एक अद्यतन। एक पुनरावृत्ति में डेटा के एक बैच पर नुकसान के संबंध में मापदंडों के ग्रेडिएंट्स की गणना होती है ।

बोनस के रूप में:

जत्था

मॉडल प्रशिक्षण के एक पुनरावृत्ति ( अर्थात् एक क्रमिक अद्यतन) में प्रयुक्त उदाहरणों का समूह ।

बैच आकार भी देखें ।

स्रोत: https://developers.google.com/machine-learning/glossary/


0

1. ईपॉच 1 पूर्ण चक्र है जहां न्यूरल नेटवर्क ने सभी डेटा को देखा है।
2. हो सकता है कि किसी ने मॉडल को प्रशिक्षित करने के लिए 100,000 चित्र कहे हों, लेकिन मेमोरी स्पेस एक बार में सभी छवियों को संसाधित करने के लिए पर्याप्त नहीं हो सकता है, इसलिए हम मॉडल को बैचों के छोटे हिस्से पर प्रशिक्षण को विभाजित करते हैं। जैसे बैच का आकार 100 है
। 3. हमें कई बैचों का उपयोग करके सभी छवियों को कवर करने की आवश्यकता है। इसलिए हमें सभी 100,000 छवियों को कवर करने के लिए 1000 पुनरावृत्तियों की आवश्यकता होगी। (100 बैच आकार * 1000 पुनरावृत्तियों)
4. एक बार तंत्रिका नेटवर्क पूरे डेटा को देखता है इसे 1 एपोच (बिंदु 1) कहा जाता है। मॉडल को प्रशिक्षित करने के लिए एक से अधिक युगों की आवश्यकता हो सकती है। (हमें 10 युग कहते हैं)।

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