কনভলিউশনাল নিউরাল নেটওয়ার্কস (সিএনএন) দ্বারা ভারসাম্যহীন ডেটাসেটকে কীভাবে শ্রেণিবদ্ধ করা যায়?


10

বাইনারি শ্রেণিবদ্ধকরণ কার্যে আমার ভারসাম্যহীন ডেটাসেট রয়েছে, যেখানে ইতিবাচক পরিমাণ বনাম নেতিবাচক পরিমাণ 0.3% বনাম 99.7% is ধনাত্মক এবং নেতিবাচক মধ্যে ব্যবধান বিশাল। আমি যখন সিএনএনকে এমএনআইএসটি সমস্যায় ব্যবহৃত কাঠামো দিয়ে প্রশিক্ষণ দিই, পরীক্ষার ফলাফলটি উচ্চ ফলস নেতিবাচক হার দেখায়। এছাড়াও, প্রশিক্ষণ ত্রুটির বক্ররেখা শুরুতে কয়েক যুগের মধ্যে দ্রুত নেমে যায় তবে নিম্নলিখিত পর্বগুলিতে একই মান থাকে।

আপনি দয়া করে আমাকে এই সমস্যাটি প্রক্রিয়া করার কোনও উপায় সম্পর্কে পরামর্শ দিতে পারেন? ধন্যবাদ!

উত্তর:


10

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

এ জাতীয় পরিস্থিতি পরিচালনা করার দুটি উপায় আছে।

  1. 0.3% থেকে 99.7% হিসাবে অনুপাত দেওয়া, এটি একটি অত্যন্ত স্কিউ ডেটা সেট। আপনার কাছে প্রতি 1000 নমুনার জন্য ইতিবাচক ক্লাসের 3 টি নমুনা রয়েছে। আমি বলব আপনার আরও ধনাত্মক ক্লাস পেয়ে ডেটা সেট ভারসাম্য দেখানো উচিত। যান এবং যতটা সম্ভব ইতিবাচক নমুনা পান। তারপরে, আপনি আরও সুষম ডেটাसेट ব্যবহার করতে পারেন। উদাহরণস্বরূপ, আপনি 1000 ইতিবাচক নমুনা পেতে পারেন এবং তারপরে 1000 নেতিবাচক নমুনার একটি এলোমেলো সেট বেছে নিতে এবং শ্রেণিবদ্ধকরণ তৈরি করতে পারেন। এখন, এটি উভয় ক্লাস শিখতে সক্ষম হওয়া উচিত।

  2. মিনি-ব্যাচের পরে ওজন আপডেট করার সময় একটি ওজনযুক্ত ত্রুটি পরিমাপ ব্যবহার করুন। ওজনগুলি কোনও মিনি-ব্যাচের সময় ইতিবাচক এবং নেতিবাচক শ্রেণীর নমুনার সংখ্যার সাথে অনুপাতে আপডেট করা হয়। এখন, বর্তমান পরিস্থিতিতে 3: 1000 হিসাবে অনুপাত দেওয়া হয়েছে, এমনকি এই কৌশলটি কাজ নাও করতে পারে। সুতরাং আপনি 297 আরও ইতিবাচক নমুনা পেয়ে 1000 টি নেতিবাচক নমুনার সাথে মিলিয়ে 300: 1000 এর মতো কিছুতে অনুপাত পাওয়ার চেষ্টা করতে পারেন। তারপরে 300: 1000 অনুপাতের সাথে আপনার প্রতিটি ক্লাসের নমুনার সংখ্যার ভিত্তিতে মিনি-ব্যাচগুলির সময় ত্রুটিটি ওজন করা উচিত। এই কাজ করা উচিত.


আপনি কি জানেন এখানে অনুকূল অনুপাত কী? এটি 3:10, বা অন্য কিছু?
ক্রিস্টোফার

4

আপনি এখানে সিএনএন ব্যবহার করতে চান কেন? আপনি কি অন্যান্য মডেলগুলি বিবেচনা করেছেন যা বাস্তবে ভারসাম্যহীন ডেটা পরিচালনা করে?

উদাহরণস্বরূপ, আমি নিম্নলিখিত দুটি কৌশলগুলি সত্যই আমার পক্ষে ভাল কাজ করেছে:

  • এলোমেলো বন W / SMOTE Boosting : একটি হাইব্রিড ব্যবহার করুন SMOTEযা সংখ্যালঘু শ্রেণিকে এবং সামঞ্জস্যপূর্ণ শতাংশের দ্বারা সংখ্যালঘু শ্রেণির উপরের নমুনাকে নিম্নমানের করে। প্রশিক্ষণ সেটে আপনার প্রতিক্রিয়া ভেরিয়েবল বিতরণের উপর নির্ভর করে এই শতাংশগুলি নির্বাচন করুন। আপনার আরএফ মডেল এই ডেটা ফিড। আপনার আরএফগুলির জন্য সেরা প্যারামিটার সেটিংস সন্ধানের জন্য সর্বদা ক্রস-বৈধকরণ / গ্রিড-অনুসন্ধান সম্পাদন করুন।

  • এক্সজিবিস্ট ডাব্লু / হাইপার-প্যারামিটার অপ্টিমাইজেশন : আবারও, মডেলের সেরা প্যারামিটার সেটিংস সন্ধান করার জন্য ক্রস-বৈধতা দিন বা গার্ড -অনুসন্ধান করুন। অতিরিক্তভাবে, xgboostআপনাকে ব্যবহার করে ধনাত্মক এবং নেতিবাচক শ্রেণীর ওজনের ভারসাম্য বজায় রাখতে দেয় scale_pos_weight। সম্পূর্ণ তালিকার জন্য প্যারামিটার ডকুমেন্টেশন দেখুন ।

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

(দুঃখিত, আমি কোনও মন্তব্য দিতে পারছি না, যথেষ্ট খ্যাতি নেই এবং আমি কেন জানতে চেয়েছি আপনি সিএনএন বেছে নিয়েছেন)


1

ভারসাম্যহীন ডেটাসেট সমস্ত ক্ষেত্রে একটি সাধারণ সমস্যা এবং বিশেষত কম্পিউটার দৃষ্টি এবং কনভলিউশনাল নিউরাল নেটওয়ার্ক (সিএনএন) দ্বারা পরিচালিত সমস্যাগুলির বিষয়ে উদ্বেগ প্রকাশ করে না।

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

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

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