আমি যদি আমার এলএসটিএমকে স্লাইডিং-উইন্ডো পদ্ধতির মাধ্যমে প্রশিক্ষণ দিই তবে কি আমি তার চেয়ে বেশি উপকার করব? লোকেরা কেন এটি এলএসটিএম এর জন্য ব্যবহার করে না বলে মনে হচ্ছে?
সরলীকৃত উদাহরণের জন্য, ধরে নিন যে আমাদের অক্ষরের ক্রমটি পূর্বাভাস করতে হবে:
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
যদি আমি নীচের মিনিব্যাচগুলির সাথে আমার এলএসটিএমকে প্রশিক্ষণ দিয়ে থাকি তবে এটি খারাপ (বা আরও ভাল?):
A B C D E F G H I J K L M N, backprop, erase the cell
B C D E F G H I J K L M N O, backprop, erase the cell
.... and so on, shifting by 1 every time?
পূর্বে, আমি সর্বদা এটিকে প্রশিক্ষণ দিয়েছিলাম:
A B C D E F G H I J K L M N, backprop, erase the cell
O P Q R S T U V W X Y Z, backprop, erase the cell
একের পরিবর্তে বদলে উইন্ডোটি 2 টি এন্ট্রি ইত্যাদির দ্বারা স্লাইড করা ভাল কি? এর অর্থ কী হবে (নির্ভুলতা / অতিপরিচ্ছন্নতার দিক থেকে)?
এছাড়াও, আমি যদি কোনও ফিড-ফরোয়ার্ড নেটওয়ার্কে স্লাইডিং-উইন্ডো পদ্ধতির কাজটি করি, তবে কী এটি অত্যধিক ফিটনেস পাবে? আমি হ্যাঁ ধরে নেব, কারণ নেটওয়ার্কটি একই তথ্য অঞ্চলে খুব দীর্ঘ সময়ের জন্য উন্মুক্ত। উদাহরণস্বরূপ, এটি E F G H I J K
দীর্ঘ সময়ের জন্য উন্মুক্ত হয় ।
সম্পাদনা:
অনুগ্রহ করে মনে রাখবেন যে প্রশিক্ষণ ব্যাচগুলির মধ্যে সেল স্টেটটি মুছে ফেলা হয়েছে, সুতরাং এলএসটিএমের এই সময়ে একটি "হাতুড়ি থেকে হাতুড়ি" থাকবে। এটি OPQRSTUVWXYZ এর আগে কী ছিল তা মনে করতে অক্ষম । এর অর্থ হল যে এলএসটিএম কখনও জানতে সক্ষম হয় না যে "ও" "এম" অনুসরণ করে follows
সুতরাং, আমি ভেবেছিলাম (এইভাবে আমার পুরো প্রশ্ন), কেন এটি এটিকে মধ্যবর্তী (ওভারল্যাপিং) ব্যাচটি মাঝখানে দেবেন না ... এবং সেক্ষেত্রে কেন একাধিক ওভারল্যাপিং মিনিব্যাচ ব্যবহার করবেন না - আমার কাছে এটি একটি মসৃণ প্রশিক্ষণ সরবরাহ করবে? শেষ পর্যন্ত, এর অর্থ এলএসটিএমের জন্য একটি স্লাইডিং উইন্ডো।
উত্তর গৃহীত হওয়ার পরে আমি কিছু দরকারী তথ্য পেয়েছি:
ইংরেজি অনুবাদের প্রথম শব্দটি সম্ভবত উত্স বাক্যটির প্রথম শব্দের সাথে খুব সংযুক্ত রয়েছে। তবে এর অর্থ হ'ল 50 টি পদক্ষেপ আগে ডিকোডারকে তথ্যটি বিবেচনা করতে হবে এবং সেই তথ্যটি কোনওভাবে ভেক্টরে এনকোড করা দরকার। পুনরাবৃত্তাকার নিউরাল নেটওয়ার্কগুলিতে এ জাতীয় দীর্ঘ-পরিসরের নির্ভরতাগুলির সাথে সমস্যাগুলির জন্য পরিচিত। তত্ত্বের ক্ষেত্রে, এলএসটিএম এর মতো আর্কিটেকচারগুলির সাথে এটি মোকাবেলা করতে সক্ষম হওয়া উচিত, তবে বাস্তবে দীর্ঘ-পরিসরের নির্ভরতা এখনও সমস্যাযুক্ত।
উদাহরণস্বরূপ, গবেষকরা দেখতে পেয়েছেন যে উত্স ক্রমকে বিপরীত করা (এটি এনকোডারে পিছন দিকে খাওয়ানো) উল্লেখযোগ্যভাবে আরও ভাল ফলাফল এনে দেয় কারণ এটি ডিকোডার থেকে এনকোডার সম্পর্কিত অংশগুলিকে ছোট করে। একইভাবে, একটি ইনপুট ক্রম দু'বার খাওয়ানোও নেটওয়ার্ককে জিনিসগুলি আরও ভাল মুখস্ত করতে সহায়তা করে বলে মনে হয়। উদাহরণস্বরূপ, যদি একটি প্রশিক্ষণের উদাহরণ "জন বাড়িতে গিয়েছিল" হয়, আপনি একটি ইনপুট হিসাবে নেটওয়ার্কটিতে "জন বাড়ি গিয়েছিলেন জন বাড়ি গিয়েছিলেন" would
উত্তরটি গ্রহণ করার পরে সম্পাদনা করুন:
বেশ কয়েক মাস পরে, আমি স্লাইডিং উইন্ডো পদ্ধতির ব্যবহারে আরও বেশি ঝোঁক, কারণ এটি ডেটা আরও ভাল ব্যবহার করে। তবে সেক্ষেত্রে আপনি সম্ভবত বিবিডিডিএফজিআইজিএইচএমএমএনওকে অবশ্যই এবিসিডিএফজিআইজিএলএমএনওর প্রশিক্ষণ দিতে চান না। পরিবর্তে, ধীরে ধীরে এবং অভিন্নভাবে আপনার LSTM- র সমস্ত তথ্য "ব্রাশ-ইন" করতে, আপনার উদাহরণগুলি বদলান। এটিসিডিএফজিআইজিএইচএলএমএনও ইত্যাদির পরে এটি হাইজকেএলএমএনওপিকিউএসটিইউ প্রদান করুন এটি সরাসরি বিপর্যয়ের ভুলে যাওয়ার সাথে সম্পর্কিত। সর্বদা হিসাবে, বৈধকরণ এবং পরীক্ষার সেটটি নিবিড়ভাবে পর্যবেক্ষণ করুন এবং তাদের ত্রুটিগুলি ক্রমশ বাড়ছে দেখলেই আপনি থামুন
এছাড়াও, সিন্থেটিক গ্রেডিয়েন্ট ব্যবহার করে "হাতুড় থেকে মাথা" ইস্যুটি উন্নত করা যায়। এখানে এর সুবিধাটি দেখুন: (লিঙ্কিত উত্তরটি এর দীর্ঘতর ক্রমের সুবিধা নিয়ে আলোচনা করেছে) https: //datasज्ञान. stackexchange.com/a/32425/43077