فائزه صادقی
فائزه صادقی
خواندن ۲ دقیقه·۳ سال پیش

کانولوشن ترانهاده چه کاربردی دارد؟

کانولوشن ترانهاده چه کاربردی دارد؟

ماتریس کانوولوشن چیست؟

عملیات ریاضی در پشت پرده لایه کانولوشن ترانهاده چیست؟


در شبکه های عمیق برپایه کانولوشن برای از بین بردن تاثیر لایه کانولوشن بر روی داده از لایه کانولوشن ترانهاده استفاده میشود. در این بخش فرض میکنیم که داده ما یک تصویر است و این لایه را توضیح میدهیم.

در این لایه سعی بر آن داریم تا ویژگی‌های کاسته شده از تصویر را با بالاترین دقت به لایه بازگردانیم.

در یک نگاه عملیات کانولوشن مشابه شکل زیر است:

وقتی کانولوشن روی تصویر کار خود را آغاز می‌کند کرنل از گوشه چپ تصویر قسمت بالا عملیات ضرب را آغاز می‌کند با گام‌ مشخصی روی تصویر حرکت می‌کند تا انتهای تصویر، کاملاً قابل‌درک است که مقداری از اطلاعات تصویر از بین می‌رود یا تغییر میکند.

عملیات کانولوشن ترانهاده سعی بر آن دارد که بازگردانی این اطلاعات را انجام دهد.

ماتریس‌های زیر را در نظر بگیرید:

مرور کوتاهی بر اعمال هسته توسط کانولوشن را در این قسمت داریم می‌خواهیم محاسباتش را دنبال کنیم. برای رسیدن به خروجی ،ماتریسی از کرنل ایجادشده و در تصویر ورودی ضرب میشود.این ماتریس را ماتریس کانولوشن می‌نامیم.

ماتریس کانولوشن
ماتریس کانولوشن

اما چگونگی تشکیل این ماتریس را با جزئیات بیشتر در زیر داریم:

همان‌طور که مشاهده می‌کنید برای هر خانه از ماتریس ورودی یک ستون در ماتریس کانولوشن در نظر گرفته‌شده است.

حاصل‌ضرب این ماتریس در flat ماتریس ورودی flat شده ماتریس خروجی را به ما می‌دهد.

اکنون می‌خواهیم از ماتریس خروجی به ماتریس ورودی برسیم عملیات آن را گام‌به‌گام باهم پیش می‌بریم.

ماتریس خروجی این قسمت به عبارت زیر است:

"ماتریس خروجی کمی متفاوت از مرحله قبل ارائه شده است دلیل این امر آن است که در شبکه های عمیق بعد از لایه کانولوشن از روش های regularization استفاده میشود و خب مقداری از اطلاعات از بین میرود و نمیتوانیم دقیقا به تصویر اولیه برگردیم"

در این قسمت از ترانهاده شده ماتریس کانولوش استفاده می‌کنیم.

در ریاضی، مبحث ماتریس ها وقتی جای سطرهای ماتریسی را با ستون‌های آن عوض کنیم ماتریس ترانهاده ساخته‌ایم. در این لایه نیز با ترانهاده کردن ماتریس کانولوشن برای از بین بردن تاثیر کانولوشن استفاده میکنیم. فکر کنم دلیل نام گذاری این لایه نیز همین موضوع باشد.

ترانهاده ماتریس کانولوشن
ترانهاده ماتریس کانولوشن

ماتریس خروجی را ابتدا flat کرده:

و سپس در ماتریس کانولوشن ضرب می‌کنیم و حاصل مشابه ماتریس موردنظر است.

و تصویر ورودی بازسازی میشود، استفاده از این لایه در auto-encoder ها مرسوم است.

منبع:https://naokishibuya.medium.com/up-sampling-with-transposed-convolution-9ae4f2df52d0

شبکه عصبیشبکه عمیقاتوانکودریادگیری عمیق
شاید از این پست‌ها خوشتان بیاید