কীভাবে গভীর স্নায়ুর জালে আন্ডারফিটিংয়ের লড়াই করা যায়


50

যখন আমি কৃত্রিম নিউরাল নেটওয়ার্কগুলি (এনএন) দিয়ে শুরু করেছি তখন আমি ভেবেছিলাম যে আমাকে মূল সমস্যা হিসাবে ওভারফিটিংয়ের সাথে লড়াই করতে হবে। তবে অনুশীলনে আমি আমার এনএনকে 20% ত্রুটি হারের বাধা পেরিয়ে আনতে পারি না। আমি এলোমেলো বনেও আমার স্কোরকে হারাতে পারি না!

আমি কোনও এনএনএনকে ডেটাতে ট্রেন্ড ক্যাপচার শুরু করতে কী করা উচিত সে সম্পর্কে খুব সাধারণ বা খুব সাধারণ পরামর্শ চাইছি না।

এনএন বাস্তবায়নের জন্য আমি থিয়ানো স্ট্যাকড অটো এনকোডারটি টিউটোরিয়াল থেকে কোড সহ ব্যবহার করি যা এমএনআইএসটি ডেটাসেটকে শ্রেণিবদ্ধ করার জন্য দুর্দান্ত (5% ত্রুটির চেয়ে কম) কাজ করে। এটি একটি মাল্টিলেয়ার পার্সেপেট্রন, শীর্ষে সফটম্যাক্স স্তর সহ প্রতিটি লুকানো পরে স্বয়ংক্রিয়কোডার হিসাবে প্রাক প্রশিক্ষণ প্রাপ্ত ( টিউটোরিয়াল , অধ্যায় 8 এ সম্পূর্ণ বর্ণিত )। এখানে ~ 50 ইনপুট বৈশিষ্ট্য এবং 10 ডলার আউটপুট ক্লাস রয়েছে। এনএন এর সিগময়েড নিউরন রয়েছে এবং সমস্ত ডেটা [0,1] এ স্বাভাবিক করা হয়। আমি প্রচুর বিভিন্ন কনফিগারেশন চেষ্টা করেছি: তাদের মধ্যে লুকানো স্তর এবং নিউরনের সংখ্যা (100-> 100-> 100, 60-> 60-> 60, 60-> 30-> 15, ইত্যাদি), বিভিন্ন শিক্ষা এবং প্রাক ট্রেন হার, ইত্যাদি

এবং আমি যে সর্বোত্তম জিনিসটি পেতে পারি তা বৈধতা সেটটিতে 20% ত্রুটি হার এবং পরীক্ষার সেটটিতে 40% ত্রুটি হার।

অন্যদিকে, যখন আমি র‌্যান্ডম ফরেস্ট ব্যবহার করার চেষ্টা করি (সাইকিট-শিখুন থেকে) আমি সহজেই বৈধতা সেটটিতে 12% ত্রুটি হার এবং পরীক্ষার সেটটিতে 25% (!) পাই।

এটি কীভাবে হতে পারে যে প্রাক-প্রশিক্ষণের সাথে আমার গভীর এনএন এত খারাপ আচরণ করে? আমার কি চেষ্টা করা উচিত?

উত্তর:


34

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

এছাড়াও আমি নিম্নলিখিত কাগজপত্র খুব দরকারী:

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


14

যখন বন্ধুর উত্তরটি নিউরাল নেটওয়ার্কগুলি কীভাবে সঠিকভাবে টিউন করা (অত্যন্ত) কঠিন হতে পারে সে সম্পর্কে আরও কিছু জানতে শেখার জন্য কিছু দুর্দান্ত পয়েন্টার দেয়, তবে আমি ভেবেছিলাম যে নিউরাল নেটওয়ার্কের শীর্ষস্থানীয় পারফরম্যান্স শ্রেণিবদ্ধকরণ আর্কিটেকচারগুলিতে বর্তমানে ব্যবহৃত কয়েকটি নির্দিষ্ট কৌশল তালিকাভুক্ত করা সহায়ক হতে পারে thought সাহিত্য।

রৈখিক রৈখিক ক্রিয়াকলাপগুলি

আপনার ক্ষেত্রে প্রথম যেটি সহায়তা করতে পারে তা হ'ল লজিস্টিক সিগময়েড - - থেকে আপনার মডেলটির অ্যাক্টিভেশন ফাংশনটি স্যুইচ করা to সংশোধিত রৈখিক (ওরফে রিলু) - ।f(z)=(1+ez)1f(z)=max(0,z)

রিলু অ্যাক্টিভেশনের দুটি বড় সুবিধা রয়েছে:

  • এর আউটপুটটি এবং এর জন্য একটি সত্য শূন্য (শূন্যের নিকটে কেবল একটি ছোট মান নয়)z0
  • এর ডেরাইভেটিভ ধ্রুবক, জন্য বা জন্য 1 ।z0z>0

