প্রায়শই জিজ্ঞাসিত প্রশ্ন

কিভাবে অপ্টিমাইজেশান ব্যর্থতা ডিবাগ এবং প্রশমিত করা যেতে পারে?

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

স্ট্যান্ডার্ড ওয়াইডরেসনেটের সাথে স্ট্রাইড 1x1 ওয়াইডরেসনেটের তুলনা করা একটি গ্রাফ।             y-অক্ষ হল পরীক্ষার ত্রুটির হার; x-অক্ষ হল বেস লার্নিং রেট।             বেস লার্নিং রেট বাড়ার সাথে সাথে স্ট্যান্ডার্ড WideResNet TestErrorRate-এ ধীরে ধীরে হ্রাস অনুভব করে। বিপরীতে, বেস লার্নিং রেট বৃদ্ধির সাথে সাথে স্ট্রাইড ওয়াইডরেসনেট বন্য ওঠানামা অনুভব করে।
চিত্র 4. WideResnet-এ একটি একক অবশিষ্ট ব্লকে (2x2 -> 1x1) অগ্রগতি পরিবর্তন করার ফলে প্রশিক্ষণে অস্থিরতা দেখা দেয়।

চিত্র 4 সম্পর্কে নিম্নলিখিত লক্ষ্য করুন:

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

অস্থির কাজের চাপ সনাক্ত করা

শেখার হার খুব বেশি হলে যেকোনো কাজের চাপ অস্থির হয়ে যায়। অস্থিরতা শুধুমাত্র একটি সমস্যা যখন এটি আপনাকে একটি শেখার হার ব্যবহার করতে বাধ্য করে যা খুব ছোট। অন্তত দুই ধরনের প্রশিক্ষণের অস্থিরতা আলাদা করার মতো:

  • শুরুতে বা প্রশিক্ষণের প্রথম দিকে অস্থিরতা।
  • প্রশিক্ষণের মাঝখানে হঠাৎ অস্থিরতা।

আপনি নিম্নলিখিতগুলি করে আপনার কাজের চাপে স্থিতিশীলতার সমস্যাগুলি সনাক্ত করার জন্য একটি পদ্ধতিগত পদ্ধতি নিতে পারেন:

  • শেখার হার সুইপ করুন এবং সেরা শেখার হার lr* খুঁজুন।
  • শেখার হারের জন্য প্লট প্রশিক্ষণ ক্ষতি বক্ররেখা lr* এর ঠিক উপরে।
  • যদি শেখার হার > lr* ক্ষতির অস্থিরতা দেখায় (প্রশিক্ষণের সময় ক্ষতি কম হয় না), তাহলে অস্থিরতা ঠিক করা সাধারণত প্রশিক্ষণের উন্নতি করে।

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

দ্রষ্টব্য: কিছু মডেল খুব তাড়াতাড়ি অস্থিরতা দেখায় এবং তারপরে পুনরুদ্ধার হয় যার ফলে ধীর কিন্তু স্থিতিশীল প্রশিক্ষণ হয়। সাধারণ মূল্যায়ন সময়সূচী ঘন ঘন যথেষ্ট মূল্যায়ন না করে এই সমস্যাগুলি মিস করতে পারে!

এটি পরীক্ষা করার জন্য, আপনি lr = 2 * current best ব্যবহার করে মাত্র ~500 ধাপের একটি সংক্ষিপ্ত দৌড়ের জন্য প্রশিক্ষণ নিতে পারেন, তবে প্রতিটি পদক্ষেপের মূল্যায়ন করুন।

দুটি গ্রাফ: উভয় গ্রাফের জন্য x-অক্ষ হল গ্লোবাল স্টেপ; উভয় গ্রাফের জন্য y-অক্ষ হল ট্রেন লস। উভয় গ্রাফই (2,2) এর রূপান্তর স্ট্রাইডের (1,1) রূপান্তর স্ট্রাইডের সাথে তুলনা করে। প্রথম গ্রাফটি প্রতি 1,000 ধাপে মূল্যায়ন দেখায়। এই প্রথম গ্রাফে, উভয় কনভ স্ট্রাইড আরও বৈশ্বিক পদক্ষেপের সাথে ধীরে ধীরে স্থিতিশীল বংশদ্ভুত দেখায়। দ্বিতীয় গ্রাফটি প্রথম 25টি ধাপে ঘন ঘন মূল্যায়ন দেখায়। এই দ্বিতীয় গ্রাফে, (2,2) এর কনভ স্ট্রাইড 20টি বৈশ্বিক ধাপে আরও ধারাবাহিকভাবে কম হওয়ার আগে প্রথম কয়েকটি বৈশ্বিক ধাপে ট্রেন লসের বন্য পরিবর্তন দেখায়। (1,1) এর কনভ স্ট্রাইড প্রথম গ্লোবাল স্টেপের পরেও ধারাবাহিকভাবে কম ট্রেন লস দেখায়।
চিত্র 5. প্রশিক্ষণের শুরুতে আরও ঘন ঘন মূল্যায়নের মূল্য। দরকারী যদি আপনি সন্দেহ করেন যে মডেলটি প্রাথমিক প্রশিক্ষণের অস্থিরতায় ভুগছে।

সাধারণ অস্থিরতার নিদর্শনগুলির জন্য সম্ভাব্য সংশোধন

সাধারণ অস্থিরতার নিদর্শনগুলির জন্য নিম্নলিখিত সম্ভাব্য সমাধানগুলি বিবেচনা করুন:

  • লার্নিং রেট ওয়ার্মআপ প্রয়োগ করুন। এটি প্রাথমিক প্রশিক্ষণের অস্থিরতার জন্য সেরা।
  • গ্রেডিয়েন্ট ক্লিপিং প্রয়োগ করুন। এটি প্রাথমিক এবং মধ্য-প্রশিক্ষণের অস্থিরতা উভয়ের জন্যই ভাল, এবং এটি কিছু খারাপ শুরুর সমাধান করতে পারে যা ওয়ার্মআপ করতে পারে না।
  • একটি নতুন অপ্টিমাইজার চেষ্টা করুন. কখনও কখনও অ্যাডাম অস্থিরতা পরিচালনা করতে পারে যা মোমেন্টাম পারে না। এটি গবেষণার একটি সক্রিয় ক্ষেত্র।
  • নিশ্চিত করুন যে আপনি আপনার মডেল আর্কিটেকচারের জন্য সর্বোত্তম অনুশীলন এবং সর্বোত্তম সূচনা ব্যবহার করছেন (অনুসরণ করার উদাহরণ)। অবশিষ্ট সংযোগ এবং স্বাভাবিককরণ যোগ করুন যদি মডেলটিতে ইতিমধ্যে সেগুলি না থাকে।
  • অবশিষ্টাংশের আগে শেষ অপারেশন হিসাবে স্বাভাবিক করুন। যেমন: x + Norm(f(x)) । মনে রাখবেন যে Norm(x + f(x)) সমস্যা সৃষ্টি করতে পারে।
  • অবশিষ্ট শাখাগুলিকে 0-তে আরম্ভ করার চেষ্টা করুন। (দেখুন ReZeroই আপনার প্রয়োজন: বড় গভীরতায় দ্রুত কনভারজেন্স। )
  • শেখার হার কম করুন। এটি একটি শেষ অবলম্বন।

