شبکه عصبی کانولوشنی (Convolutional Neural Network - CNN)، در ریاضیات (Mathematics)
انواع شبکه های عصبی (Neural Networks) را در آموزش زیر شرح دادیم :
شبکه عصبی کانولوشنی (Convolutional Neural Network - CNN) :
شبکه عصبی کانولوشنی (CNN) نوعی شبکه عمیق است که به طور ویژه برای پردازش داده های با ساختار شبکه ای مانند تصاویر (گرید دو بعدی) طراحی شده است. ایده اصلی استفاده از عملگر کانولوشن به جای ضرب ماتریسی معمولی در حداقل یک لایه است.
لایه کانولوشنی شامل چندین فیلتر (kernel) کوچک است که روی تصویر ورودی لغزانده می شوند و نقشه ویژگی (feature map) تولید می کنند. هر فیلتر مسئول تشخیص یک الگوی خاص مانند لبه ها، گوشه ها یا بافت ها است.
عملیات کانولوشن برای یک فیلتر
\[ K \]با اندازه
\[ m \times n \]روی تصویر
\[ I \]:
\[ (I * K)(i,j) = \sum_{u=1}^{m} \sum_{v=1}^{n} I(i+u, j+v) \cdot K(u,v) \]پس از کانولوشن معمولا یک تابع فعال سازی غیرخطی (مثلا ReLU) اعمال می شود تا غیرخطی گری ایجاد کند. سپس لایه های pooling (مانند max pooling) ابعاد نقشه های ویژگی را کاهش می دهند و باعث مقاومت در برابر جابجایی های کوچک می شوند.
یکی از ویژگی های مهم CNN، اشتراک وزن (weight sharing) است: یک فیلتر در تمام نقاط تصویر استفاده می شود. این کار تعداد پارامترها را به شدت کاهش می دهد و شبکه را کارآمدتر می کند.
CNNها از ترکیب لایه های کانولوشن، pooling و کاملا متصل ساخته می شوند. لایه های ابتدایی ویژگی های سطح پایین (لبه ها) و لایه های عمیق تر ویژگی های سطح بالا (اشکال، اشیاء) را یاد می گیرند.
معماری های معروف CNN شامل LeNet، AlexNet، VGG، ResNet و Inception هستند. ResNet با استفاده از اتصالات باقیمانده (skip connections) مشکل محو شدن گرادیان را کاهش داد.
کاربردهای CNN گسترده است: تشخیص تصویر، تشخیص اشیاء، بخش بندی معنایی، تشخیص چهره، و حتی در پردازش زبان طبیعی (با کانولوشن یک بعدی روی متن).
آموزش CNN مشابه MLP با پس انتشار خطا انجام می شود، با این تفاوت که گرادیان ها برای فیلترهای کانولوشنی محاسبه می شوند.
CNNها به دلیل معماری مناسبشان برای داده های تصویری، تحولی در بینایی کامپیوتر ایجاد کردند.