Overfitting – নিউরাল নেটওয়ার্ক

আমরা ইতিমধ্যে শিখেছি কিভাবে একটা মডেলকে ট্রেইন করা হয় এবং সেই মডেল ব্যবহার করে প্রেডিক্ট করা হয়। আমরা এটাও জানি কিভাবে কোন মডেলের পারফরমেন্স পরিমাপ করা হয়। নিউরাল নেটওয়ার্কে পারফরমেন্স এর কথা আসলে দুইটা টার্ম সামনে চলে আসে। Overfitting এবং Underfitting। আজকে আমরা শুধু Overfitting নিয়ে কথা বলব।

Overfitting কিঃ Overfitting হচ্ছে মডেলের এমন একটা অবস্থা যখন এটা ট্রেইন ডেটা অনেক ভালোমতো প্রেডিক্ট করতে পারে, কিন্তু ট্রেইন ডেটার বাইরে কোন ডেটা দিলে গুলিয়ে ফেলে। আরো সাধারণ ভাবে বলতে গেলে এই অবস্থানে মডেলের Train Accuracy অনেক ভালো। কিন্তু Test Accuracy খুবই খারাপ।

এটাকে আপনি গণিতের মূখস্তবিদ্যার সাথে তুলনা করতে পারেন। ধরুন কোন একজন ছাত্রকে আপনি ১০ টি অংক দিয়েছেন এবং অংকগুলোর সমাধানও দিয়েছেন। আপনার ছাত্রটি এই ১০টি সমাধান থেকে এমন ভাবে শিখেছে যে আপনি যখনই তাকে এই ১০ টির মধ্য থেকে অংক করতে দিচ্ছেন, সে খুব ভালোমতো সমাধান করে দিচ্ছে। কিন্তু আপনি যখনই অংকগুলো একটু ঘুরিয়ে দিচ্ছেন, অথবা নাম্বারগুলো পালটে দিচ্ছে, সে আর করতে পারছে না। তার এই অবস্থাই হলো Over-fitting.

যেহেতু আমরা ট্রেইন ডেটার সাথে তাদের লেবেলও দিয়ে ট্রেইন করে থাকি, সেহেতু মডেল ট্রেইন ডেটা সঠিক ভাবে প্রেডিক্ট করতে পারবে এটাই স্বাভাবিক। কিন্তু আপনার মডেল যে আজীবনই ট্রেইন ডেটার সিলেবাস থেকেই ডেটা পাবে এর কি গ্যারান্টি? টেস্ট একুরেসি বাড়ানো হবে আমাদের লক্ষ্য। যেহেতু আমাদের মডেল এটা পারছে না, তাহলে এর থেকে বের হবার উপায় কি? সমাধানে পরে যাবো, চলুন আগে দেখে আমরা কিভাবে বুঝবো যে আমাদের মডেল Overfitting এর কবলে পড়েছে কি না।

আমরা মডেল ট্রেইনের সময় দুইটা আলাদা আলাদা ডেটাসেট পাঠিয়েছিলাম। একটা ছিল ট্রেইন ডেটা এবং আরেকটা ছিল ভ্যালিডেশন ডেটা। প্রতি ইপোকে আমরা ট্রেনিং লস, ট্রেনিং একুরেসি, ভ্যালিডেশন লস এবং ভ্যালিডেশন একুরেসি দেখেছিলাম।

উপরের চিত্রে লক্ষ্য করলে দেখবেন ট্রেনিং একুরেসি অনেক বেশি ভালো, ৯৯%। অপরদিকে ভ্যালিডেশন একুরেসিও যথেষ্ট ভালো, ৮২%। এটাকে কি আপনি Overfitting বলবেন? অবশ্যই না। তাহলে কখন বলবেন? তখন বলবেন যখন দেখবেন আপনার মডেলের ট্রেনিং একুরেসি অনেক ভালো, কিন্তু ভ্যালিডেশন একুরেসি খারাপ। এবং একই সাথে প্রতি ইপোকের সাথে ভ্যালিডেশন একুরেসির কোন উন্নতিও হচ্ছে না। এটা আপনি প্রতি ইপোকের একুরেসি দেখেই বুঝতে পারছেন। কিন্তু আরো কি সহজ কোন উপায় আছে? অবশ্যই আছে। আমরা দেখেছিলাম যে কিভাবে লস/একুরেসির গ্রাফ দেখার যায়। চলুন আমাদের মডেলের একুরেসি গ্রাফ দেখি।

উপরের চিত্রের নীল রঙের লাইন হচ্ছে ভ্যালিডেশন একুরেসি এবং কমলা রঙের লাইন হচ্ছে ট্রেনিং একুরেসি। একবার তাকিয়ে বুঝতে পারছেন যে ভ্যালিডেশন একুরেসি যথেষ্ট কম আর বেড়ে যাবারও কোন সম্ভাবনা নেই। বরং আরো বাজে হয়ে যাচ্ছে। এটাকে অনেক শক্তিশালী overfitting এর অভিশাপ বলতে পারেন। মাঝের যে গ্রে রঙের লাইন দেখতে পাচ্ছেন, সেই পর্যন্ত সবকিছু কিছুটা মানানসই থাকলেও, আস্তে আস্তে আরো বাজে হয়ে গেছে।

এটা দেখে দীর্ঘশ্বাস ফেলতেই পারেন যে আই উইশ আমি ঐখানে ট্রেনিং বন্ধ করে দিতে পারতাম। কিন্তু আপনি তো আগে থেকে জানেন না যে কোন ইপোকে গিয়ে এই অভিশাপের মুখে পড়বে। তাহলে এর থেকে বাচার উপায় কি? অবশ্যই আছে। আপনি চাইলে আপনার মডেল যখনই overfitting এর দিকে আগাতে থাকবে, তখনই ট্রেনিং বন্ধ করে দিতে পারেন। চাইলে কিছু পন্থা অবলম্বন করে Overfitting রোধও করতে পারেন। সামনের পর্বে আমরা সেগুলো সম্পর্কে বিস্তারিত জানবো।


Leave a Reply

Your email address will not be published. Required fields are marked *