شبکه های عصبی معماری UNet
شبکه های عصبی معماری UNet :این دوره به بررسی دقیق و عمیق مباحث شبکه های عصبی کانالوشن به صورت پایه ای می پردازد .جهت دسترسی به سایر دوره ها می توانید از لینک های زیر استفاده نمایید.
- شبکههای عصبی کانولوشنی (Convolutional Neural Networks)
- معماری( LeNet-5 سال 1998)
- معماری( Alex Net سال ۲۰۱۲)
- شبکههای عصبی معماری VGG16 و VGG19
- شبکه های عصبی معماری GoogLeNet و خانواده Inception
- شبکه های عصبی معماری ResNet
- شبکه های عصبی معماری DenseNet
- شبکه های عصبی معماری Mobile Net
- شبکه های عصبی معماری EfficientNet
- شبکه های عصبی معماری UNet
و برای مشاهده لیست تمام دوره ها به بخش مقالات مراجه نمایید.
فهرست مطالب شبکه های عصبی معماری:
- چکیده
- مقدمه
- بیان مسئله و زمینه تاریخی
- معرفی کلی معماری UNet
- ساختار Encoder–Decoder
- نقش Skip Connections در UNet
- مدل ریاضی و تحلیل محاسباتی
- فرآیند آموزش و الگوریتم Backpropagation
- توابع هزینه در UNet (Cross-Entropy و Dice Loss)
- کاربردهای عملی UNet
- مزایا و محدودیتهای UNet
- تأثیر UNet بر معماریهای بعدی Segmentation
- مقایسه UNet با معماریهای مشابه (SegNet، FCN)
- چالشها و ملاحظات عملی
- نتیجهگیری پژوهشمحور
- منابع
چکیده:
شبکه های عصبی معماری UNet که در سال ۲۰۱۵ توسط روننبرگر و همکاران معرفی شد، یکی از برجستهترین و پرکاربردترین شبکههای عصبی کانولوشنی در حوزه قطعهبندی تصویر بهویژه در تصویربرداری پزشکی محسوب میشود. هدف اصلی UNet انجام قطعهبندی دقیق پیکسلی با استفاده از دادههای آموزشی محدود است؛ چالشی که در بسیاری از کاربردهای واقعی، بهخصوص در پزشکی، بهطور جدی وجود دارد. این معماری با بهرهگیری از ساختار متقارن Encoder–Decoder و استفاده از اتصالات میانبُری (Skip Connections)، توانست مشکل از دست رفتن اطلاعات مکانی ناشی از عملیات Pooling را بهطور مؤثری برطرف کند. UNet امکان ترکیب همزمان ویژگیهای سطح بالا و اطلاعات مکانی دقیق را فراهم میکند و در نتیجه مرزهای اشیا را با دقت بالایی شناسایی مینماید. در این مقاله، معماری UNet از جنبههای مفهومی، ساختاری و تاریخی بررسی شده و جایگاه آن در تکامل معماریهای قطعهبندی تصویر تحلیل میشود.
مقدمه:
قطعهبندی تصویر (Image Segmentation) یکی از مسائل بنیادی در حوزه بینایی ماشین است که هدف آن تقسیم تصویر به نواحی معنادار و تخصیص یک برچسب مشخص به هر پیکسل میباشد. برخلاف مسائل سادهتری مانند طبقهبندی تصویر، که تنها یک برچسب کلی به تصویر نسبت داده میشود، قطعهبندی نیازمند درک دقیق ساختارهای مکانی، مرزها و جزئیات ظریف تصویر است. این مسئله در کاربردهایی نظیر تصویربرداری پزشکی، تشخیص خودکار ناهنجاریها، تحلیل تصاویر ماهوارهای و سیستمهای بینایی رباتیک نقش حیاتی ایفا میکند.
با ظهور شبکههای عصبی کانولوشنی عمیق، پیشرفتهای چشمگیری در تحلیل تصاویر حاصل شد؛ با این حال، بسیاری از معماریهای اولیه CNN برای وظایف قطعهبندی مناسب نبودند. استفاده مکرر از لایههای Pooling در این شبکهها باعث کاهش وضوح مکانی و از دست رفتن اطلاعات پیکسلی میشد. معماری UNet با هدف غلبه بر این محدودیت طراحی شد و نشان داد که میتوان با ترکیب مناسب لایههای انقباضی و انبساطی، به قطعهبندی دقیق و پایدار دست یافت. به همین دلیل، UNet بهسرعت به یکی از معماریهای مرجع در حوزه segmentation تبدیل شد.
بیان مسئله و زمینه تاریخی:
پیش از معرفی UNet، روشهای قطعهبندی تصویر عمدتاً مبتنی بر الگوریتمهای کلاسیک پردازش تصویر مانند آستانهگذاری، رشد ناحیهای، خوشهبندی و مدلهای گرافی بودند. این روشها اگرچه در شرایط کنترلشده عملکرد قابلقبولی داشتند، اما در مواجهه با نویز، تغییرات روشنایی و پیچیدگی ساختارهای واقعی تصویر، بهویژه در دادههای پزشکی، دچار افت شدید دقت میشدند.
ورود شبکههای عصبی کانولوشنی به این حوزه، امیدهای زیادی برای بهبود عملکرد segmentation ایجاد کرد، اما معماریهای اولیه مانند FCN با وجود پیشرفتهای قابلتوجه، همچنان با مشکل از دست رفتن اطلاعات مکانی دقیق روبهرو بودند. این مسئله بهخصوص در کاربردهایی مانند تشخیص تومور یا تفکیک بافتهای زیستی که مرزهای دقیق اهمیت بالایی دارند، بسیار بحرانی بود.
در چنین شرایطی، UNet با تمرکز بر حفظ همزمان اطلاعات مکانی و ویژگیهای عمیق معرفی شد. این معماری در ابتدا برای مسابقه ISBI در حوزه segmentation تصاویر پزشکی طراحی شد و نتایج آن نشان داد که حتی با مجموعهدادههای کوچک نیز میتوان به دقت بسیار بالایی دست یافت. موفقیت UNet نقطه عطفی در تاریخ segmentation محسوب میشود و مسیر توسعه معماریهای بعدی را بهطور اساسی تغییر داد.
معرفی کلی معماری UNet:
UNet یک شبکه عصبی کانولوشنی کاملاً متصل پیکسلی است که ساختاری شبیه به حرف U انگلیسی دارد. این ساختار شامل دو مسیر اصلی است: مسیر انقباضی (Encoder) که مسئول استخراج ویژگیها و کاهش تدریجی ابعاد تصویر است، و مسیر انبساطی (Decoder) که وظیفه بازسازی ابعاد تصویر و تولید نقشه قطعهبندی نهایی را بر عهده دارد. در مسیر Encoder، شبکه الگوهای بصری را از سطح پایین تا سطح بالا یاد میگیرد، در حالی که مسیر Decoder این اطلاعات را به فضای پیکسلی بازمیگرداند.
ویژگی کلیدی UNet استفاده از Skip Connections میان لایههای متناظر Encoder و Decoder است. این اتصالات باعث میشوند اطلاعات مکانی دقیق که در مراحل اولیه استخراج شدهاند، مستقیماً به مراحل بازسازی منتقل شوند. نتیجه این طراحی، تولید خروجیهایی با مرزهای دقیق و پیوسته است که برای کاربردهای حساس مانند پزشکی اهمیت حیاتی دارد. سادگی معماری در کنار قدرت بالای یادگیری، UNet را به یکی از محبوبترین مدلها در حوزه segmentation تبدیل کرده است.