রেলু ইউনিটগুলির একটি নেটওয়ার্ক মূলত তাত্পর্যপূর্ণভাবে অনেকগুলি রৈখিক নেটওয়ার্কের নকশার মতো কাজ করে, কারণ ইনপুট প্রাপ্ত ইউনিটগুলি মূলত "বন্ধ" থাকে (তাদের আউটপুট 0 হয়), তবে ইনপুট প্রাপ্ত এককগুলি একক লিনিয়ারে পতিত হয় যে ইনপুট জন্য মডেল। এছাড়াও ধ্রুবক ডেরাইভেটিভগুলি গুরুত্বপূর্ণ কারণ রিলু অ্যাক্টিভেশন সহ একটি গভীর নেটওয়ার্ক বিন্যাসযোগ্য গ্রেডিয়েন্ট সমস্যা এড়াতে ঝোঁকায় এবং স্তরবিহীন প্রাক-প্রশিক্ষণ ছাড়াই প্রশিক্ষণ পেতে পারে।z0z>0

এই বিষয়গুলি সম্পর্কে একটি ভাল কাগজের জন্য গ্লোরোট, বর্ডেস এবং বেঞ্জিওর (" http://jmlr.csail.mit.edu/proceedings/papers/v15/glorot11a/glorot11a.pdf ) দ্বারা" ডিপ স্পার্স রেকটিফায়ার নিউরাল নেটওয়ার্ক "দেখুন ।

বাদ পরা

গত কয়েক বছরে অনেক গবেষণা গোষ্ঠী অতিরিক্ত প্রশিক্ষণ এড়াতে শ্রেণিবদ্ধ নেটওয়ার্কগুলিতে "ড্রপআউট" ব্যবহারের পক্ষে পরামর্শ দিচ্ছে। (উদাহরণস্বরূপ দেখুন "ড্রপআউট: স্নায়ু নেটওয়ার্ককে অতিরিক্ত মান্যতা থেকে বিরত রাখার সহজ উপায়" শ্রীবাদাস্তব, হিন্টন, ক্রিজেভস্কি, সুটসকিভার, এবং সালখুতদিনভ http://www.cs.toronto.edu/~hinton/absps/JMLRrodout.pdf দ্বারা ) ড্রপআউট, প্রশিক্ষণের সময়, প্রদত্ত স্তরের ইউনিটগুলির কিছু ধ্রুবক অনুপাত এলোমেলোভাবে প্রতিটি ইনপুট জন্য 0 এ সেট করা থাকে যা নেটওয়ার্ক প্রক্রিয়া করে। এটি "অনুপস্থিত" ইউনিটগুলির জন্য "মেক আপ" করতে 0-তে সেট না থাকা ইউনিটগুলিকে বাধ্য করে। শ্রেণিবিন্যাসের কাজগুলিতে নিউরাল নেটওয়ার্ক মডেলগুলির জন্য ড্রপআউট চূড়ান্ত কার্যকর নিয়মিতকরণ বলে মনে হচ্ছে be এটি সম্পর্কে একটি ব্লগ নিবন্ধটি দেখুন : http: // ফাস্ট এমএমএল।


7
তবে প্রশ্ন হ'ল আন্ডারফিটিং সম্পর্কে, ওভারফিটিং নয়।
ভ্যালেন্টাস

8

আপনি মাইক্রোসফ্ট রিসার্চ এর গবেষকদের দ্বারা নিম্নলিখিত কাগজ পড়তে আগ্রহী হতে পারে:

কাইমিং হি, জিয়ানজিউ জাং, শাওকিং রেন, জিয়ান সান: আরক্সিভ , 2015-তে চিত্র স্বীকৃতির জন্য গভীর রেসিডুয়াল লার্নিং

আপনার মত একই সমস্যা ছিল:

যখন গভীর নেটওয়ার্কগুলি রূপান্তর শুরু করতে সক্ষম হয়, তখন একটি অবক্ষয় সমস্যাটি প্রকাশিত হয়: নেটওয়ার্কের গভীরতা বাড়ার সাথে সাথে নির্ভুলতা স্যাচুরেটেড হয়ে যায় (যা উদ্বেগজনক হতে পারে) এবং তারপরে দ্রুত হ্রাস পায়। অপ্রত্যাশিতভাবে, এই ধরনের অবক্ষয় অত্যধিক মানানসইয়ের দ্বারা ঘটে না এবং উপযুক্ত গভীর মডেলটিতে আরও স্তর যুক্ত করা উচ্চ প্রশিক্ষণের ত্রুটির দিকে পরিচালিত করে , [১১, ৪২] তে বর্ণিত হিসাবে এবং আমাদের পরীক্ষাগুলি দ্বারা ভালভাবে যাচাই করা হয়েছে।

সমস্যা সমাধানের জন্য, তারা একটি এড়িয়ে যাওয়া আর্কিটেকচার ব্যবহার করেছে। এর সাথে, তারা খুব গভীর নেটওয়ার্ক (1202 স্তর) প্রশিক্ষিত এবং ILSVRC 2015 চ্যালেঞ্জের সেরা ফলাফল অর্জন করেছে।


আপনার উত্তরগুলির জন্য আপনাকে ধন্যবাদ এটি ভ্যাল সেটে অল্প সংখ্যক ডেটার জন্য হ্যাপেন হতে পারে তবে কিছু সময় এটি ভাল সেটের উপর নির্ভর করে না। আমি জিজ্ঞাসা করছি যে অন্য কোনও কারণ আছে যেখানে প্রশিক্ষণ আইসির চেয়ে ভাল ফলটি বেশি ??
সুদীপ দাস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.