چجوری با ترفندهای افزایش داده، مشکل عدم تعادل کلاس‌ها رو توی طبقه‌بندی تصاویر ماهواره‌ای حل کنیم!

تصور کن یه عالمه عکس با کیفیت خیلی بالا از شهرها و مناطق مختلف داری که می‌خوای بفهمی تو هرکدوم دقیقاً چی هست: خونه، جاده، پارک، و خلاصه انواع کاربری زمین. این عکس‌ها که بهشون می‌گن “تصاویر سنجش از دور” (Remote Sensing imagery)، کلی اطلاعات باحال بهت میدن، ولی خب طبقه‌بندی کردن‌شون اونقدرها هم آسون نیست.

واسه اینکه خوب بتونی بفهمی چی تو عکس‌ها هست، معمولاً باید کلی عکس برچسب‌خورده (labelled samples) داشته باشی. یعنی عکس‌هایی که یکی قبلاً، مثلاً زده گفته اینجا تقاطع خیابونه یا اونجا ساختمونه. مشکل اینجاست که توی بعضی دسته‌ها (مثل خیابون یا تقاطع)، عکس خیلی کمه و مثلاً از ساختمون‌ها و زمین‌های کشاورزی صد برابر بیشتر داریم! به این میگن “عدم تعادل کلاس‌ها” (Class Imbalance)، یعنی یه سری دسته عکس زیاد داریم، یه سری خیلی کم.

قبلاً با روش‌های سنتی سعی می‌کردن این رو حل کنن، ولی مشکل اینجاست که این روش‌ها معمولاً جواب نمی‌دن، مخصوصاً وقتی دنبال جواب دقیق و حرفه‌ای باشی. پس اینجا مدل‌های یادگیری عمیق (Deep Learning) وارد میشن، یعنی یه جور هوش مصنوعی که خودش الگوها رو پیدا می‌کنه و کار رو برات راحت‌تر می‌کنه.

حالا چه راه‌حلی پیشنهاد شد؟ اومدن عملا یه مجموعه داده درست کردن با عکس‌های خیلی دقیق (به اینا می‌گن VHR: Very High Resolution)، بعد این عکس‌ها رو برچسب زدن توی ۹ دسته مختلف از کاربری زمین (LULC: Land Use/Land Cover، یعنی استفاده از زمین مثل مسکونی یا کشاورزی و …). مشکل چی بود؟ نسبت عدم تعادل کلاس‌ها (Imbalance Ratio یا IR) خیلی بالا بود، یعنی بعضی کلاس‌ها (مثلاً تقاطع‌ها) اصلاً عکس زیادی نداشتن.

اینجا ترفند “افزایش داده” یا Data Augmentation به دادشون رسید؛ یعنی با روش‌هایی مثل برعکس کردن عکس (Mirroring)، چرخوندن (Rotation)، بریدن عکس (Cropping)، و حتی ور رفتن به رنگ و نور عکس (مثل تغییردادن Hue, Saturation, Value که همون H-S-V یا ته‌رنگ و اشباع‌زدگی و روشنایی هست، و غیره)، کاری کردن که تعداد نمونه‌های هر دسته تقریباً برابر شه. یه ترفند دیگه هم استفاده از “تبدیل گاما” (Gamma Transformation) بود که کمک می‌کنه تصویر روشن یا تیره‌تر شه و مدل هوشمندتر یاد بگیره.

نتیجه چی شد؟ نسبت عدم تعادل که اولش 9.38 بود، با این حرکات رسید به 1.28؛ یعنی تقریباً همه دسته‌ها عکس‌های تقریباً هم‌اندازه داشتن و مدل دیگه گیج نمی‌شد.

تازه این رو روی ۴ مدل معروف یادگیری عمیق تست کردن: MobileNet-v2، ResNet101، ResNeXt101_32×32d و Transformer (که این آخری خیلی این روزا محبوب شده برای درک تصویر و زبان). مدل‌ها رو روی داده‌های قبلی و همین داده‌های جدید مقایسه کردن.

نتیجه‌ها واقعاً شگفت‌انگیز بود. اون دسته‌هایی که نمونه خیلی کم داشتن، مثلاً تقاطع‌ها، دقت (Precision) و بازیابی (Recall) شون رو تا 128٪ و 102٪ بیشتر شد! یعنی مدل الان توانایی خیلی بیشتری پیدا کرده بود که تقاطع‌ها رو درست تشخیص بده و کمتر قاطی کنه.

در کل، معیارهای مهم مثل میانگین کاپا (Kappa coefficient که یه معیار برای کیفیت پیش‌بینی هست) و دقت کلی (Overall Accuracy یا OA) به ترتیب 11.84% و 12.97% بیشتر شد. جالب‌تر اینکه مدل خیلی باثبات‌تر عمل کرد، یعنی اختلاف یادگیری بین دسته‌ها خیلی کم شد و دیگه “طبقه‌بندی مغرضانه” (Classification Bias، یعنی مدل یه دسته رو خیلی خوب تشخیص بده و بقیه رو بد) اتفاق نمی‌افتاد.

خلاصه اگر بخوای یه مدل توپ واسه طبقه‌بندی تصاویر ماهواره‌ای داشته باشی، حتماً باید داده‌هات رو با ترفندهای Data Augmentation برابر کنی تا مدل بهتر و عادلانه‌تر یاد بگیره و نتیجه بترکونه! اگه خواستی وارد این حوزه بشی، حتما یادت باشه که این کار جواب میده!

منبع: +