স্নায়ুবহুল নেটওয়ার্কগুলির প্রশিক্ষণ দেওয়ার সময় এপোক বনাম Iteration


উত্তর:


574

নিউরাল নেটওয়ার্ক পরিভাষায়:

  • এক যুগ = একটি ফরোয়ার্ড পাস এবং সমস্ত প্রশিক্ষণের উদাহরণগুলির একটি পিছনে পাস
  • ব্যাচের আকার = এক ফরোয়ার্ড / পিছিয়ে পাসে প্রশিক্ষণের উদাহরণগুলির সংখ্যা। ব্যাচের আকার যত বেশি হবে আপনার মেমরির আরও বেশি স্থানের প্রয়োজন হবে।
  • সংখ্যা পুনরাবৃত্তিও = পাস সংখ্যা, প্রতিটি পাস [ব্যাচ SIZE] উদাহরণ সংখ্যা ব্যবহার করে। পরিষ্কার হওয়ার জন্য, একটি পাস = একটি ফরোয়ার্ড পাস + একটি পশ্চাৎ পাস (আমরা দুটি আলাদা পাস হিসাবে ফরোয়ার্ড পাস এবং পিছনের পাস গণনা করি না)।

উদাহরণ: আপনার যদি 1000 টি প্রশিক্ষণের উদাহরণ থাকে এবং আপনার ব্যাচের আকার 500 হয় তবে 1 যুগটি শেষ করতে এটি 2 টি পুনরাবৃত্তি গ্রহণ করবে।

এফওয়াইআই: ট্রেড অফ ব্যাচের আকার বনাম একটি নিউরাল নেটওয়ার্ক প্রশিক্ষণের জন্য পুনরাবৃত্তির সংখ্যা


"ব্যাচ" শব্দটি অস্পষ্ট: কিছু লোক এটি পুরো প্রশিক্ষণের সেটকে মনোনীত করতে ব্যবহার করে এবং কিছু লোক এটি একটি ফরোয়ার্ড / পশ্চাৎপদ পাস (যেমন আমি এই উত্তরে করেছি) এর প্রশিক্ষণের উদাহরণগুলির সংখ্যা উল্লেখ করতে ব্যবহার করে। এই অস্পষ্টতা এড়ানোর জন্য এবং ব্যাচটি একটি ফরোয়ার্ড / পশ্চাৎপদে পাসের প্রশিক্ষণের উদাহরণগুলির সাথে মিলে যায় তা পরিষ্কার করতে, মিনি-ব্যাচ শব্দটি ব্যবহার করতে পারেন ।


37
আমি বিভ্রান্ত কেন আপনি একাধিক যুগের জন্য প্রশিক্ষণ করবেন - সমস্ত ডেটাতে একাধিকবার? ওভারফিটিংয়ে নেতৃত্ব দেবে না?
সৌব্রুইকেট

29
@ সৌব্রাইকেট নিউরাল নেটওয়ার্কগুলি সাধারণত পুনরাবৃত্ত অপটিমাইজেশন পদ্ধতি (বেশিরভাগ সময়, গ্রেডিয়েন্ট বংশোদ্ভূত) ব্যবহার করে প্রশিক্ষণ দেওয়া হয়, যা ভাল ফলাফল অর্জনের জন্য প্রায়শই প্রশিক্ষণের সেটটিতে বেশ কয়েকটি পাস করতে হয়।
ফ্রাঙ্ক ডারননকোর্ট

6
তবে যদি প্রচুর চ প্রশিক্ষণের নমুনা থাকে তবে বলুন $ 1 $ মিলিয়ন, কেবলমাত্র একটি যুগের পক্ষে যথেষ্ট হবে? প্রশিক্ষণের সেটটি খুব বিশাল হলে লোকেরা সাধারণত কী করবে? প্রশিক্ষণ সেটগুলিকে কেবল ব্যাচগুলিতে বিভক্ত করুন এবং কেবল একটি যুগের সম্পাদন করবেন?
পিকছুচামিলিয়ন

5
@ পিকাছুচামিলিওন এটি কার্য জটিলতার উপর নির্ভর করে: কিছু কিছু ক্ষেত্রে একটি যুগই সত্যই যথেষ্ট হতে পারে।
ফ্রাঙ্ক ডারননকোর্ট

