আমি বুঝতে পারি যে স্টোকাস্টিক গ্রেডিয়েন্ট বংশোদ্ভূত ট্র্যাকিং ডেটাসেটের পৃথক নমুনা সহ প্রতিটি পুনরাবৃত্তি আপডেট করে ব্যাকপ্রোপেশন ব্যবহার করে নিউরাল নেটওয়ার্কটি অনুকূল করতে ব্যবহৃত হতে পারে। ব্যাচের আকার কত বড় হওয়া উচিত?
আমি বুঝতে পারি যে স্টোকাস্টিক গ্রেডিয়েন্ট বংশোদ্ভূত ট্র্যাকিং ডেটাসেটের পৃথক নমুনা সহ প্রতিটি পুনরাবৃত্তি আপডেট করে ব্যাকপ্রোপেশন ব্যবহার করে নিউরাল নেটওয়ার্কটি অনুকূল করতে ব্যবহৃত হতে পারে। ব্যাচের আকার কত বড় হওয়া উচিত?
উত্তর:
আপনি যে "নমুনা আকার" এর কথা বলছেন তা ব্যাচের আকার , হিসাবে উল্লেখ করা হয় । আপনি যখন মিনি-ব্যাচের স্টোকাস্টিক গ্রেডিয়েন্ট ডিসেন্ট (এসজিডি) দিয়ে নিউরাল নেটওয়ার্কটি প্রশিক্ষণ করেন এবং ডেটা নির্ভরশীল হন তখন ব্যাচ সাইজের প্যারামিটারটি হাইপার-প্যারামিটারগুলির মধ্যে একটি tun হাইপার-প্যারামিটার অনুসন্ধানের সর্বাধিক প্রাথমিক পদ্ধতিটি শিখার হার এবং ব্যাচের আকারের উপরে একটি গ্রিড অনুসন্ধান করা যাতে একটি জুড়ি তৈরি হয় যা নেটওয়ার্ককে রূপান্তর করে।
ব্যাচের আকারটি কী হওয়া উচিত তা বোঝার জন্য, ব্যাচের গ্রেডিয়েন্ট বংশোদ্ভূত, অনলাইন এসজিডি এবং মিনি-ব্যাচের এসজিডির মধ্যে সম্পর্কটি গুরুত্বপূর্ণ। মিনি ব্যাচের এসজিডি-তে ওজন আপডেটের ধাপের জন্য সাধারণ সূত্র এখানে দেওয়া হয়েছে, যা তিনটি ধরণেরই সাধারণীকরণ। [ ২ ]
মনে রাখবেন যে 1 এর সাথে ক্ষতির ফাংশন আর এলোমেলো পরিবর্তনশীল নয় এবং স্টোকাস্টিকের আনুমানিক নয়।
এসজিডি স্বাভাবিক "ব্যাচ" গ্রেডিয়েন্ট বংশোদ্ভুতের চেয়ে দ্রুত রূপান্তর করে কারণ এটি প্রশিক্ষণের সেটটির এলোমেলোভাবে নির্বাচিত সাবসেটটি দেখার পরে ওজনগুলি আপডেট করে। যাক আমাদের ট্রেনিং সেট হতে হবে এবং দিন । ব্যাচের আকার কেবলমাত্র :।মি ⊂ x বি এম বি = | মি |
ব্যাচের গ্রেডিয়েন্ট বংশোদ্ভূত ওজন আপডেট করে পুরো ডেটাसेट গ্রেডিয়েন্ট ব্যবহার করে ; অন্যদিকে এসজিডি একটি মিনি-ব্যাচের জন্য গড় গ্রেডিয়েন্ট ব্যবহার করে ওজন আপডেট করে । (অঙ্কের বিপরীতে গড় ব্যবহার অ্যালগরিদমকে খুব বড় পদক্ষেপ নিতে বাধা দেয় যা ডেটাসেট খুব বড় হলে অন্যথায়, আপনাকে ডেটাসেটের আকারের উপর ভিত্তি করে আপনার শিক্ষার হার সামঞ্জস্য করতে হবে)) এর প্রত্যাশিত মান এসজিডিতে ব্যবহৃত গ্রেডিয়েন্টের স্টোকাস্টিক আনুমানিকতা ব্যাচ গ্রেডিয়েন্ট বংশোদ্ভূত ব্যবস্থায় ব্যবহৃত ডিস্ট্রিমেন্টিক গ্রেডিয়েন্টের সমান। ।
প্রতিবার যখন আমরা একটি নমুনা নিই এবং আমাদের ওজন আপডেট করি তখন একে মিনি-ব্যাচ বলা হয় । প্রতিবার আমরা যখন পুরো ডেটাসেটের মধ্য দিয়ে চলি তখন একে মহাকাব্য বলা হয় ।
ধরা যাক যে আমাদের কিছু ডেটা ভেক্টর রয়েছে , একটি প্রাথমিক ওজন ভেক্টর যা আমাদের নিউরাল নেটওয়ার্ককে প্যারামিটারাইজ করে, , এবং একটি ক্ষয় ফাংশন যে আমরা হ্রাস করার চেষ্টা করছি । আমাদের কাছে যদি প্রশিক্ষণের উদাহরণ এবং একটি ব্যাচ আকার থাকে , তবে আমরা সেই প্রশিক্ষণ উদাহরণগুলি সি মিনি-ব্যাচে বিভক্ত করতে পারি:
সরলতার জন্য আমরা ধরে নিতে পারি যে টি বি দ্বারা সমানভাবে বিভাজ্য, যদিও এটি যখন হয় না, যেমনটি প্রায়শই হয় না, তার আকারের ক্রিয়া হিসাবে প্রতিটি মিনি-ব্যাচের জন্য যথাযথ ওজন নির্ধারণ করা উচিত।
ইউপস সহ এসজিডির একটি পুনরাবৃত্ত অ্যালগরিদম নীচে দেওয়া হয়েছে:
দ্রষ্টব্য: বাস্তব জীবনে আমরা মেমরি থেকে এই প্রশিক্ষণের উদাহরণের ডেটা পড়ছি এবং এবং আপনার কম্পিউটার দ্বারা করা ক্যাশে প্রাক-আনয়ন এবং অন্যান্য মেমরি ট্রিকগুলির কারণে, মেমরির অ্যাক্সেসগুলি একত্রিত হলে আপনার অ্যালগরিদম দ্রুত চলবে , যখন আপনি মেমরিটি পড়েন ক্রম এবং এলোমেলোভাবে কাছাকাছি না। সুতরাং, বেশিরভাগ এসজিডি বাস্তবায়ন ডেটাসেটটি বদল করে এবং তারপরে উদাহরণগুলি মেমোরিতে লোড করা হয় যাতে সেগুলি পড়বে।
ভ্যানিলার জন্য প্রধান প্যারামিটারগুলি (কোনও গতিবেগ নেই) উপরে বর্ণিত এসজিডি হ'ল:
আমি অ্যাপসিলনকে একটি যুগ হিসাবে একটি শিক্ষার হার পর্যন্ত ফাংশন হিসাবে ভাবতে চাই। এই ফাংশনটিকে শিখার হারের শিডিয়ুল বলা হয় ।
আপনি যদি শিক্ষার হার স্থির রাখতে চান তবে কেবল একটি ধ্রুবক ফাংশন হিসাবে এপসিলনকে সংজ্ঞায়িত করুন।
ব্যাচের আকার নির্ধারণ করে যে ওজন আপডেট করার আগে আপনি কতটি উদাহরণ দেখুন। এটি যত কম হবে, প্রশিক্ষণের সংকেত যতই উচ্চতর হবে, তত বেশি হবে, প্রতিটি পদক্ষেপের জন্য গ্রেডিয়েন্টটি গণনা করতে আরও বেশি সময় লাগবে।
উদ্ধৃতি এবং আরও পড়া:
For simplicity we can assume that D is evenly divisible by B
। আপনি কি এটি বলতে যে না টি সমানভাবে B দ্বারা বিভাজ্য হওয়া উচিত?
B is typically chosen between 1 and a few hundreds, e.g. B = 32 is a good default value, with values above 10 taking advantage of the speed-up of matrix-matrix products over matrix-vector products.
(বেনজিওর 2012 সালের কাগজ থেকে)