শেখার হার ওয়ার্মআপ

দুটি গ্রাফ একই পরীক্ষা প্রদর্শন করছে। প্রথম গ্রাফে, x-অক্ষ হল গ্লোবাল স্টেপ এবং y-অক্ষ হল ট্রেন লস। কম লার্নিং রেট ওয়ার্মআপ সংখ্যার সাথে, ট্রেন লস ছিল খুবই অস্থির।             উচ্চ শিক্ষার হার ওয়ার্মআপ সংখ্যার সাথে, ট্রেনের ক্ষতি অনেক বেশি স্থিতিশীল ছিল।
চিত্র 6. ওয়ার্মআপ সময়কালে অস্থিরতার একটি উদাহরণ (অনুভূমিক অক্ষ লগ স্কেলটি নোট করুন)। এই ক্ষেত্রে সফল প্রশিক্ষণের জন্য ওয়ার্মআপের 40k ধাপ প্রয়োজন ছিল।

কখন লার্নিং রেট ওয়ার্মআপ প্রয়োগ করতে হবে

বৈধকরণ সেট (y-অক্ষ) বনাম বেস লার্নিং রেট (x-অক্ষ) এ ক্রস-এনট্রপি ক্ষতির গ্রাফ। গ্রাফটি ছয়টি সম্ভাব্য ট্রায়াল দেখায়, যার সবকটিরই তুলনামূলকভাবে কম বেস লার্নিং রেট রয়েছে। বেস লার্নিং রেট বাড়ার সাথে সাথে বৈধতা ক্ষতি হ্রাস পায়, তারপর বাড়তে শুরু করার আগে একটি নিম্ন পয়েন্টে আঘাত করে। গ্রাফটি চারটি অসম্ভাব্য ট্রায়ালও দেখায়, যার সবকটিরই তুলনামূলকভাবে উচ্চ বেস লার্নিং রেট রয়েছে।
চিত্র 7a. প্রশিক্ষণের অস্থিরতা প্রদর্শনকারী একটি মডেলের জন্য একটি হাইপারপ্যারামিটার অক্ষ প্লটের একটি উদাহরণ। সর্বোত্তম শেখার হার হল যা সম্ভব তার প্রান্তে। একটি "অসম্ভাব্য" ট্রায়াল হয় NaNs তৈরি করে বা ক্ষতির অস্বাভাবিকভাবে উচ্চ মান তৈরি করে।

প্রশিক্ষণ সেটে ক্রস-এনট্রপি ক্ষতির গ্রাফ (y-অক্ষ) বনাম গ্লোবাল স্টেপ (x-অক্ষ)। প্রাথমিক বৈশ্বিক পদক্ষেপে ক্ষতি খুব দ্রুত কমে যায়। তারপর, ক্ষতি প্রায় 10,000 ধাপে নাটকীয়ভাবে বৃদ্ধি পায়। তারপরে, ক্ষতি ধীরে ধীরে প্রায় 15,000 ধাপ নেমে যায়।
চিত্র 7 খ. শেখার হার সহ প্রশিক্ষিত মডেলের প্রশিক্ষণের ক্ষতি যেখানে আপনি অস্থিরতা দেখতে পান।

চিত্র 7a একটি হাইপারপ্যারামিটার অক্ষ প্লট দেখায় যা অপ্টিমাইজেশান অস্থিরতার সম্মুখীন একটি মডেলকে নির্দেশ করে, কারণ সেরা শেখার হারটি অস্থিরতার প্রান্তে।

চিত্র 7b দেখায় কিভাবে এই শিখর থেকে 5x বা 10x বড় শেখার হার সহ প্রশিক্ষিত একটি মডেলের প্রশিক্ষণ ক্ষতি পরীক্ষা করে এটিকে দুবার চেক করা যেতে পারে। যদি সেই প্লটটি একটি অবিচ্ছিন্ন পতনের পর ক্ষতির আকস্মিক বৃদ্ধি দেখায় (উদাহরণস্বরূপ উপরের চিত্রে ~10k ধাপে), তাহলে মডেলটি সম্ভবত অপ্টিমাইজেশান অস্থিরতায় ভুগবে।

লার্নিং রেট ওয়ার্মআপ কীভাবে প্রয়োগ করবেন

ধাপ 76619 (y-অক্ষ) বনাম বেস লার্নিং রেট (x-অক্ষ) এ বৈধতা হারানোর একটি গ্রাফ। গ্রাফটি WMT14 EN-De-তে একটি LayerNorm ট্রান্সফরমারে চারটি ভিন্ন পরিস্থিতির ফলাফলের তুলনা করে। লার্নিং রেট ওয়ার্মআপ কম শেখার হারে বৈধতা হ্রাস করেছে।
চিত্র 8. প্রশিক্ষণের অস্থিরতা মোকাবেলায় শেখার হারের উষ্ণতার উপকারী প্রভাব।

unstable_base_learning_rate শেখার হার হতে দিন যেখানে মডেলটি পূর্ববর্তী পদ্ধতি ব্যবহার করে অস্থির হয়ে যায়।

ওয়ার্মআপের মধ্যে একটি শেখার হারের সময়সূচী প্রিপেন্ড করা জড়িত যা শেখার হারকে 0 থেকে কিছু স্থিতিশীল base_learning_rate পর্যন্ত বৃদ্ধি করে যা unstable_base_learning_rate চেয়ে অন্তত একটি ক্রম বড়। ডিফল্ট হবে একটি base_learning_rate চেষ্টা করা যা 10x unstable_base_learning_rate । যদিও মনে রাখবেন যে 100x unstable_base_learning_rate মত কিছুর জন্য এই সম্পূর্ণ পদ্ধতিটি আবার চালানো সম্ভব হবে। নির্দিষ্ট সময়সূচী হল:

  • ওয়ার্মআপ_স্টেপগুলিতে 0 থেকে বেস_লার্নিং_রেট পর্যন্ত র‌্যাম্প করুন।
  • পোস্ট_ওয়ার্মআপ_পদক্ষেপের জন্য একটি ধ্রুবক হারে ট্রেন করুন।