9
@ ম্যাক্সপাওয়ার - সাধারণত, প্রতিটি পুনরাবৃত্তির পরে পদক্ষেপ নেওয়া হয় , যেমন ফ্রাঙ্ক ডারনকোর্টের উত্তর ইঙ্গিত করে; পিছনের পাশ থেকে প্রাপ্ত তথ্য দিয়ে আমরা এটিই করি। প্রতি যুগে মি পুনরাবৃত্তি সহ একটি মিনি-ব্যাচের গ্রেডিয়েন্ট বংশোদ্ভূতিতে , আমরা প্রতি যুগের পরে প্যারামিটারগুলি m বার আপডেট করি ।
ডান ম্যাকিন্লে

142

যুগ এবং পুনরাবৃত্তি বিভিন্ন জিনিস বর্ণনা করে।


কাল

একটি যুগের সময় অ্যালগরিদম পুরো ডেটা সেটটি দেখে তার সংখ্যা বর্ণনা করে । সুতরাং, প্রত্যেকবার অ্যালগরিদম ডেটাসেটে সমস্ত নমুনা দেখেছে, একটি যুগ শেষ হয়েছে।

পুনরাবৃত্তির

একটি পুনরাবৃত্তির দ্বারা অ্যালগরিদম দিয়ে ডেটা ব্যাচটি কতবার পাস হয়েছে তার সংখ্যা বর্ণনা করে । নিউরাল নেটওয়ার্কগুলির ক্ষেত্রে, এর অর্থ ফরওয়ার্ড পাস এবং পিছনের পাস । সুতরাং, যতবারই আপনি এনএন এর মাধ্যমে একটি ব্যাচ ডেটা পাস করবেন, আপনি একটি পুনরাবৃত্তি সম্পন্ন করেছেন ।


উদাহরণ

একটি উদাহরণ এটি পরিষ্কার করতে পারে।

বলুন আপনার কাছে 10 টি উদাহরণের (বা নমুনা) ডেটাসেট রয়েছে। আপনার ব্যাচের আকার 2 টি এবং আপনি নির্ধারণ করেছেন যে আপনি চাইছেন অ্যালগরিদমটি 3 যুগের জন্য চালানো।

অতএব, প্রতিটি যুগে আপনার 5 টি ব্যাচ থাকে (10/2 = 5)। প্রতিটি ব্যাচ অ্যালগরিদম দিয়ে যায়, অতএব আপনার কাছে প্রতি যুগের জন্য 5 টি পুনরাবৃত্তি রয়েছে। যেহেতু আপনি 3 টি যুগকে নির্দিষ্ট করেছেন, তাই প্রশিক্ষণের জন্য আপনার কাছে মোট 15 টি পুনরাবৃত্তি (5 * 3 = 15) রয়েছে।


15
আপনি কি দয়া করে ব্যাখ্যা করতে পারেন যে প্রতি যুগের পরে বা প্রতিটি পুনরাবৃত্তির পরে ওজন আপডেট করা হয়?
গিক ইনহেরিটেড

7
@ ইনিরিটেডগিক ওজন আপডেট করা হবে প্রতিটি ব্যাচের যুগ বা পুনরাবৃত্তির পরে নয়।
thisisbhain

2
@ ভাবিন্দেদী 1 ব্যাচ = 1 পুনরাবৃত্তি, তাই না?
মৌমাছি

2
@ বি না, উদাহরণস্বরূপ, প্রতি ব্যাচে 10000 প্রশিক্ষণের নমুনা এবং 1000 নমুনাগুলি নিন তবে 1 যুগটি শেষ করতে 10 টি পুনরাবৃত্তি লাগবে।
thisisbhavin

4
@ ভাবীন্ধেদি আমি মনে করি মৌমাছি যা জিজ্ঞাসা করেছিল তা হ'ল আপনার ব্যাচ প্রতি ১০০০ সহ মোট ১০০০০০ মোট নমুনার উদাহরণে আপনার কাছে কার্যকরভাবে 10 টি মোট ব্যাচ রয়েছে যা 10 টি পুনরাবৃত্তির সমান। আমি মনে করি এটি বোধগম্য, তবে এটির ব্যাখ্যা করার উপযুক্ত উপায় কিনা তা নিশ্চিত নয়।
মাইকেল ডু

24

