Chapter 20 of 28
Where CNNs shine, and where they quietly break
কম্পিউটার ভিশনের মতো শক্তিশালী প্রযুক্তির একটি চমৎকার সুনাম রয়েছে এবং CNN এই সুনাম খুব সততার সাথেই অর্জন করেছে — বিগত এক দশক ধরে প্রায় প্রতিটি ভিশন টাস্কে এটি স্টেট-অফ-দ্য-আর্ট বা সেরা ফলাফল উপহার দিয়েছে। তবে কোনো একক টুল বা প্রযুক্তিকে সব জায়গায় অন্ধের মতো সেরা মনে করাই হলো প্রোডাকশনে বড় ব্যর্থতা ডেকে আনার অন্যতম কারণ। যে CNN-টি একটি সাজানো ল্যাবরেটরি ডেটাসেটে ৯৯% অ্যাকুরেসি পায়, সেটি একটি সাধারণ স্টপ সাইনের ওপর লাগানো একটি আঠালো স্টিকার দেখে বিভ্রান্ত হতে পারে, কোনো অপ্রত্যাশিত টেক্সচার বা বুনট দেখে ভুল সিদ্ধান্ত দিতে পারে, অথবা কোনো বস্তুকে এর আগে যে পজিশনে দেখা যায়নি সেভাবে দেখলে পুরোপুরি অন্ধ হয়ে যেতে পারে। CNN-এর শক্তির জায়গা কোনটি, দুর্বলতা কোথায় এবং ঠিক কোন কোন জায়গায় এরা নিঃশব্দে ভেঙে পড়ে — তা পুঙ্খানুপুঙ্খ জানাই হলো একটি খেলনা ডেমো মডেল বনাম বাস্তব জগতের সফল মডেলের মধ্যে আসল পার্থক্য।
CNN-এর সমস্ত সুবিধা ও অসুবিধাগুলোর জন্ম মূলত একই উৎস থেকে: স্বয়ং কনভোলিউশন অপারেশন (convolution operation)। ওজন শেয়ারিং (weight sharing) ও লোকাল রিসেপ্টিভ ফিল্ডের (local receptive field) কারণেই CNN অত্যন্ত প্যারামিটার-সাশ্রয়ী এবং ছবির যেকোনো পজিশনের প্যাটার্ন অনায়াসে সনাক্ত করতে পারে — তবে ঠিক এই লোকাল বৈশিষ্ট্যের কারণেই একটি CNN-এর কোনো বস্তুর সামগ্রিক বা global আকৃতি ও ত্রিমাত্রিক (3D) গঠন সম্পর্কে কোনো সহজাত ধারণা থাকে না, এবং মানুষ যে লোকাল টেক্সচার বা বুনটের বৈচিত্র্যকে সহজেই উপেক্ষা করতে পারে, মডেলটি তার জালে খুব সহজে জড়িয়ে পড়ে ভুল করে। এটি ইঞ্জিনিয়ারিংয়ের কোনো ত্রুটি নয় — এটি মূলত কনভোলিউশনের সেই সব মৌলিক অনুমানেরই ফল যা মডেলটিকে সফল হতে সাহায্য করেছে।
স্বয়ংক্রিয় ফিচার লার্নিং (Automatic Feature Learning)
ম্যানুয়ালি ফিচার ডিজাইন করার কোনো প্রয়োজন নেই — মডেল সরাসরি ডেটা দেখেই দরকারি ফিল্টারগুলো নিজে নিজে শিখে নেয়।
প্যারামিটার দক্ষতা (Parameter Efficiency)
ওজন শেয়ারিং বা weight sharing-এর কারণে সাধারণ MLP-র তুলনায় ওজনের প্যারামিটার সংখ্যা বা parameters-এর সংখ্যা বহুগুণ হ্রাস পায়।
অনুবাদ অপরিবর্তনশীলতা (Translation Invariance)
পুলিংয়ের সাহায্যে ছবিতে প্যাটার্নের অবস্থান যেখানেই হোক না কেন তা সনাক্ত করতে পারে।
হায়ারার্কিকাল রিপ্রেজেন্টেশন (Hierarchical Representation)
মডেলটি শুরুর লেয়ারগুলোতে খুব সাধারণ লাইন বা এজ শেখে এবং গভীর লেয়ারগুলোতে জটিল অবজেক্টের পার্টস বা অংশ চেনা শুরু করে।
টাস্ক পারফরম্যান্স (Strong Task Performance)
ইমেজ ক্লাসিফিকেশন, অবজেক্ট ডিটেকশন ও সেগমেন্টেশনের মতো কাজে এটি দীর্ঘ সময় ধরে শীর্ষস্থান ধরে রেখেছে।
সহজ ট্রান্সফার লার্নিং (Transfer-Learning Friendly)
ImageNet-এ প্রিটেইনড করা বড় মডেলকে সামান্য ডেটা ও কম সময়ে নতুন যেকোনো কাজের জন্য চমৎকারভাবে ফাইন-টিউন করা যায়।
বিশাল ডেটার চাহিদা (Data Hungry)
সম্পূর্ণ শূন্য থেকে একটি প্রতিযোগিতামূলক CNN ট্রেইন করতে প্রচুর পরিমাণে লেবেলড ডেটাসেটের প্রয়োজন হয়।
অধিক কম্পিউটেশনাল খরচ (Computationally Expensive)
গভীর CNN ট্রেইন করতে জিপিউ/টিপিউ (GPU/TPU) রিসোর্স ও কয়েক দিন সময়ের প্রয়োজন হয়।
সীমিত ঘূর্ণন ও স্কেল অপরিবর্তনশীলতা
CNN-এর ঘূর্ণন (rotation) ও স্কেল (scale) পরিবর্তনের কোনো সহজাত ইনভ্যারিয়েন্স নেই — pooling শুধু সামান্য স্থানচ্যুতির নমনীয়তা দেয়।
ব্ল্যাক-বক্স প্রকৃতি (Black-Box Nature)
মডেলটি ঠিক কী দেখে একটি সিদ্ধান্ত নিয়েছে তা সুনির্দিষ্টভাবে ব্যাখ্যা করা কঠিন, যদিও Grad-CAM এর মতো ভিজ্যুয়াল টুল আংশিক সাহায্য করে।
অ্যাডভারসারিয়াল অ্যাটাকের ঝুঁকি (Adversarial Attacks)
পিক্সেলের অতি ক্ষুদ্র ও মানুষের চোখে অদৃশ্য পরিবর্তন করে মডেলের ১০০% নিশ্চিত সঠিক সিদ্ধান্তকে আত্মবিশ্বাসী ভুল সিদ্ধান্তে পরিণত করা সম্ভব।
ফিক্সড ইনপুট সাইজ (Fixed Input Size)
অনেক ক্লাসিক CNN একটি নির্দিষ্ট ইনপুট রেজোলিউশন আশা করে, যদিও fully-convolutional ও adaptive-pooling ভ্যারিয়েন্টগুলো এই বাধ্যবাধকতা কিছুটা শিথিল করে।
| সুবিধাসমূহ (Advantages) | সীমাবদ্ধতাসমূহ (Limitations) |
|---|---|
| স্বয়ংক্রিয় ফিচার লার্নিং | বিশাল লেবেলড ডেটাসেটের চাহিদা |
| প্যারামিটার দক্ষতা (weight sharing) | ট্রেনিংয়ের জন্য অত্যন্ত কম্পিউটেশনালি ব্যয়বহুল |
| কিছুটা translation invariance বা অনুবাদ অপরিবর্তনশীলতা | সীমিত ঘূর্ণন বা rotation ও scale ইনভ্যারিয়েন্স |
| ধাপভিত্তিক বা hierarchical ফিচার লেভেল | সামগ্রিক সিদ্ধান্ত গ্রহণের প্রক্রিয়াটি মূলত একটি ব্ল্যাক বক্স |
| চমৎকার ট্রান্সফার লার্নিং সাপোর্ট | অ্যাডভারসারিয়াল অ্যাটাকের কাছে অত্যন্ত ঝুঁকিপূর্ণ |
"DC-LOVF" (ডিসি-লভ) — Data-hungry, Compute-heavy, Limited invariance, Opaque (black box), Vulnerable (adversarial), Fixed input size।
এগুলো কোনো কাল্পনিক বা দুর্লভ ঘটনা নয় — যখনই আমাদের ল্যাবরেটরির CNN বাস্তব জগতের নোংরা ও এলোমেলো ডেটার মুখোমুখি হয়, তখনই এই প্যাটার্নগুলো বারবার দেখা যায়।
একজন আক্রমণকারী একটি ছবিতে এমন নয়েজ যোগ করতে পারে যা মানুষের চোখে সম্পূর্ণ অদৃশ্য, অথচ CNN-কে অত্যন্ত আত্মবিশ্বাসের সাথে ভুল ক্লাসিফাই করাতে বাধ্য করে — যেমন একটি পান্ডাকে আত্মবিশ্বাসের সাথে গিবন হিসেবে রিলেবেল করে দেওয়া। এটি সম্ভব হয় কারণ CNN-এর ডিসিশন বাউন্ডারি, স্বাভাবিক ছবিতে সঠিক হলেও, এমন কিছু দিকে ইনপুটের খুব কাছাকাছি চলে আসতে পারে যা মানুষ কখনো উপলব্ধি করে না, আর সেই পার্টার্বেশন বা বিচ্যুতি ঠিক সেই দিকগুলোর একটির বরাবর ঠেলে দেওয়ার জন্য সুনির্দিষ্টভাবে তৈরি করা হয়।
দিনের বেলার রাস্তার ছবিতে ট্রেইন করা একটি CNN-কে যদি রাতের বেলার ইনফ্রারেড ক্যামেরা বা সম্পূর্ণ ভিন্ন অঞ্চলের ছবি দেখানো হয়, তবে মডেলটি প্রায়ই চরম ভুল সিদ্ধান্ত দেয় এবং সেই ভুলের প্রতি তার আত্মবিশ্বাস থাকে তুঙ্গে — কারণ এর ভেতরে "এই ছবিটি আমার চেনা জগতের বাইরে" এমন কোনো সতর্কবার্তা দেওয়ার মেকানিজম থাকে না।
বাস্তব ছবিতে যখন কোনো বস্তু আংশিক ঢাকা পড়ে — যেমন বেড়ার ওপাশে লুকিয়ে থাকা কুকুর বা হাত দিয়ে ঢাকা মুখের অংশ — তখন প্রায়ই সেগুলো ভুল ক্লাসিফাই হয়, কারণ দৃশ্যমান অংশটুকুতে মডেলের শেখা পার্থক্যসূচক বৈশিষ্ট্যগুলোর যথেষ্ট প্রমাণ নাও থাকতে পারে।
স্ট্যান্ডার্ড CNN প্রায়ই সামগ্রিক আকৃতির চেয়ে লোকাল টেক্সচার বা বুনটের ওপর বেশি নির্ভর করে। একটি ক্লাসিক উদাহরণ: একটি বিড়ালের ছবির টেক্সচার বদলে হাতির চামড়ার টেক্সচার বসিয়ে দিলে অনেক CNN সেটিকে হাতি হিসেবে ক্লাসিফাই করে ফেলে, যদিও আকৃতি স্পষ্টভাবে একটি বিড়ালেরই — এমন ভুল কোনো মানুষ কখনো করবে না।
যেসব ক্লাস ট্রেনিং সেটে মাত্র কয়েকবার দেখা গেছে, সেগুলোর ক্ষেত্রে মডেলের পারফরম্যান্স খুবই দুর্বল হয়, কারণ মডেলটি সেই ক্লাসের স্বতন্ত্র বৈশিষ্ট্যগুলো শেখার মতো প্রর্যাপ্ত সংকেত লাভ করতে পারেনি।
বারবার পুলিং ও স্ট্রাইডিংয়ের ফলে নেটওয়ার্কের গভীরে যাওয়ার সাথে সাথে ফিচার ম্যাপের স্প্যাশিয়াল রেজোলিউশন সংকুচিত হতে থাকে। মূল ছবিতে সত্যিকারের ছোট কোনো বস্তু নেটওয়ার্কের পরবর্তী লেয়ারগুলোতে পৌঁছানোর মধ্যেই মাত্র এক-দুই পিক্সেলে — অথবা একেবারে শূন্যে — নেমে আসতে পারে, ফলে সেটি সম্পূর্ণভাবে মিস হয়ে যায়।