ساختار Encoder–Decoder و Skip Connections در UNet:
معماری UNet بر پایه یک ساختار Encoder–Decoder متقارن طراحی شده است که هدف آن یادگیری همزمان ویژگیهای معنایی سطح بالا و حفظ اطلاعات مکانی دقیق تصویر میباشد. این ساختار بهگونهای طراحی شده که ضعفهای معماریهای کانولوشنی کلاسیک در وظایف قطعهبندی پیکسلی را برطرف کند و امکان بازسازی دقیق نواحی تصویر را فراهم آورد.
بخش Encoder (مسیر انقباضی)
بخش Encoder یا مسیر انقباضی مسئول استخراج ویژگیها از تصویر ورودی است. این بخش از چندین بلوک کانولوشنی متوالی تشکیل شده که هر بلوک معمولاً شامل دو لایه کانولوشن با کرنلهای کوچک (اغلب 3×3)، بههمراه تابع فعالساز ReLU میباشد. پس از هر بلوک کانولوشنی، یک لایه Max Pooling با اندازه 2×2 اعمال میشود که باعث کاهش ابعاد فضایی تصویر و افزایش میدان دید مؤثر نورونها میگردد.
در این مسیر، با حرکت از لایههای ابتدایی به لایههای عمیقتر، تعداد کانالهای ویژگی افزایش مییابد (مثلاً 64، 128، 256 و …)، در حالی که ابعاد مکانی تصویر کاهش پیدا میکند. این فرآیند به شبکه اجازه میدهد الگوهای پیچیدهتر و مفاهیم سطح بالاتر مانند شکل کلی اندامها یا نواحی بافتی را یاد بگیرد. با این حال، کاهش ابعاد فضایی منجر به از دست رفتن بخشی از اطلاعات مکانی دقیق میشود که در وظایف segmentation یک چالش اساسی محسوب میگردد.
بخش Decoder (مسیر انبساطی)
بخش Decoder یا مسیر انبساطی وظیفه بازسازی تدریجی ابعاد تصویر و تولید نقشه قطعهبندی نهایی را بر عهده دارد. این بخش بهصورت متقارن نسبت به Encoder طراحی شده و از عملیات Upsampling یا Transposed Convolution برای افزایش ابعاد فضایی استفاده میکند. پس از هر مرحله افزایش ابعاد، یک یا چند لایه کانولوشنی اعمال میشود تا ویژگیها پالایش شده و اطلاعات مکانی بازسازی گردد.
در مسیر Decoder، تعداد کانالها بهتدریج کاهش مییابد، در حالی که ابعاد فضایی تصویر افزایش پیدا میکند تا در نهایت خروجی هماندازه با تصویر ورودی تولید شود. این ساختار به شبکه امکان میدهد اطلاعات معنایی سطح بالا را به فضای پیکسلی منتقل کند و هر پیکسل را به یک کلاس مشخص (مثلاً پسزمینه یا ناحیه مورد نظر) نسبت دهد.
نقش حیاتی Skip Connections
نوآوری کلیدی UNet استفاده از Skip Connections میان لایههای متناظر Encoder و Decoder است. این اتصالات بهصورت مستقیم ویژگیهای استخراجشده در مسیر انقباضی را به مسیر انبساطی منتقل میکنند. هدف اصلی این طراحی جبران اطلاعات مکانی از دسترفته در فرآیند Pooling است.
Skip Connections باعث میشوند که Decoder علاوه بر ویژگیهای انتزاعی، به اطلاعات دقیق مکانی لایههای اولیه نیز دسترسی داشته باشد. این موضوع بهویژه در تشخیص مرزهای دقیق اشیا و ساختارهای ظریف اهمیت بالایی دارد. بهعنوان مثال، در تصویربرداری پزشکی، مرز بین بافت سالم و بیمار اغلب بسیار باریک و نامشخص است؛ استفاده از Skip Connections به شبکه کمک میکند این مرزها را با دقت بالا شناسایی کند.
مزایای ساختار Encoder–Decoder در UNet
ترکیب Encoder–Decoder با Skip Connections باعث ایجاد تعادلی مؤثر میان استخراج ویژگیهای عمیق و حفظ جزئیات مکانی میشود. این ساختار نهتنها دقت قطعهبندی را افزایش میدهد، بلکه فرآیند آموزش شبکه را نیز پایدارتر میسازد، زیرا مسیرهای کوتاهتری برای انتشار گرادیان فراهم میکند. به همین دلیل، UNet حتی با مجموعهدادههای کوچک نیز عملکرد قابلتوجهی از خود نشان میدهد.
مدل ریاضی و تحلیل محاسباتی:
فرض کن یک تصویر ورودی بسیار کوچک داریم (برای سادگی فقط یک کانال):
تصویر ورودی (4×4):