অনেক নিউরাল নেটওয়ার্ক ট্রেনিং অ্যালগরিদমে নিউরাল নেটওয়ার্কে সেট সম্পূর্ণ ডেটার একাধিক উপস্থাপনা করা জড়িত। প্রায়শই পুরো ডেটা সেটের একক উপস্থাপনাটিকে "যুগ" হিসাবে উল্লেখ করা হয়। বিপরীতে, কিছু অ্যালগরিদমগুলি নিউরাল নেটওয়ার্কে ডেটা একসাথে একক ক্ষেত্রে উপস্থাপন করে।

"আইট্রেশন" একটি আরও সাধারণ শব্দ, তবে যেহেতু আপনি "মহাকাশ" এর সাথে একত্রে এটি সম্পর্কে জিজ্ঞাসা করেছিলেন, তাই আমি ধরে নিয়েছি যে আপনার উত্সটি নিউরাল নেটওয়ার্কে একটি একক কেস উপস্থাপনার কথা উল্লেখ করছে।


3
দুর্দান্ত, আপনি কি এমন কোনও প্রকাশনাকে উল্লেখ করতে পারেন যেখানে এটি বিস্তারিত?
অ্যালেক্স

17

এগুলির মধ্যে পার্থক্য বুঝতে আপনার অবশ্যই গ্রেডিয়েন্ট বংশদ্ভুত অ্যালগরিদম এবং এর রূপগুলি বুঝতে হবে ।

আসল উত্তরটি শুরু করার আগে আমি কিছু পটভূমি তৈরি করতে চাই।

একটি ব্যাচ সম্পূর্ণ ডেটাসেট t এটির আকারটি উপলব্ধ ডেটাসেটের মোট প্রশিক্ষণের উদাহরণ।

মিনি ব্যাচের আকার হ'ল একক পাসে (এগিয়ে এবং পিছনে) শেখার অ্যালগরিদম প্রক্রিয়াগুলির উদাহরণগুলির সংখ্যা।

একটি মিনি-ব্যাচ প্রদত্ত মিনি-ব্যাচের আকারের ডেটাসেটের একটি ছোট্ট অংশ ।

পুনরাবৃত্তিও অ্যালগরিদম দেখেনি ডেটার ব্যাচ সংখ্যা (বা শুধু পাস অ্যালগরিদম ডেটা সেটটি সম্পন্ন করেছেন নম্বর)।

শিখানো অ্যালগরিদম সম্পূর্ণ ডেটাসেট দেখায় এমন সময় হল ইপাকস । এখন, এটি পুনরাবৃত্তির সংখ্যার সমান নাও হতে পারে , যেহেতু ডেটাসেটটি মিনি-ব্যাচেও প্রক্রিয়াজাত করা যায়, সংক্ষেপে, একটি একক পাস ডেটাসেটের কেবলমাত্র একটি অংশকেই প্রক্রিয়া করতে পারে। এই জাতীয় ক্ষেত্রে, পুনরাবৃত্তির সংখ্যা ইওপসের সংখ্যার সমান নয় ।

ব্যাচ গ্রেডিয়েন্ট বংশদ্ভুত ক্ষেত্রে, প্রতিটি ব্যাচ প্রতিটি প্রশিক্ষণ পাসের উপর প্রক্রিয়া করা হয়। অতএব, গ্রেডিয়েন্ট বংশোদ্ভূত অপ্টিমাইজারটি মিনি-ব্যাচের গ্রেডিয়েন্ট বংশোদ্ভুতের তুলনায় মসৃণ সংশ্লেষণের ফলস্বরূপ, তবে এটি আরও সময় নেয়। ব্যাচ গ্রেডিয়েন্ট বংশোদ্ভূত যদি এটি বিদ্যমান থাকে তবে সর্বোত্তম সন্ধানের গ্যারান্টিযুক্ত।

স্টচাস্টিক গ্রেডিয়েন্ট বংশদ্ভুত মিনি- ব্যাচ গ্রেডিয়েন্ট বংশদ্ভুত যা একটি বিশেষ ক্ষেত্রে দেখা যায় ক্ষুদ্র-ব্যাচ আকার হয় 1

মিনি ব্যাচের গ্রেডিয়েন্ট বংশোদ্ভূত বনাম গ্রেডিয়েন্ট বংশোদ্ভূত

ব্যাচ, স্টোকাস্টিক এবং মিনি-ব্যাচের গ্রেডিয়েন্ট ডাউন্টের তুলনা।


12