প্রতিটি ডেপ্লয়েড ভিশন সিস্টেমকে শুধু বেঞ্চমার্ক অ্যাকুরেসির পেছনে না ছুটে এই ব্যর্থতার ধরনগুলোর জন্যও প্রস্তুত থাকতে হয়। সেলফ-ড্রাইভিং পারসেপশন স্ট্যাক বিশেষভাবে রিডান্ড্যান্ট সেন্সর ব্যবহার করে, কারণ শুধু ক্যামেরা-নির্ভর CNN-কে occlusion বা adversarial-দেখতে স্টিকার দিয়ে সহজেই বিভ্রান্ত করা যায়; মেডিকেল ইমেজিং টুলগুলোকে ভিন্ন ভিন্ন হাসপাতাল ও মেশিনের out-of-distribution স্ক্যানের ওপর যাচাই করা হয়, ঠিক এই কারণেই যে একটি স্ক্যানারের ছবিতে ট্রেইন করা মডেল অন্য স্ক্যানারের ছবিতে নীরবে ব্যর্থ হতে পারে। একটি CNN-এর ব্যর্থতার ধরনগুলো বোঝা দায়িত্বশীলভাবে এটি ব্যবহারের কোনো বাড়তি অংশ নয় — এটি একটি পূর্বশর্ত।