اتصال لایه کانولوشنی به لایه تمام اتصال


اتصال لایه کانولوشنی به لایه تمام اتصال

در مورد لایه های کانولوشنی بحث بسیار است ولی در اینجا در مورد چند نکته اساسی که در هنگام اتصال لایه کانولوشنی به لایه تمام اتصال لازم است لحاظ شود، صحبت می کنیم.

  1. این قسمت یکی از حساس ترین قسمتهای شبکه های کانولوشنی است. اگر دقت نکنید، ممکن است تعداد زیادی از پارامترهای شبکه در این قسمت قرار گیرند در حالی که نیاز نباشد. زمانی که خروجی لایه کانولوشنی باز می شود و به تمام اتصال متصل می شود، بدیهی است که این اتصال از نوعِ تمام اتصال است. پس اگر تعداد نورونهای لایه تمام اتصال یا تعداد نورونهای قسمتِ باز شده کانولوشنی زیاد باشد، تعداد محاسبات و پارامترها خیلی زیاد می شوند. پیشنهاد می شود که قبل از آموزش شبکه همواره به این قسمت با دقت نگاه کنید و ببینید تعداد پارامترهایش خیلی زیاد نباشد. در صورتی که پارامترهایش خیلی زیاد باشد، مشکلاتِ MLP را قطعا خواهید داشت؛ برای مثال، تعداد داده زیاد، مشکلات مشابه یادگیری ماسک و ... .

  2. برای این اتصال تجربه ای منطقی وجود دارد که سعی می کنیم به زبان ساده توضیح دهیم. سعی کنید قبل لایه باز کننده یا flatten از لایه کانولوشنی حتما استفاده کنید و لایه پولینگ نداشته باشید. از نظر منطقی اگر نگاه کنیم، اگر از پولینگ استفاده کنیم که به فرض 2x2 باشد، به کل اطلاعات مربوط به مکان را از بین می بریم؛ به این شکل که در یک پنجره ای که 4 عنصر دارد، نود غالب را به تمام اتصال می دهیم و مکان را در نظر نمی گیریم (و مکانِ کلی اجسام را دور می ریزیم). در حالی که ویژگی مناسب کانولوشنی قبل از باز کننده این است که حداقل مکان را از بین نمی برد. ترجیحا لایه های قبلی پولینگ داشته باشند.

  3. در جاهایی که شبکه سنگین است، ممکن است نیاز باشد که محل اتصال یاد شده سنگین باشد. در این شرایط روشهایی وجود دارد. مقالاتی نسبتا قدیمی (با این حال کاربردی برای کارهای تجاری) وجود دارد که می توانید در قسمت اتصالی که اشاره شده، ماتریس فاکتوریزیشن را به انواع مختلف استفاده کنید. با این کار می توان محاسبات را تعدیل کرد.



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

کارشناسی ارشد هوش مصنوعی

علاقه مند به یادگیری عمیق

مطالب مشابه