প্রশিক্ষণের ক্ষতিতে স্পাইকের ব্যাখ্যা বনাম পুনরায় আদম অপ্টিমাইজারের সাথে পুনরাবৃত্তি


16

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

মডেল বিশদ:

14 ইনপুট নোড -> 2 লুকানো স্তর (100 -> 40 ইউনিট) -> 4 আউটপুট ইউনিট

আমি আদম জন্য ডিফল্ট পরামিতি ব্যবহার করছি beta_1 = 0.9, beta_2 = 0.999, epsilon = 1e-8এবং batch_size = 32

i) এসজিডি সহ ii) আদমের সাথেএসজিডি সহ আদমের সাথে


ভবিষ্যতের বিজ্ঞপ্তির জন্য, আপনার প্রাথমিক শিক্ষার হারকে হ্রাস করে অ্যাডামের স্পাইকগুলি দূর করতে সহায়তা করতে পারে
বোল্ড

উত্তর:


12

স্পাইকগুলি অ্যাডামের ( batch_size=32) মধ্যে মিনি-ব্যাচের গ্রেডিয়েন্ট বংশোদ্ভূত একটি অনিবার্য পরিণতি । কিছু মিনি-ব্যাচগুলির অপ্টিমাইজেশনের জন্য দুর্ভাগ্যজনক ডেটা 'সুযোগ সহ' রয়েছে, যা আপনি অ্যাডাম ব্যবহার করে আপনার ব্যয় ক্রিয়ায় দেখেন sp যদি আপনি স্টোকাস্টিক গ্রেডিয়েন্ট বংশোদ্ভূত (ব্যবহারের সমান batch_size=1) চেষ্টা করেন তবে দেখবেন ব্যয় ফাংশনে আরও স্পাইক রয়েছে। (সম্পূর্ণ) ব্যাচ জিডিতে একই ঘটতে পারে না কারণ এটি প্রতিটি অপ্টিমাইজেশন পর্বের সমস্ত প্রশিক্ষণ ডেটা (অর্থাত্ ব্যাচের আকারটি আপনার প্রশিক্ষণের সেটের কার্ডিনালিটির সমান) ব্যবহার করে। আপনার প্রথম গ্রাফিকের মতো ব্যয় একঘেয়েভাবে স্বাচ্ছন্দ্যে হ্রাস পাচ্ছে বলে মনে হচ্ছে এটি শিরোনাম ( i) এসজিডি সহ ) ভুল এবং আপনি এসজিডির পরিবর্তে (পূর্ণ) ব্যাচ গ্রেডিয়েন্ট বংশোদ্ভুত ব্যবহার করছেন।

কোর্সেরাতে তাঁর দুর্দান্ত ডিপ লার্নিং কোর্সে অ্যান্ড্রু এনজি নীচের চিত্রটি ব্যবহার করে দুর্দান্ত বিবরণ দিয়ে ব্যাখ্যা করেছেন:

ব্যয় ফাংশন


2
'এসজিডি ... সমস্ত প্রশিক্ষণ ডেটা ব্যবহার করে' আপনি কি এটি নিশ্চিত? এর অর্থ সমস্ত ডেটা এগিয়ে দেওয়ার পরে ওজন আপডেট করা হয় তবে এটিকে পুরো ব্যাচ জিডি বলা হয়, স্যাজডিড নয়। স্টোকাস্টিকটি মিনিবাচকে বোঝায়
অ্যালেক্স

অ্যালেক্সকে ধন্যবাদ আমার ভুলকে নির্দেশ করার জন্য, আমি ইতিমধ্যে এটি ঠিক করে রেখেছি এবং আরও তথ্যের রেফারেন্স সহ উত্তরটি উন্নত করেছি।
xboard

@ এক্সবোর্ড - না, আমি মিনি ব্যাচের গ্রেডিয়েন্ট বংশোদ্ভূত প্রথমটির জন্য ব্যবহার করছি।
আব্দুল ফাতির

8

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

  • লোকসানি নির্ভরশীল। লগলিস্টিভিলিটিস-লোকসগুলি ক্লিপ করা দরকার, যদি তা না হয় তবে এটি log(0)ডেটাসেটে খারাপ ভবিষ্যদ্বাণী / বহিরাগতদের কাছাকাছি মূল্যায়ন করতে পারে , যার ফলে বিস্ফোরিত গ্রেডিয়েন্ট হয়। বেশিরভাগ প্যাকেজ (টর্চ, টেনসরফ্লো ইত্যাদি) তাদের ক্ষতির জন্য ডিফল্ট হিসাবে ক্লিপিং প্রয়োগ করে।
  • ডেটাসেটে আউটলিয়ার্স।
  • ϵy=(xu)/(s+ϵ)sϵy
  • কোনও যুগের চূড়ান্ত ব্যাচটি ছোট হতে পারে যদি ব্যাচসাইজ করে ডেটাসেটটি অবিশ্বাস্য। মশাল ড্যাটালোএডারে একটি পতাকা রয়েছে drop_last। ছোট ব্যাচসাইজ = উচ্চতর বৈকল্পিক

এখন কেন আপনি এডামের সাথে দেখেন, এসজিডির সাথে নয়? স্পষ্টতই আপনি আদমের সাথে কম ক্ষতিতে পৌঁছেছেন। যেমন আগেই উল্লেখ করা হয়েছে, যদি কিছু পর্যবেক্ষণ ব্যতীত ৯৯.৯% ডেটাসেটের এক পর্যায়ে অপটিমা থাকে তবে এই পর্যবেক্ষণটি "না" চিৎকার করে এবং স্থানীয় মিনিমা থেকে এলোমেলোভাবে যখন কোনও ব্যাচে নির্বাচিত হয় তখন হতে পারে। আপনি যদি এটি প্রতিটি dataset_size//batch_size+1পদক্ষেপ দেখেন তবে এটি সম্ভবত চূড়ান্ত ব্যাচসাইজ ছোট হওয়ার কারণে। আমি বাজি ধরি আপনি এসজিডি স্পাইকটিও দেখতে পাবেন যদি আপনি এটি কম ক্ষতির দিকে পৌঁছে দেন।

বোনাস: গতিবেগ-অপ্টিমাইজার (অ্যাডাম) এর সাথে আপনার সত্যিকারের দ্রুত হ্রাস হ'ল বোঝাতে পারে যে কিছু স্তর (ইনপুট স্তর? আউটপুট স্তর?) স্কেল ছাড়ার (বড় / ছোট ওজন পর্যন্ত) আরম্ভের উপায়।

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