আপনার কাছে একটি প্রশিক্ষণের ডেটা রয়েছে যা আপনি এলোমেলো করে এবং এ থেকে মিনি-ব্যাচগুলি বাছাই করেন। যখন আপনি একটি মিনি ব্যাচ ব্যবহার করে আপনার ওজন এবং বায়াসগুলি সামঞ্জস্য করেন, আপনি একটি পুনরাবৃত্তি সম্পন্ন করেছেন। আপনি যখন আপনার মিনি-ব্যাচগুলি শেষ করে ফেলেন, আপনি একটি যুগ শেষ করবেন। তারপরে আপনি আবার আপনার প্রশিক্ষণের ডেটা বদলে ফেলুন, আবার আপনার মিনি-ব্যাচগুলি বাছাই করুন এবং সেগুলির মাধ্যমে আবারও পুনরাবৃত্তি করুন। এটি আপনার দ্বিতীয় যুগ হবে।


এটি ক্রস বৈধতার সাথে সংযুক্ত করা যেতে পারে?
sk

8

সাধারণত, আপনি নেটওয়ার্কটি থেকে শেখার জন্য আপনার পরীক্ষার সেটটিকে ছোট ছোট ব্যাচে বিভক্ত করবেন এবং প্রশিক্ষণটি আপনার স্তরগুলির ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে নামিয়ে প্রয়োগ করুন applying এই সমস্ত ছোট পদক্ষেপকে পুনরাবৃত্তি বলা যেতে পারে ।

একটি যুগটি পুরো নেটওয়ার্কের মধ্যে দিয়ে একবারে পুরো প্রশিক্ষণের সেটটির সাথে মিল রাখে । এটি সীমাবদ্ধ করার জন্য দরকারী হতে পারে, উদ্বিগ্নতার সাথে লড়াই করা।


7

একটি যুগে কয়েকটি পুনরাবৃত্তি থাকে। এটাই আসলে এই 'যুগ'। নিউরাল নেটওয়ার্ক প্রশিক্ষণের জন্য ডেটা সেটের উপরে পুনরাবৃত্তির সংখ্যা হিসাবে 'মহাকাশ' সংজ্ঞায়িত করা যাক।


4
যুগান্তকারী একটি সংখ্যা ... এই রিফ্রেশ সঙ্গে কাজ করতে পারে না, আমি মনে করি।
নিকানা রেক্লাওয়াইক্স

ডাউনভোটেড কারণ এটি ভুল: একটি মহাকাশ হ'ল এপিসোড বা ব্যাচের সংখ্যা যা মডেল একবারে প্রশিক্ষণের সমস্ত ডেটা দেখেছিল।
অ্যালেন

7

আমার বোঝার জন্য, যখন আপনাকে এনএন প্রশিক্ষণ দেওয়ার দরকার হয় তখন আপনার অনেকগুলি ডেটা আইটেম জড়িত একটি বড় ডেটাসেটের প্রয়োজন। যখন এনএনকে প্রশিক্ষণ দেওয়া হয়, তখন ডেটা আইটেমগুলি এনএন-এ একে একে যায়, তাকে পুনরাবৃত্তি বলে; পুরো ডেটাসেটটি যখন যায় তখন একে বলা হয় মহাকাব্য।


6

আমি বিশ্বাস করি যে পুনরাবৃত্তিটি ব্যাচ এসজিডিতে একক ব্যাচের ফরোয়ার্ড + ব্যাকপ্রপের সমতুল্য। মহাকাশটি একবারে পুরো ডেটাসেটের মধ্য দিয়ে যাচ্ছে (অন্য কেউ উল্লিখিত হিসাবে)।


5

নিউরাল নেটওয়ার্ক পরিভাষার প্রসঙ্গে আমার ধারণা:

  • পর্ব: আপনার নেটওয়ার্কটি যখন পুরো প্রশিক্ষণ সেটটি (যেমন, প্রতিটি প্রশিক্ষণের জন্য একবার) একবারের উপরে চলে যায়, তখন এটি একটি যুগ পূর্ণ করে

