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