আপনার লক্ষ্য হল সংক্ষিপ্ততম সংখ্যক warmup_steps খুঁজে বের করা যা আপনাকে শিখর শিখর হার অ্যাক্সেস করতে দেয় যা unstable_base_learning_rate থেকে অনেক বেশি। তাই প্রতিটি base_learning_rate জন্য, আপনাকে warmup_steps এবং post_warmup_steps টিউন করতে হবে। সাধারণত post_warmup_steps 2*warmup_steps এ সেট করা ভালো।

ওয়ার্মআপ একটি বিদ্যমান ক্ষয় সময়সূচী থেকে স্বাধীনভাবে টিউন করা যেতে পারে। warmup_steps কয়েকটি ভিন্ন মাত্রার ক্রমানুসারে সুইপ করা উচিত। উদাহরণস্বরূপ, একটি উদাহরণ অধ্যয়ন চেষ্টা করতে পারে [10, 1000, 10,000, 100,000] । সবচেয়ে বড় সম্ভাব্য বিন্দু max_train_steps এর 10% এর বেশি হওয়া উচিত নয়।

একবার একটি warmup_steps যা base_learning_rate প্রশিক্ষণকে উড়িয়ে দেয় না তা প্রতিষ্ঠিত হয়ে গেলে, এটি বেসলাইন মডেলে প্রয়োগ করা উচিত। মূলত, এই সময়সূচীটিকে বিদ্যমান সময়সূচীতে প্রিপেন্ড করুন এবং এই পরীক্ষাটিকে বেসলাইনের সাথে তুলনা করতে উপরে আলোচিত সর্বোত্তম চেকপয়েন্ট নির্বাচন ব্যবহার করুন। উদাহরণ স্বরূপ, যদি আমাদের প্রাথমিকভাবে 10,000টি max_train_steps থাকে এবং 1000টি ধাপের জন্য warmup_steps করে থাকি, তাহলে নতুন প্রশিক্ষণ পদ্ধতিটি মোট 11,000টি ধাপের জন্য চালানো উচিত।

যদি স্থিতিশীল প্রশিক্ষণের জন্য দীর্ঘ warmup_steps প্রয়োজন হয় (> 5% max_train_steps ), তাহলে এর জন্য আপনাকে max_train_steps বাড়াতে হবে।

ওয়ার্কলোডের সম্পূর্ণ পরিসীমা জুড়ে সত্যিই একটি "সাধারণ" মান নেই। কিছু মডেলের জন্য শুধুমাত্র 100 ধাপ প্রয়োজন, অন্যদের (বিশেষ করে ট্রান্সফরমার) 40k+ প্রয়োজন হতে পারে।

গ্রেডিয়েন্ট ক্লিপিং

Grad l2 আদর্শের গ্রাফ (y-অক্ষ) বনাম গ্লোবাল স্টেপ (x-অক্ষ)। 'সাধারণ' গ্রেডিয়েন্ট আদর্শ প্রশিক্ষণ প্রাথমিক বৈশ্বিক পদক্ষেপে খুব অস্থির ছিল। একটি ক্লিপ থ্রেশহোল্ড যা খুব আক্রমণাত্মক ছিল শেখার হার কমিয়ে দেয় এবং প্রশিক্ষণ ধীর করে দেয়। একটি ভাল ক্লিপ থ্রেশহোল্ড (সাধারণ গ্রেডিয়েন্ট আদর্শের ঠিক উপরে) প্রাথমিক প্রশিক্ষণকে স্থিতিশীল করে।
চিত্র 9. গ্রেডিয়েন্ট ক্লিপিং প্রাথমিক প্রশিক্ষণের অস্থিরতা সংশোধন করে।

গ্রেডিয়েন্ট ক্লিপিং সবচেয়ে দরকারী যখন বড় বা বাইরের গ্রেডিয়েন্ট সমস্যা দেখা দেয়। গ্রেডিয়েন্ট ক্লিপিং নিম্নলিখিত সমস্যার যেকোনো একটি সমাধান করতে পারে:

  • প্রাথমিক প্রশিক্ষণের অস্থিরতা (বড় গ্রেডিয়েন্ট আদর্শ প্রথম দিকে)
  • মধ্য-প্রশিক্ষণের অস্থিরতা (হঠাৎ গ্রেডিয়েন্ট স্পাইক মধ্য প্রশিক্ষণ)।

কখনও কখনও দীর্ঘ ওয়ার্মআপ পিরিয়ড অস্থিরতা সংশোধন করতে পারে যা ক্লিপিং করে না; বিস্তারিত জানার জন্য, শেখার হার ওয়ার্মআপ দেখুন।

🤖 ওয়ার্মআপের সময় ক্লিপিং সম্পর্কে কী?

আদর্শ ক্লিপ থ্রেশহোল্ডগুলি "সাধারণ" গ্রেডিয়েন্ট আদর্শের ঠিক উপরে।

গ্রেডিয়েন্ট ক্লিপিং কীভাবে করা যেতে পারে তার একটি উদাহরণ এখানে রয়েছে:

  • যদি গ্রেডিয়েন্টের আদর্শ $\left | g \right |$ গ্রেডিয়েন্ট ক্লিপিং থ্রেশহোল্ডের চেয়ে বড় $\lambda$, তারপর করুন ${g}'= \lambda \times \frac{g}{\left | g \right |}$ যেখানে ${g}'$ হল নতুন গ্রেডিয়েন্ট।

প্রশিক্ষণের সময় আনক্লিপড গ্রেডিয়েন্ট আদর্শ লগ করুন। ডিফল্টরূপে, তৈরি করুন:

  • গ্রেডিয়েন্ট নর্ম বনাম ধাপের একটি প্লট
  • সমস্ত ধাপে একত্রিত গ্রেডিয়েন্ট নিয়মের একটি হিস্টোগ্রাম

গ্রেডিয়েন্ট নিয়মের 90 তম শতাংশের উপর ভিত্তি করে একটি গ্রেডিয়েন্ট ক্লিপিং থ্রেশহোল্ড চয়ন করুন। থ্রেশহোল্ড কাজের চাপ নির্ভর, কিন্তু 90% একটি ভাল সূচনা পয়েন্ট। যদি 90% কাজ না করে, আপনি এই থ্রেশহোল্ড টিউন করতে পারেন।

🤖 কিছু অভিযোজিত কৌশল সম্পর্কে কি?

আপনি যদি গ্রেডিয়েন্ট ক্লিপিং চেষ্টা করেন এবং অস্থিরতার সমস্যাগুলি থেকে যায়, আপনি এটি আরও চেষ্টা করতে পারেন; যে, আপনি থ্রেশহোল্ড ছোট করতে পারেন.

