जवाबों:
तंत्रिका नेटवर्क शब्दावली में:
उदाहरण: यदि आपके पास 1000 प्रशिक्षण उदाहरण हैं, और आपके बैच का आकार 500 है, तो 1 युग पूरा करने के लिए 2 पुनरावृत्तियां लेंगे।
FYI करें: एक तंत्रिका नेटवर्क को प्रशिक्षित करने के लिए ट्रेडऑफ़ बैच आकार बनाम पुनरावृत्तियों की संख्या
"बैच" शब्द अस्पष्ट है: कुछ लोग इसका उपयोग पूरे प्रशिक्षण सेट को नामित करने के लिए करते हैं, और कुछ लोग इसका उपयोग एक आगे / पिछड़े पास में प्रशिक्षण उदाहरणों की संख्या को संदर्भित करने के लिए करते हैं (जैसा कि मैंने इस उत्तर में किया था)। उस अस्पष्टता से बचने और यह स्पष्ट करने के लिए कि बैच एक आगे / पिछड़े पास में प्रशिक्षण उदाहरणों की संख्या से मेल खाती है, कोई भी मिनी-बैच शब्द का उपयोग कर सकता है ।
युग और पुनरावृत्ति विभिन्न चीजों का वर्णन करते हैं।
एक युग में एल्गोरिथ्म पूरे डेटा सेट को देखने की संख्या का वर्णन करता है । इसलिए, हर बार एल्गोरिथ्म ने डेटासेट में सभी नमूने देखे हैं, एक युग पूरा हो गया है।
एक पुनरावृत्ति एल्गोरिथम के माध्यम से पारित डेटा के एक बैच की संख्या का वर्णन करता है। तंत्रिका नेटवर्क के मामले में, इसका मतलब है कि फॉरवर्ड पास और बैकवर्ड पास । तो, हर बार जब आप एनएन के माध्यम से डेटा का एक बैच पास करते हैं, तो आपने एक पुनरावृति पूरा किया ।
एक उदाहरण यह स्पष्ट कर सकता है।
मान लें कि आपके पास 10 उदाहरणों (या नमूनों) का डेटासेट है। आपके पास 2 का एक बैच आकार है, और आपने निर्दिष्ट किया है कि आप एल्गोरिथ्म को 3 युगों तक चलाना चाहते हैं।
इसलिए, प्रत्येक युग में, आपके पास 5 बैच (10/2 = 5) हैं। प्रत्येक बैच एल्गोरिदम से गुजरता है, इसलिए आपके पास प्रति युग 5 पुनरावृत्तियों हैं। चूंकि आपने 3 युग निर्दिष्ट किए हैं, इसलिए आपके पास प्रशिक्षण के लिए कुल 15 पुनरावृत्तियां (5 * 3 = 15) हैं।
कई तंत्रिका नेटवर्क प्रशिक्षण एल्गोरिदम में तंत्रिका नेटवर्क के लिए निर्धारित संपूर्ण डेटा की कई प्रस्तुतियाँ शामिल हैं। अक्सर, पूरे डेटा सेट की एक एकल प्रस्तुति को "युग" के रूप में जाना जाता है। इसके विपरीत, कुछ एल्गोरिदम तंत्रिका नेटवर्क को एक बार में एक ही मामले में डेटा प्रस्तुत करते हैं।
"इटरेशन" एक बहुत अधिक सामान्य शब्द है, लेकिन जब से आपने इसके बारे में "युगांतर" के साथ एक साथ पूछा, मैं मानता हूं कि आपका स्रोत एक एकल नेटवर्क के लिए एक एकल मामले की प्रस्तुति का उल्लेख कर रहा है।
इन दोनों के बीच अंतर को समझने के लिए आपको ग्रेडिएंट डिसेंट अल्गोरिथम और उसके वेरिएंट को समझना होगा ।
इससे पहले कि मैं वास्तविक उत्तर के साथ शुरुआत करूं, मैं कुछ पृष्ठभूमि तैयार करना चाहूंगा।
एक बैच पूरा डेटासेट है। इसका आकार उपलब्ध डेटासेट में प्रशिक्षण उदाहरणों की कुल संख्या है।
मिनी-बैच आकार एक पास (आगे और पीछे) में सीखने की एल्गोरिथ्म प्रक्रियाओं के उदाहरण हैं।
एक मिनी-बैच , दिए गए मिनी-बैच आकार के डेटासेट का एक छोटा सा हिस्सा है ।
Iterations एल्गोरिथ्म को देखे गए डेटा के बैचों की संख्या है (या केवल डेटासेट पर एल्गोरिथ्म ने कितने पास किए हैं)।
युग एक बार सीखने की एल्गोरिथ्म पूरा डेटासेट देखता है। अब, यह पुनरावृत्तियों की संख्या के बराबर नहीं हो सकता है , क्योंकि डेटासेट को मिनी-बैचों में भी संसाधित किया जा सकता है, संक्षेप में, एकल पास केवल डेटासेट के एक भाग को संसाधित कर सकता है। ऐसे मामलों में, पुनरावृत्तियों की संख्या युगों की संख्या के बराबर नहीं है ।
बैच ढाल वंश के मामले में, पूरे बैच को प्रत्येक प्रशिक्षण पास पर संसाधित किया जाता है। इसलिए, ग्रेडिएंट डीसेंट ऑप्टिमाइज़र का परिणाम मिनी-बैच ग्रैडिएंट डीसेंट की तुलना में चिकनी अभिसरण में होता है, लेकिन इसमें अधिक समय लगता है। यदि यह मौजूद है तो एक बैच खोजने के लिए बैच ढाल वंश की गारंटी है।
स्टोकेस्टिक ढाल वंश मिनी बैच ढाल वंश, जिसमें से एक विशेष मामला है मिनी बैच का आकार है 1 ।
आपके पास एक प्रशिक्षण डेटा है जिसे आप फेरबदल करते हैं और उससे मिनी-बैच उठाते हैं। जब आप एक मिनी-बैच का उपयोग करके अपने वज़न और पूर्वाग्रह को समायोजित करते हैं, तो आपने एक पुनरावृत्ति पूरी कर ली है। एक बार जब आप अपने मिनी-बैचों से बाहर निकल जाते हैं, तो आपने एक युग पूरा कर लिया है। फिर आप अपने प्रशिक्षण डेटा को फिर से फेरबदल करते हैं, अपने मिनी-बैचों को फिर से चुनते हैं, और उन सभी के माध्यम से पुन: प्रसारित करते हैं। वह आपका दूसरा युग होगा।
आमतौर पर, आप नेटवर्क से सीखने के लिए अपने परीक्षण को छोटे बैचों में विभाजित करेंगे, और प्रशिक्षण को अपनी परतों की संख्या के माध्यम से चरण दर चरण आगे बढ़ाते हुए, सभी प्रकार के ढाल-वंश को लागू करेंगे। इन सभी छोटे कदमों को पुनरावृत्तियों कहा जा सकता है ।
एक युग पूरे प्रशिक्षण सेट से मेल खाता है जो एक बार पूरे नेटवर्क से गुजर रहा है। यह सीमित करने के लिए उपयोगी हो सकता है, जैसे कि ओवरफिटिंग से लड़ने के लिए।
एक युग में कुछ पुनरावृत्तियों होते हैं। यही वास्तव में यह 'युग' है। चलो तंत्रिका नेटवर्क को प्रशिक्षित करने के लिए डेटा सेट पर पुनरावृत्तियों की संख्या के रूप में 'युग' को परिभाषित करते हैं।
मेरी समझ में, जब आपको एक एनएन को प्रशिक्षित करने की आवश्यकता होती है, तो आपको बड़े डेटासेट की आवश्यकता होती है जिसमें कई डेटा आइटम शामिल होते हैं। जब एनएन को प्रशिक्षित किया जा रहा है, तो डेटा आइटम एक-एक करके एनएन में जाते हैं, इसे एक पुनरावृत्ति कहा जाता है; जब संपूर्ण डेटासेट गुजरता है, तो इसे युग कहा जाता है।
मेरा मानना है कि पुनरावृत्ति एकल बैच के आगे + बैच के बैकपॉप के बराबर है। युग एक बार संपूर्ण डेटासेट से गुजर रहा है (जैसा कि किसी और ने उल्लेख किया है)।
मुझे लगता है कि तंत्रिका नेटवर्क शब्दावली के संदर्भ में:
चलना (उर्फ कदम ) को परिभाषित करने के लिए , आपको पहले बैच के आकार के बारे में जानना होगा :
बैच का आकार: आप शायद एक ही पास पर सभी प्रशिक्षण उदाहरणों को संसाधित करना पसंद नहीं करेंगे क्योंकि यह अक्षम है और स्मृति की एक बड़ी आवश्यकता है। तो आमतौर पर जो किया जाता है, वह सबटेट्स (यानी, बैच) में प्रशिक्षण के उदाहरणों को विभाजित कर रहा है, चयनित सब्मिट (यानी, बैच) पर एक पास का प्रदर्शन कर रहा है, और फिर बैकप्रॉपैजेशन के माध्यम से नेटवर्क का अनुकूलन कर रहा है। एक सबसेट (यानी, बैच) के भीतर प्रशिक्षण उदाहरणों की संख्या को बैच_साइज कहा जाता है ।
Iteration: (उर्फ प्रशिक्षण कदम) आप जानते हैं कि आपके नेटवर्क को एक युग पूरा करने के लिए एक पास में सभी प्रशिक्षण उदाहरणों पर जाना होगा। लेकिन रुकें! जब आप अपने प्रशिक्षण उदाहरणों को बैचों में विभाजित कर रहे हैं, तो इसका मतलब है कि आप केवल एक बैच (प्रशिक्षण उदाहरणों के एक सबसेट) को एक फॉरवर्ड पास में संसाधित कर सकते हैं, तो अन्य बैचों के बारे में क्या? यह वह जगह है जहाँ शब्द Iteration खेल में आता है:
उदाहरण के लिए, जब आपके पास 1000 प्रशिक्षण उदाहरण हैं और आप 10 के आकार के साथ बैचिंग करना चाहते हैं ; एक युग पूरा करने के लिए आपको 10000/10 = 1000 पुनरावृत्तियों को करना होगा।
आशा है कि यह आपके प्रश्न का उत्तर दे सकता है!
युग प्रशिक्षण के लिए नमूनों के सबसेट का एक पुनरावृत्ति है, उदाहरण के लिए, तटस्थ नेटवर्क में ढाल वंश एल्गोरिथ्म। एक अच्छा संदर्भ है: 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)
कोड को देखो। प्रत्येक युग के लिए, हम बेतरतीब ढंग से ढाल वंश एल्गोरिथ्म के लिए इनपुट का एक सबसेट उत्पन्न करते हैं। पृष्ठ में क्यों प्रभावी है, यह भी समझाया गया है। कृपया देख लीजिये।
संपूर्ण डेटासेट पर एक पूर्ण प्रशिक्षण पास होता है जैसे कि प्रत्येक उदाहरण को एक बार देखा गया हो। इस प्रकार, एक युग एन / बैच आकार प्रशिक्षण पुनरावृत्तियों का प्रतिनिधित्व करता है , जहां एन उदाहरणों की कुल संख्या है।
प्रशिक्षण के दौरान एक मॉडल के वजन का एक अद्यतन। एक पुनरावृत्ति में डेटा के एक बैच पर नुकसान के संबंध में मापदंडों के ग्रेडिएंट्स की गणना होती है ।
बोनस के रूप में:
मॉडल प्रशिक्षण के एक पुनरावृत्ति ( अर्थात् एक क्रमिक अद्यतन) में प्रयुक्त उदाहरणों का समूह ।
बैच आकार भी देखें ।
स्रोत: https://developers.google.com/machine-learning/glossary/
1. ईपॉच 1 पूर्ण चक्र है जहां न्यूरल नेटवर्क ने सभी डेटा को देखा है।
2. हो सकता है कि किसी ने मॉडल को प्रशिक्षित करने के लिए 100,000 चित्र कहे हों, लेकिन मेमोरी स्पेस एक बार में सभी छवियों को संसाधित करने के लिए पर्याप्त नहीं हो सकता है, इसलिए हम मॉडल को बैचों के छोटे हिस्से पर प्रशिक्षण को विभाजित करते हैं। जैसे बैच का आकार 100 है
। 3. हमें कई बैचों का उपयोग करके सभी छवियों को कवर करने की आवश्यकता है। इसलिए हमें सभी 100,000 छवियों को कवर करने के लिए 1000 पुनरावृत्तियों की आवश्यकता होगी। (100 बैच आकार * 1000 पुनरावृत्तियों)
4. एक बार तंत्रिका नेटवर्क पूरे डेटा को देखता है इसे 1 एपोच (बिंदु 1) कहा जाता है। मॉडल को प्रशिक्षित करने के लिए एक से अधिक युगों की आवश्यकता हो सकती है। (हमें 10 युग कहते हैं)।