পুনরাবৃত্তি (ওরফে পদক্ষেপ ) সংজ্ঞায়িত করতে , আপনাকে প্রথমে ব্যাচের আকার সম্পর্কে জানতে হবে :

  • ব্যাচের আকার: আপনি সম্ভবত পুরো প্রশিক্ষণের উদাহরণগুলি এক ফরোয়ার্ড পাসে প্রক্রিয়া করতে পছন্দ করবেন না কারণ এটি অদক্ষ এবং মেমরির একটি বিশাল চুক্তির প্রয়োজন। সুতরাং সাধারণত যা করা হয় তা প্রশিক্ষণ ইনস্ট্যান্টগুলি উপ-বিভাগগুলিতে বিভক্ত করা হয় (অর্থাত্ ব্যাচগুলি), নির্বাচিত সাবসেটের (অর্থাৎ ব্যাচ) একটি পাস সম্পাদন করে এবং তারপরে ব্যাকপ্রোপ্যাগেশনের মাধ্যমে নেটওয়ার্কটি অনুকূল করা। সাবসেটের (যেমন, ব্যাচ) মধ্যে প্রশিক্ষণের উদাহরণগুলির সংখ্যাটিকে ব্যাচ_সাইজ বলা হয়

  • স্বরলিপি: (ওরফে প্রশিক্ষণের পদক্ষেপ) আপনি জানেন যে কোনও এক যুগ শেষ করার জন্য আপনার নেটওয়ার্ককে সমস্ত প্রশিক্ষণ দৃষ্টান্ত এক পাসে যেতে হবে। কিন্তু অপেক্ষা করো! আপনি যখন নিজের প্রশিক্ষণের উদাহরণগুলি ব্যাচে বিভক্ত করছেন, তার অর্থ আপনি কেবল একটি ফরোয়ার্ড পাসে একটি ব্যাচ (প্রশিক্ষণের উদাহরণগুলির একটি উপসেট) প্রসেস করতে পারেন , তবে অন্যান্য ব্যাচগুলির কী হবে? এখানেই Iteration শব্দটি কার্যকর হয়:

    • সংজ্ঞা: ফরোয়ার্ড পাসের সংখ্যা (আপনি তৈরি করেছেন এমন ব্যাচের সংখ্যা) যা আপনার নেটওয়ার্ককে একটি যুগ পূর্বে সম্পন্ন করতে হয় (অর্থাত্, সমস্ত প্রশিক্ষণের উদাহরণ দিয়ে যাওয়া) তাকে আইট্রেশন বলে

উদাহরণস্বরূপ, যখন আপনার 1000 টি প্রশিক্ষণের উদাহরণ রয়েছে এবং আপনি 10 টি আকারের সাথে ব্যাচিং করতে চান ; একটি যুগ শেষ করতে আপনাকে 10000/10 = 1000 পুনরাবৃত্তি করতে হবে।

আশা করি এটি আপনার প্রশ্নের উত্তর দিতে পারে!


3

মহাকাশ প্রশিক্ষণের জন্য নমুনার সাবসেটের একটি পুনরাবৃত্তি, উদাহরণস্বরূপ, নিরপেক্ষ নেটওয়ার্কে গ্রেডিয়েন্ট বংশদ্ভুত অ্যালগরিদম। একটি ভাল রেফারেন্সটি হ'ল: http://neuranetworksandDPlearning.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.Eopch 1 সম্পূর্ণ চক্র যেখানে নিউরাল নেটওয়ার্ক তার সমস্ত ডেটা দেখে ফেলেছে।
২. মডেলটি প্রশিক্ষণের জন্য কেউ বলতে পারে ১০,০০,০০০ চিত্র, তবে মেমরির স্থানটি সমস্ত চিত্র একবারে প্রসেস করার জন্য পর্যাপ্ত না হতে পারে, তাই আমরা ব্যাচ নামে পরিচিত ডেটার ছোট অংশগুলিতে মডেলটির প্রশিক্ষণকে বিভক্ত করি। উদাহরণস্বরূপ ব্যাচের আকার 100
3.. একাধিক ব্যাচ ব্যবহার করে আমাদের সমস্ত চিত্র কভার করতে হবে। সুতরাং আমাদের সমস্ত 10,000,000 চিত্রকে কভার করতে 1000 পুনরাবৃত্তির প্রয়োজন হবে। (100 ব্যাচের আকার * 1000 পুনরাবৃত্তি)
4. একবার নিউরাল নেটওয়ার্ক পুরো ডেটা দেখলে একে 1 Epoch (পয়েন্ট 1) বলা হয়। মডেলটি প্রশিক্ষণের জন্য একাধিক পর্বের প্রয়োজন হতে পারে। (আসুন 10 পর্বগুলি বলুন)।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.