অত্যন্ত আক্রমনাত্মক গ্রেডিয়েন্ট ক্লিপিং (অর্থাৎ, 50% আপডেটগুলি ক্লিপ করা হচ্ছে), মূলত, শেখার হার হ্রাস করার একটি অদ্ভুত উপায়। আপনি যদি নিজেকে অত্যন্ত আক্রমনাত্মক ক্লিপিং ব্যবহার করে দেখেন, তাহলে আপনার সম্ভবত শেখার হার কমানো উচিত।

কেন আপনি শেখার হার এবং অন্যান্য অপ্টিমাইজেশান পরামিতিগুলিকে হাইপারপ্যারামিটার বলছেন? তারা কোনো পূর্ব বন্টন পরামিতি নয়.

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

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

কেন সরাসরি বৈধতা সেট কর্মক্ষমতা উন্নত করতে ব্যাচের আকার টিউন করা উচিত নয়?

প্রশিক্ষণ পাইপলাইনের অন্য কোন বিবরণ পরিবর্তন না করে ব্যাচের আকার পরিবর্তন করা প্রায়ই বৈধতা সেটের কার্যকারিতাকে প্রভাবিত করে। যাইহোক, প্রতিটি ব্যাচের আকারের জন্য প্রশিক্ষণ পাইপলাইন স্বাধীনভাবে অপ্টিমাইজ করা হলে দুটি ব্যাচের আকারের মধ্যে বৈধতা সেটের কার্যক্ষমতার পার্থক্য সাধারণত চলে যায়।

যে হাইপারপ্যারামিটারগুলি ব্যাচের আকারের সাথে সবচেয়ে দৃঢ়ভাবে ইন্টারঅ্যাক্ট করে এবং তাই প্রতিটি ব্যাচের আকারের জন্য আলাদাভাবে সুর করা সবচেয়ে গুরুত্বপূর্ণ, সেগুলি হল অপ্টিমাইজার হাইপারপ্যারামিটার (উদাহরণস্বরূপ, শেখার হার, ভরবেগ) এবং নিয়মিতকরণের হাইপারপ্যারামিটার৷ নমুনা ভিন্নতার কারণে ছোট ব্যাচের মাপ প্রশিক্ষণের অ্যালগরিদমে আরও বেশি শব্দ করে। এই গোলমাল একটি নিয়মিত প্রভাব থাকতে পারে. সুতরাং, বৃহত্তর ব্যাচের আকারগুলি অতিরিক্ত ফিট করার প্রবণতা হতে পারে এবং আরও শক্তিশালী নিয়মিতকরণ এবং/অথবা অতিরিক্ত নিয়মিতকরণ কৌশলগুলির প্রয়োজন হতে পারে। উপরন্তু, ব্যাচের আকার পরিবর্তন করার সময় আপনাকে প্রশিক্ষণের ধাপগুলির সংখ্যা সামঞ্জস্য করতে হতে পারে।

একবার এই সমস্ত প্রভাবগুলি বিবেচনায় নেওয়া হলে, ব্যাচের আকার সর্বাধিক অর্জনযোগ্য বৈধতা কার্যকারিতাকে প্রভাবিত করে এমন কোনও বিশ্বাসযোগ্য প্রমাণ নেই। বিস্তারিত জানার জন্য, Shallue et al দেখুন। 2018

সমস্ত জনপ্রিয় অপ্টিমাইজেশান অ্যালগরিদমগুলির জন্য আপডেটের নিয়মগুলি কী কী?

এই বিভাগটি বেশ কয়েকটি জনপ্রিয় অপ্টিমাইজেশান অ্যালগরিদমের জন্য আপডেটের নিয়ম প্রদান করে।

স্টোকাস্টিক গ্রেডিয়েন্ট ডিসেন্ট (SGD)

\[\theta_{t+1} = \theta_{t} - \eta_t \nabla \mathcal{l}(\theta_t)\]

যেখানে $\eta_t$ হল $t$ ধাপে শেখার হার।

গতিবেগ

\[v_0 = 0\]

\[v_{t+1} = \gamma v_{t} + \nabla \mathcal{l}(\theta_t)\]

\[\theta_{t+1} = \theta_{t} - \eta_t v_{t+1}\]

যেখানে $\eta_t$ হল $t$ ধাপে শেখার হার, এবং $\gamma$ হল ভরবেগ সহগ।

নেস্টেরভ

\[v_0 = 0\]

\[v_{t+1} = \gamma v_{t} + \nabla \mathcal{l}(\theta_t)\]

\[\theta_{t+1} = \theta_{t} - \eta_t ( \gamma v_{t+1} + \nabla \mathcal{l}(\theta_{t}) )\]

যেখানে $\eta_t$ হল $t$ ধাপে শেখার হার, এবং $\gamma$ হল ভরবেগ সহগ।

আরএমএসপ্রপ

\[v_0 = 1 \text{, } m_0 = 0\]

\[v_{t+1} = \rho v_{t} + (1 - \rho) \nabla \mathcal{l}(\theta_t)^2\]

\[m_{t+1} = \gamma m_{t} + \frac{\eta_t}{\sqrt{v_{t+1} + \epsilon}}\nabla \mathcal{l}(\theta_t)\]

\[\theta_{t+1} = \theta_{t} - m_{t+1}\]

অ্যাডাম

\[m_0 = 0 \text{, } v_0 = 0\]

\[m_{t+1} = \beta_1 m_{t} + (1 - \beta_1) \nabla \mathcal{l} (\theta_t)\]

\[v_{t+1} = \beta_2 v_{t} + (1 - \beta_2) \nabla \mathcal{l}(\theta_t)^2\]

\[b_{t+1} = \frac{\sqrt{1 - \beta_2^{t+1}}}{1 - \beta_1^{t+1}}\]

\[\theta_{t+1} = \theta_{t} - \alpha_t \frac{m_{t+1}}{\sqrt{v_{t+1}} + \epsilon} b_{t+1}\]

নাদাম

\[m_0 = 0 \text{, } v_0 = 0\]

\[m_{t+1} = \beta_1 m_{t} + (1 - \beta_1) \nabla \mathcal{l} (\theta_t)\]

\[v_{t+1} = \beta_2 v_{t} + (1 - \beta_2) \nabla \mathcal{l} (\theta_t)^2\]

\[b_{t+1} = \frac{\sqrt{1 - \beta_2^{t+1}}}{1 - \beta_1^{t+1}}\]

\[\theta_{t+1} = \theta_{t} - \alpha_t \frac{\beta_1 m_{t+1} + (1 - \beta_1) \nabla \mathcal{l} (\theta_t)}{\sqrt{v_{t+1}} + \epsilon} b_{t+1}\]