فیلتر کانولوشن (3×3):

خروجی کانولوشن بدون (padding)
اگر فیلتر را روی گوشه بالا–چپ تصویر اعمال کنیم:

پس مقدار اولین پیکسل خروجی –2 میشود.
بعد از اعمال ReLU:
ReLU(-2) = 0
این دقیقاً همان کاری است که در Encoder UNet انجام میشود.
در Decoder، همین نقشه ویژگی بزرگتر شده و با ویژگیهای مرحله Encoder ترکیب (Skip Connection) میشود.
کد پایتون بسیار مختصر UNet (PyTorch):
این کد واقعی، کوتاه و قابل اجرا است و دقیقاً نشان میدهد UNet چطور ساخته میشود:
import torch
import torch.nn as nn
class SimpleUNet(nn.Module):
def __init__(self):
super().__init__()
self.enc = nn.Conv2d(1, 8, kernel_size=3, padding=1)
self.pool = nn.MaxPool2d(2)
self.up = nn.ConvTranspose2d(8, 8, kernel_size=2, stride=2)
self.dec = nn.Conv2d(16, 1, kernel_size=3, padding=1)
def forward(self, x):
e = torch.relu(self.enc(x)) # Encoder
p = self.pool(e) # Downsampling
u = self.up(p) # Upsampling
c = torch.cat([u, e], dim=1) # Skip Connection
out = self.dec(c) # Output
return out
اجرای مدل روی یک تصویر نمونه
x = torch.randn(1, 1, 64, 64) # تصویر ورودی
model = SimpleUNet()
y = model(x)
print(y.shape)
خروجی:
torch.Size([1, 1, 64, 64])
Encoder → استخراج ویژگیها
Decoder → بازسازی دقیق مکان پیکسلها
Skip Connection → حفظ جزئیات مرزی (خیلی مهم در پزشکی)
فرآیند آموزش و Backpropagation در UNet:
فرآیند آموزش شبکه UNet مشابه سایر شبکههای عصبی عمیق است، اما به دلیل ساختار خاص Encoder–Decoder و وجود Skip Connectionها، دارای ویژگیهای متمایزی میباشد. در مرحله آموزش، ابتدا تصاویر ورودی (معمولاً تصاویر پزشکی یا ماهوارهای) به همراه ماسکهای برچسبخورده به شبکه داده میشوند. این ماسکها مشخص میکنند که هر پیکسل متعلق به کدام کلاس است (برای مثال: بافت سالم یا تومور).
در مرحله Forward Pass، تصویر از مسیر Encoder عبور میکند و بهتدریج ابعاد فضایی آن کاهش یافته و ویژگیهای سطح بالا استخراج میشوند. سپس در مسیر Decoder، این ویژگیها با استفاده از Upsampling به ابعاد اصلی تصویر بازگردانده میشوند. در هر سطح از Decoder، ویژگیهای متناظر از Encoder از طریق Skip Connection به شبکه تزریق میشوند. این کار باعث میشود اطلاعات مکانی دقیق که در مراحل Downsampling از بین رفتهاند، دوباره بازیابی شوند.
در مرحله محاسبه خطا، خروجی شبکه که یک نقشه Segmentation است، با ماسک واقعی مقایسه میشود. معمولاً از توابع خطایی مانند Cross-Entropy یا Dice Loss استفاده میشود که برای مسائل تفکیک پیکسلی بسیار مناسب هستند. Dice Loss بهویژه در دادههای نامتوازن (مثلاً زمانی که ناحیه موردنظر بسیار کوچکتر از پسزمینه است) عملکرد بهتری دارد.
در مرحله Backpropagation، گرادیان خطا از خروجی به سمت ورودی منتشر میشود. نکته مهم در UNet این است که گرادیانها نهتنها از مسیر Decoder به Encoder منتقل میشوند، بلکه از طریق Skip Connectionها نیز مستقیماً به لایههای Encoder میرسند. این موضوع باعث میشود مشکل ناپدید شدن گرادیان کاهش یابد و لایههای ابتدایی شبکه نیز بهطور مؤثر آموزش ببینند. در نهایت، وزنها با استفاده از بهینهسازهایی مانند Adam یا SGD بهروزرسانی میشوند و این فرآیند برای تعداد زیادی epoch تکرار میشود تا شبکه همگرا گردد.
کاربردهای عملی UNet:
UNet بهدلیل دقت بالا در تفکیک پیکسلی و نیاز کمتر به دادههای آموزشی، در حوزههای مختلف کاربردهای گستردهای پیدا کرده است. مهمترین و شناختهشدهترین کاربرد UNet در تصویربرداری پزشکی است. این شبکه برای Segmentation اندامها، تومورها، ضایعات پوستی، سلولها و ساختارهای میکروسکوپی در تصاویر MRI، CT و میکروسکوپ نوری استفاده میشود. در بسیاری از مطالعات، UNet توانسته دقتی همسطح یا حتی بالاتر از متخصصان انسانی ارائه دهد.
در تصاویر ماهوارهای و سنجش از دور، UNet برای تفکیک جادهها، ساختمانها، زمینهای کشاورزی و مناطق شهری به کار میرود. این کاربردها نقش مهمی در برنامهریزی شهری، مدیریت منابع طبیعی و پایش تغییرات محیطی دارند. توانایی UNet در حفظ جزئیات مرزی، آن را برای این نوع تصاویر بسیار مناسب میکند.
در بینایی ماشین صنعتی، UNet برای تشخیص عیوب سطحی در محصولات، بررسی کیفیت تولید و کنترل خودکار خطوط تولید استفاده میشود. همچنین در حوزههایی مانند زیستشناسی محاسباتی، رباتیک پزشکی و حتی پردازش تصاویر هنری، نسخههای توسعهیافته UNet مورد استفاده قرار گرفتهاند. این گستردگی کاربرد نشان میدهد که UNet یک معماری عمومی و منعطف برای مسائل Segmentation است.
مزایا و محدودیتها:
مزایا:
- دقت مکانی بسیار بالا
- عملکرد مناسب با داده کم
- ساختار ساده و قابل پیادهسازی
محدودیتها:
- مصرف حافظه بالا
- مقیاسپذیری محدود برای تصاویر بسیار بزرگ
- نیاز به تنظیم دقیق پارامترها
تأثیر UNet بر معماریهای بعدی:
UNet تأثیر عمیقی بر طراحی معماریهای بعدی شبکههای عصبی برای Segmentation گذاشته است. ایده اصلی استفاده همزمان از مسیر فشردهسازی (Encoder) و مسیر بازسازی (Decoder) به همراه Skip Connectionها، به الگویی استاندارد در طراحی شبکههای Segmentation تبدیل شده است. بسیاری از معماریهای بعدی مانند UNet++، Attention UNet، 3D UNet و nnUNet مستقیماً از ساختار پایه UNet الهام گرفتهاند.
یکی از مهمترین تأثیرات UNet، تأکید بر اهمیت حفظ اطلاعات مکانی دقیق در کنار ویژگیهای سطح بالا بود. این ایده بعدها در معماریهایی مانند Feature Pyramid Networks (FPN) و حتی برخی نسخههای شبکههای تشخیص اشیا نیز به کار گرفته شد. همچنین مفهوم Skip Connection که در UNet بهصورت ساختاری و هدفمند استفاده شد، همراستا با ایدههایی است که بعدها در ResNet و معماریهای عمیقتر توسعه یافتند.
UNet همچنین نشان داد که میتوان با تعداد نسبتاً کم داده آموزشی، شبکههای قدرتمند Segmentation آموزش داد. این ویژگی باعث شد پژوهشگران در حوزههایی که داده برچسبخورده محدود است، به سمت معماریهای مبتنی بر UNet گرایش پیدا کنند.
نتیجهگیری پژوهشمحور:
شبکه UNet را میتوان یکی از موفقترین و تأثیرگذارترین معماریها در حوزه Segmentation دانست. ترکیب ساده اما هوشمندانه Encoder–Decoder با Skip Connectionها، راهحلی مؤثر برای حفظ تعادل میان استخراج ویژگیهای سطح بالا و دقت مکانی پیکسلی ارائه میدهد. این معماری نشان داد که دقت بالا در Segmentation الزاماً نیازمند شبکههای بسیار پیچیده نیست، بلکه طراحی درست جریان اطلاعات در شبکه نقش کلیدی ایفا میکند.
از منظر پژوهشی، UNet نقطه شروعی برای نسل جدیدی از معماریهای Segmentation بوده است که هر یک تلاش کردهاند محدودیتهای نسخه اصلی را برطرف کنند؛ از جمله افزایش عمق، استفاده از توجه (Attention) و سازگاری با دادههای سهبعدی. با توجه به رشد روزافزون دادههای تصویری در پزشکی، صنعت و علوم زمین، انتظار میرود UNet و مشتقات آن همچنان نقش مهمی در پژوهشهای آینده ایفا کنند.
در نهایت، UNet نهتنها یک معماری موفق، بلکه یک چارچوب مفهومی برای حل مسائل تفکیک پیکسلی محسوب میشود که تأثیر آن فراتر از حوزه اولیه طراحیاش گسترش یافته و همچنان الهامبخش توسعه مدلهای پیشرفتهتر است.
منابع:
- Ronneberger, O., Fischer, P., & Brox, T. (2015). U-Net: Convolutional Networks for Biomedical Image Segmentation. MICCAI.
- Goodfellow, I., Bengio, Y., & Courville, A. (2016). Deep Learning. MIT Press.
- Litjens, G. et al. (2017). A survey on deep learning in medical image analysis. Medical Image Analysis.