,

কিভাবে অপ্টিমাইজেশান ব্যর্থতা ডিবাগ এবং প্রশমিত করা যেতে পারে?

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

স্ট্যান্ডার্ড ওয়াইডরেসনেটের সাথে স্ট্রাইড 1x1 ওয়াইডরেসনেটের তুলনা করা একটি গ্রাফ।             y-অক্ষ হল পরীক্ষার ত্রুটির হার; x-অক্ষ হল বেস লার্নিং রেট।             বেস লার্নিং রেট বাড়ার সাথে সাথে স্ট্যান্ডার্ড WideResNet TestErrorRate-এ ধীরে ধীরে হ্রাস অনুভব করে। বিপরীতে, বেস লার্নিং রেট বৃদ্ধির সাথে সাথে স্ট্রাইড ওয়াইডরেসনেট বন্য ওঠানামা অনুভব করে।
চিত্র 4. WideResnet-এ একটি একক অবশিষ্ট ব্লকে (2x2 -> 1x1) অগ্রগতি পরিবর্তন করার ফলে প্রশিক্ষণে অস্থিরতা দেখা দেয়।

চিত্র 4 সম্পর্কে নিম্নলিখিত লক্ষ্য করুন:

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

অস্থির কাজের চাপ সনাক্ত করা

শেখার হার খুব বেশি হলে যেকোনো কাজের চাপ অস্থির হয়ে যায়। অস্থিরতা শুধুমাত্র একটি সমস্যা যখন এটি আপনাকে একটি শেখার হার ব্যবহার করতে বাধ্য করে যা খুব ছোট। অন্তত দুই ধরনের প্রশিক্ষণের অস্থিরতা আলাদা করার মতো:

  • শুরুতে বা প্রশিক্ষণের প্রথম দিকে অস্থিরতা।
  • প্রশিক্ষণের মাঝখানে হঠাৎ অস্থিরতা।

আপনি নিম্নলিখিতগুলি করে আপনার কাজের চাপে স্থিতিশীলতার সমস্যাগুলি সনাক্ত করার জন্য একটি পদ্ধতিগত পদ্ধতি নিতে পারেন:

  • শেখার হার সুইপ করুন এবং সেরা শেখার হার lr* খুঁজুন।
  • শেখার হারের জন্য প্লট প্রশিক্ষণ ক্ষতি বক্ররেখা lr* এর ঠিক উপরে।
  • যদি শেখার হার > lr* ক্ষতির অস্থিরতা দেখায় (প্রশিক্ষণের সময় ক্ষতি কম হয় না), তাহলে অস্থিরতা ঠিক করা সাধারণত প্রশিক্ষণের উন্নতি করে।

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

দ্রষ্টব্য: কিছু মডেল খুব তাড়াতাড়ি অস্থিরতা দেখায় এবং তারপরে পুনরুদ্ধার হয় যার ফলে ধীর কিন্তু স্থিতিশীল প্রশিক্ষণ হয়। সাধারণ মূল্যায়ন সময়সূচী ঘন ঘন যথেষ্ট মূল্যায়ন না করে এই সমস্যাগুলি মিস করতে পারে!

এটি পরীক্ষা করার জন্য, আপনি lr = 2 * current best ব্যবহার করে মাত্র ~500 ধাপের একটি সংক্ষিপ্ত দৌড়ের জন্য প্রশিক্ষণ নিতে পারেন, তবে প্রতিটি পদক্ষেপের মূল্যায়ন করুন।

দুটি গ্রাফ: উভয় গ্রাফের জন্য x-অক্ষ হল গ্লোবাল স্টেপ; উভয় গ্রাফের জন্য y-অক্ষ হল ট্রেন লস। উভয় গ্রাফই (2,2) এর রূপান্তর স্ট্রাইডের (1,1) রূপান্তর স্ট্রাইডের সাথে তুলনা করে। প্রথম গ্রাফটি প্রতি 1,000 ধাপে মূল্যায়ন দেখায়। এই প্রথম গ্রাফে, উভয় কনভ স্ট্রাইড আরও বৈশ্বিক পদক্ষেপের সাথে ধীরে ধীরে স্থিতিশীল বংশদ্ভুত দেখায়। দ্বিতীয় গ্রাফটি প্রথম 25টি ধাপে ঘন ঘন মূল্যায়ন দেখায়। এই দ্বিতীয় গ্রাফে, (2,2) এর কনভ স্ট্রাইড 20টি বৈশ্বিক ধাপে আরও ধারাবাহিকভাবে কম হওয়ার আগে প্রথম কয়েকটি বৈশ্বিক ধাপে ট্রেন লসের বন্য পরিবর্তন দেখায়। (1,1) এর কনভ স্ট্রাইড প্রথম গ্লোবাল স্টেপের পরেও ধারাবাহিকভাবে কম ট্রেন লস দেখায়।
চিত্র 5. প্রশিক্ষণের শুরুতে আরও ঘন ঘন মূল্যায়নের মূল্য। দরকারী যদি আপনি সন্দেহ করেন যে মডেলটি প্রাথমিক প্রশিক্ষণের অস্থিরতায় ভুগছে।

সাধারণ অস্থিরতার নিদর্শনগুলির জন্য সম্ভাব্য সংশোধন

সাধারণ অস্থিরতার নিদর্শনগুলির জন্য নিম্নলিখিত সম্ভাব্য সমাধানগুলি বিবেচনা করুন:

  • লার্নিং রেট ওয়ার্মআপ প্রয়োগ করুন। এটি প্রাথমিক প্রশিক্ষণের অস্থিরতার জন্য সেরা।
  • গ্রেডিয়েন্ট ক্লিপিং প্রয়োগ করুন। এটি প্রাথমিক এবং মধ্য-প্রশিক্ষণের অস্থিরতা উভয়ের জন্যই ভাল, এবং এটি কিছু খারাপ শুরুর সমাধান করতে পারে যা ওয়ার্মআপ করতে পারে না।
  • একটি নতুন অপ্টিমাইজার চেষ্টা করুন. কখনও কখনও অ্যাডাম অস্থিরতা পরিচালনা করতে পারে যা মোমেন্টাম পারে না। এটি গবেষণার একটি সক্রিয় ক্ষেত্র।
  • নিশ্চিত করুন যে আপনি আপনার মডেল আর্কিটেকচারের জন্য সর্বোত্তম অনুশীলন এবং সর্বোত্তম সূচনা ব্যবহার করছেন (অনুসরণ করার উদাহরণ)। অবশিষ্ট সংযোগ এবং স্বাভাবিককরণ যোগ করুন যদি মডেলটিতে ইতিমধ্যে সেগুলি না থাকে।
  • অবশিষ্টাংশের আগে শেষ অপারেশন হিসাবে স্বাভাবিক করুন। যেমন: x + Norm(f(x)) । মনে রাখবেন যে Norm(x + f(x)) সমস্যা সৃষ্টি করতে পারে।
  • অবশিষ্ট শাখাগুলিকে 0-তে শুরু করার চেষ্টা করুন। (দেখুন ReZero হল আপনার যা প্রয়োজন: বড় গভীরতায় দ্রুত কনভারজেন্স। )
  • শেখার হার কম করুন। এটি একটি শেষ অবলম্বন।

শেখার হার ওয়ার্মআপ

দুটি গ্রাফ একই পরীক্ষা প্রদর্শন করছে। প্রথম গ্রাফে, x-অক্ষ হল গ্লোবাল স্টেপ এবং y-অক্ষ হল ট্রেন লস। কম লার্নিং রেট ওয়ার্মআপ সংখ্যার সাথে, ট্রেন লস ছিল খুবই অস্থির।             উচ্চ শিক্ষার হার ওয়ার্মআপ সংখ্যার সাথে, ট্রেনের ক্ষতি অনেক বেশি স্থিতিশীল ছিল।
চিত্র 6. ওয়ার্মআপ সময়কালে অস্থিরতার একটি উদাহরণ (অনুভূমিক অক্ষ লগ স্কেলটি নোট করুন)। এই ক্ষেত্রে সফল প্রশিক্ষণের জন্য ওয়ার্মআপের 40k ধাপ প্রয়োজন ছিল।

কখন লার্নিং রেট ওয়ার্মআপ প্রয়োগ করতে হবে

বৈধকরণ সেট (y-অক্ষ) বনাম বেস লার্নিং রেট (x-অক্ষ) এ ক্রস-এনট্রপি ক্ষতির গ্রাফ। গ্রাফটি ছয়টি সম্ভাব্য ট্রায়াল দেখায়, যার সবকটিরই তুলনামূলকভাবে কম বেস লার্নিং রেট রয়েছে। বেস লার্নিং রেট বাড়ার সাথে সাথে বৈধতা ক্ষতি হ্রাস পায়, তারপর বাড়তে শুরু করার আগে একটি নিম্ন পয়েন্টে আঘাত করে। গ্রাফটি চারটি অসম্ভাব্য ট্রায়ালও দেখায়, যার সবকটিরই তুলনামূলকভাবে উচ্চ বেস লার্নিং রেট রয়েছে।
চিত্র 7a. প্রশিক্ষণের অস্থিরতা প্রদর্শনকারী একটি মডেলের জন্য একটি হাইপারপ্যারামিটার অক্ষ প্লটের একটি উদাহরণ। সর্বোত্তম শেখার হার হল যা সম্ভব তার প্রান্তে। একটি "অসম্ভাব্য" ট্রায়াল হয় NaNs তৈরি করে বা ক্ষতির অস্বাভাবিকভাবে উচ্চ মান তৈরি করে।

প্রশিক্ষণ সেটে ক্রস-এনট্রপি ক্ষতির গ্রাফ (y-অক্ষ) বনাম গ্লোবাল স্টেপ (x-অক্ষ)। প্রাথমিক বৈশ্বিক পদক্ষেপে ক্ষতি খুব দ্রুত কমে যায়। তারপর, ক্ষতি প্রায় 10,000 ধাপে নাটকীয়ভাবে বৃদ্ধি পায়। তারপরে, ক্ষতি ধীরে ধীরে প্রায় 15,000 ধাপ নেমে যায়।
চিত্র 7 খ. শেখার হার সহ প্রশিক্ষিত মডেলের প্রশিক্ষণের ক্ষতি যেখানে আপনি অস্থিরতা দেখতে পান।

চিত্র 7a একটি হাইপারপ্যারামিটার অক্ষ প্লট দেখায় যা অপ্টিমাইজেশান অস্থিরতার সম্মুখীন একটি মডেলকে নির্দেশ করে, কারণ সেরা শেখার হারটি অস্থিরতার প্রান্তে।

চিত্র 7b দেখায় কিভাবে এই শিখর থেকে 5x বা 10x বড় শেখার হার সহ প্রশিক্ষিত একটি মডেলের প্রশিক্ষণ ক্ষতি পরীক্ষা করে এটিকে দুবার চেক করা যেতে পারে। যদি সেই প্লটটি একটি অবিচ্ছিন্ন পতনের পর ক্ষতির আকস্মিক বৃদ্ধি দেখায় (উদাহরণস্বরূপ উপরের চিত্রে ~10k ধাপে), তাহলে মডেলটি সম্ভবত অপ্টিমাইজেশান অস্থিরতায় ভুগবে।

লার্নিং রেট ওয়ার্মআপ কীভাবে প্রয়োগ করবেন

ধাপ 76619 (y-অক্ষ) বনাম বেস লার্নিং রেট (x-অক্ষ) এ বৈধতা হারানোর একটি গ্রাফ। গ্রাফটি WMT14 EN-De-তে একটি LayerNorm ট্রান্সফরমারে চারটি ভিন্ন পরিস্থিতির ফলাফলের তুলনা করে। লার্নিং রেট ওয়ার্মআপ কম শেখার হারে বৈধতা হ্রাস করেছে।
চিত্র 8. প্রশিক্ষণের অস্থিরতা মোকাবেলায় শেখার হারের উষ্ণতার উপকারী প্রভাব।

unstable_base_learning_rate শেখার হার হতে দিন যেখানে মডেলটি পূর্ববর্তী পদ্ধতি ব্যবহার করে অস্থির হয়ে যায়।

ওয়ার্মআপের মধ্যে একটি শেখার হারের সময়সূচী প্রিপেন্ড করা জড়িত যা শেখার হারকে 0 থেকে কিছু স্থিতিশীল base_learning_rate পর্যন্ত বৃদ্ধি করে যা unstable_base_learning_rate চেয়ে অন্তত একটি ক্রম বড়। ডিফল্ট হবে একটি base_learning_rate চেষ্টা করা যা 10x unstable_base_learning_rate । যদিও মনে রাখবেন যে 100x unstable_base_learning_rate মত কিছুর জন্য এই সম্পূর্ণ পদ্ধতিটি আবার চালানো সম্ভব হবে। নির্দিষ্ট সময়সূচী হল:

  • ওয়ার্মআপ_স্টেপগুলিতে 0 থেকে বেস_লার্নিং_রেট পর্যন্ত র‌্যাম্প করুন।
  • পোস্ট_ওয়ার্মআপ_পদক্ষেপের জন্য একটি ধ্রুবক হারে ট্রেন করুন।

আপনার লক্ষ্য হল সংক্ষিপ্ততম সংখ্যক warmup_steps খুঁজে বের করা যা আপনাকে শিখর শিখর হার অ্যাক্সেস করতে দেয় যা unstable_base_learning_rate থেকে অনেক বেশি। তাই প্রতিটি base_learning_rate জন্য, আপনাকে warmup_steps এবং post_warmup_steps টিউন করতে হবে। সাধারণত post_warmup_steps 2*warmup_steps এ সেট করা ভালো।

ওয়ার্মআপ একটি বিদ্যমান ক্ষয় সময়সূচী থেকে স্বাধীনভাবে টিউন করা যেতে পারে। warmup_steps কয়েকটি ভিন্ন মাত্রার ক্রমানুসারে সুইপ করা উচিত। উদাহরণস্বরূপ, একটি উদাহরণ অধ্যয়ন চেষ্টা করতে পারে [10, 1000, 10,000, 100,000] । সবচেয়ে বড় সম্ভাব্য বিন্দু max_train_steps এর 10% এর বেশি হওয়া উচিত নয়।

একবার একটি warmup_steps যা base_learning_rate প্রশিক্ষণকে উড়িয়ে দেয় না তা প্রতিষ্ঠিত হয়ে গেলে, এটি বেসলাইন মডেলে প্রয়োগ করা উচিত। মূলত, এই সময়সূচীটিকে বিদ্যমান সময়সূচীতে প্রিপেন্ড করুন এবং এই পরীক্ষাটিকে বেসলাইনের সাথে তুলনা করতে উপরে আলোচিত সর্বোত্তম চেকপয়েন্ট নির্বাচন ব্যবহার করুন। উদাহরণ স্বরূপ, যদি আমাদের প্রাথমিকভাবে 10,000টি max_train_steps থাকে এবং 1000টি ধাপের জন্য warmup_steps করে থাকি, তাহলে নতুন প্রশিক্ষণ পদ্ধতিটি মোট 11,000টি ধাপের জন্য চালানো উচিত।

যদি স্থিতিশীল প্রশিক্ষণের জন্য দীর্ঘ warmup_steps প্রয়োজন হয় (> 5% max_train_steps ), তাহলে এর জন্য আপনাকে max_train_steps বাড়াতে হবে।

ওয়ার্কলোডের সম্পূর্ণ পরিসীমা জুড়ে সত্যিই একটি "সাধারণ" মান নেই। কিছু মডেলের জন্য শুধুমাত্র 100 ধাপ প্রয়োজন, অন্যদের (বিশেষ করে ট্রান্সফরমার) 40k+ প্রয়োজন হতে পারে।

গ্রেডিয়েন্ট ক্লিপিং

Grad l2 আদর্শের গ্রাফ (y-অক্ষ) বনাম গ্লোবাল স্টেপ (x-অক্ষ)। 'সাধারণ' গ্রেডিয়েন্ট আদর্শ প্রশিক্ষণ প্রাথমিক বৈশ্বিক পদক্ষেপে খুব অস্থির ছিল। একটি ক্লিপ থ্রেশহোল্ড যা খুব আক্রমণাত্মক ছিল শেখার হার কমিয়ে দেয় এবং প্রশিক্ষণ ধীর করে দেয়। একটি ভাল ক্লিপ থ্রেশহোল্ড (সাধারণ গ্রেডিয়েন্ট আদর্শের ঠিক উপরে) প্রাথমিক প্রশিক্ষণকে স্থিতিশীল করে।
চিত্র 9. গ্রেডিয়েন্ট ক্লিপিং প্রাথমিক প্রশিক্ষণের অস্থিরতা সংশোধন করে।

গ্রেডিয়েন্ট ক্লিপিং সবচেয়ে দরকারী যখন বড় বা বাইরের গ্রেডিয়েন্ট সমস্যা দেখা দেয়। গ্রেডিয়েন্ট ক্লিপিং নিম্নলিখিত সমস্যার যেকোনো একটি সমাধান করতে পারে:

  • প্রাথমিক প্রশিক্ষণের অস্থিরতা (বড় গ্রেডিয়েন্ট আদর্শ প্রথম দিকে)
  • মধ্য-প্রশিক্ষণের অস্থিরতা (হঠাৎ গ্রেডিয়েন্ট স্পাইক মধ্য প্রশিক্ষণ)।

কখনও কখনও দীর্ঘ ওয়ার্মআপ পিরিয়ড অস্থিরতা সংশোধন করতে পারে যা ক্লিপিং করে না; বিস্তারিত জানার জন্য, শেখার হার ওয়ার্মআপ দেখুন।

🤖 ওয়ার্মআপের সময় ক্লিপিং সম্পর্কে কী?

আদর্শ ক্লিপ থ্রেশহোল্ডগুলি "সাধারণ" গ্রেডিয়েন্ট আদর্শের ঠিক উপরে।

গ্রেডিয়েন্ট ক্লিপিং কীভাবে করা যেতে পারে তার একটি উদাহরণ এখানে রয়েছে:

  • যদি গ্রেডিয়েন্টের আদর্শ $\left | g \right |$ গ্রেডিয়েন্ট ক্লিপিং থ্রেশহোল্ডের চেয়ে বড় $\lambda$, তারপর করুন ${g}'= \lambda \times \frac{g}{\left | g \right |}$ যেখানে ${g}'$ হল নতুন গ্রেডিয়েন্ট।

প্রশিক্ষণের সময় আনক্লিপড গ্রেডিয়েন্ট আদর্শ লগ করুন। ডিফল্টরূপে, তৈরি করুন:

  • গ্রেডিয়েন্ট নর্ম বনাম ধাপের একটি প্লট
  • সমস্ত ধাপে একত্রিত গ্রেডিয়েন্ট নিয়মের একটি হিস্টোগ্রাম

গ্রেডিয়েন্ট নিয়মের 90 তম শতাংশের উপর ভিত্তি করে একটি গ্রেডিয়েন্ট ক্লিপিং থ্রেশহোল্ড চয়ন করুন। থ্রেশহোল্ড কাজের চাপ নির্ভর, কিন্তু 90% একটি ভাল সূচনা পয়েন্ট। যদি 90% কাজ না করে, আপনি এই থ্রেশহোল্ড টিউন করতে পারেন।

🤖 কিছু অভিযোজিত কৌশল সম্পর্কে কি?

আপনি যদি গ্রেডিয়েন্ট ক্লিপিং চেষ্টা করেন এবং অস্থিরতার সমস্যাগুলি থেকে যায়, আপনি এটি আরও চেষ্টা করতে পারেন; যে, আপনি থ্রেশহোল্ড ছোট করতে পারেন.

অত্যন্ত আক্রমনাত্মক গ্রেডিয়েন্ট ক্লিপিং (অর্থাৎ, 50% আপডেটগুলি ক্লিপ করা হচ্ছে), মূলত, শেখার হার হ্রাস করার একটি অদ্ভুত উপায়। আপনি যদি নিজেকে অত্যন্ত আক্রমনাত্মক ক্লিপিং ব্যবহার করে দেখেন, তাহলে আপনার সম্ভবত শেখার হার কমানো উচিত।

কেন আপনি শেখার হার এবং অন্যান্য অপ্টিমাইজেশান পরামিতিগুলিকে হাইপারপ্যারামিটার বলছেন? তারা কোনো পূর্ব বন্টন পরামিতি নয়.

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

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

কেন সরাসরি বৈধতা সেট কর্মক্ষমতা উন্নত করতে ব্যাচের আকার টিউন করা উচিত নয়?

প্রশিক্ষণ পাইপলাইনের অন্য কোন বিবরণ পরিবর্তন না করে ব্যাচের আকার পরিবর্তন করা প্রায়ই বৈধতা সেটের কার্যকারিতাকে প্রভাবিত করে। যাইহোক, প্রতিটি ব্যাচের আকারের জন্য প্রশিক্ষণ পাইপলাইন স্বাধীনভাবে অপ্টিমাইজ করা হলে দুটি ব্যাচের আকারের মধ্যে বৈধতা সেটের কার্যক্ষমতার পার্থক্য সাধারণত চলে যায়।

যে হাইপারপ্যারামিটারগুলি ব্যাচের আকারের সাথে সবচেয়ে দৃঢ়ভাবে ইন্টারঅ্যাক্ট করে এবং তাই প্রতিটি ব্যাচের আকারের জন্য আলাদাভাবে সুর করা সবচেয়ে গুরুত্বপূর্ণ, সেগুলি হল অপ্টিমাইজার হাইপারপ্যারামিটার (উদাহরণস্বরূপ, শেখার হার, ভরবেগ) এবং নিয়মিতকরণের হাইপারপ্যারামিটার৷ নমুনা ভিন্নতার কারণে ছোট ব্যাচের মাপ প্রশিক্ষণের অ্যালগরিদমে আরও বেশি শব্দ করে। এই গোলমাল একটি নিয়মিত প্রভাব থাকতে পারে. সুতরাং, বৃহত্তর ব্যাচের আকারগুলি অতিরিক্ত ফিট করার প্রবণতা হতে পারে এবং আরও শক্তিশালী নিয়মিতকরণ এবং/অথবা অতিরিক্ত নিয়মিতকরণ কৌশলগুলির প্রয়োজন হতে পারে। উপরন্তু, ব্যাচের আকার পরিবর্তন করার সময় আপনাকে প্রশিক্ষণের ধাপগুলির সংখ্যা সামঞ্জস্য করতে হতে পারে।

একবার এই সমস্ত প্রভাবগুলি বিবেচনায় নেওয়া হলে, ব্যাচের আকার সর্বাধিক অর্জনযোগ্য বৈধতা কার্যকারিতাকে প্রভাবিত করে এমন কোনও বিশ্বাসযোগ্য প্রমাণ নেই। বিস্তারিত জানার জন্য, Shallue et al দেখুন। 2018

সমস্ত জনপ্রিয় অপ্টিমাইজেশান অ্যালগরিদমগুলির জন্য আপডেটের নিয়মগুলি কী কী?

এই বিভাগটি বেশ কয়েকটি জনপ্রিয় অপ্টিমাইজেশান অ্যালগরিদমের জন্য আপডেটের নিয়ম প্রদান করে।

স্টোকাস্টিক গ্রেডিয়েন্ট ডিসেন্ট (SGD)

\[\theta_{t+1} = \theta_{t} - \eta_t \nabla \mathcal{l}(\theta_t)\]

যেখানে $\eta_t$ হল $t$ ধাপে শেখার হার।

গতিবেগ

\[v_0 = 0\]

\[v_{t+1} = \gamma v_{t} + \nabla \mathcal{l}(\theta_t)\]

\[\theta_{t+1} = \theta_{t} - \eta_t v_{t+1}\]

যেখানে $\eta_t$ হল $t$ ধাপে শেখার হার, এবং $\gamma$ হল ভরবেগ সহগ।

নেস্টেরভ

\[v_0 = 0\]

\[v_{t+1} = \gamma v_{t} + \nabla \mathcal{l}(\theta_t)\]

\[\theta_{t+1} = \theta_{t} - \eta_t ( \gamma v_{t+1} + \nabla \mathcal{l}(\theta_{t}) )\]

যেখানে $\eta_t$ হল $t$ ধাপে শেখার হার, এবং $\gamma$ হল ভরবেগ সহগ।

আরএমএসপ্রপ

\[v_0 = 1 \text{, } m_0 = 0\]

\[v_{t+1} = \rho v_{t} + (1 - \rho) \nabla \mathcal{l}(\theta_t)^2\]

\[m_{t+1} = \gamma m_{t} + \frac{\eta_t}{\sqrt{v_{t+1} + \epsilon}}\nabla \mathcal{l}(\theta_t)\]

\[\theta_{t+1} = \theta_{t} - m_{t+1}\]

অ্যাডাম

\[m_0 = 0 \text{, } v_0 = 0\]

\[m_{t+1} = \beta_1 m_{t} + (1 - \beta_1) \nabla \mathcal{l} (\theta_t)\]

\[v_{t+1} = \beta_2 v_{t} + (1 - \beta_2) \nabla \mathcal{l}(\theta_t)^2\]

\[b_{t+1} = \frac{\sqrt{1 - \beta_2^{t+1}}}{1 - \beta_1^{t+1}}\]

\[\theta_{t+1} = \theta_{t} - \alpha_t \frac{m_{t+1}}{\sqrt{v_{t+1}} + \epsilon} b_{t+1}\]

নাদাম

\[m_0 = 0 \text{, } v_0 = 0\]

\[m_{t+1} = \beta_1 m_{t} + (1 - \beta_1) \nabla \mathcal{l} (\theta_t)\]

\[v_{t+1} = \beta_2 v_{t} + (1 - \beta_2) \nabla \mathcal{l} (\theta_t)^2\]

\[b_{t+1} = \frac{\sqrt{1 - \beta_2^{t+1}}}{1 - \beta_1^{t+1}}\]

\[\theta_{t+1} = \theta_{t} - \alpha_t \frac{\beta_1 m_{t+1} + (1 - \beta_1) \nabla \mathcal{l} (\theta_t)}{\sqrt{v_{t+1}} + \epsilon} b_{t+1}\]