کانولوشن ۱، ۲ و ۳ بعدی چیست؟ اگر با شبکه‌های عصبی کانولوشنی آشنا باشید، احتمالاً چشم‌تان به نام‌های کانولوشن ۱ بعدی، ۲ بعدی و ۳ بعدی خورده است. کانولوشن فرایندی است که در شبکه‌های عصبی کانولوشنی اتفاق می‌افتد. در این مطلب به سراغ معرفی آن‌ها رفته‌ایم.

کانولوشن ۱، ۲ و ۳ بعدی چیست؟

در حوزه‌ی یادگیری عمیق شبکه‌ی عصبی کانولوشنی (CNN / Convolutional Neural Network) نوعی شبکه‌ی عصبی عمیق (Deep Neural Network) است که معمولاً برای تجزیه‌وتحلیل داده‌های تصویری استفاده می‌شود. یادگیری عمیق (Deep Learning) زیرمجموعه‌ی یادگیری ماشین (Machine Learning) است، شاخه‌ای از هوش مصنوعی که در آن کامپیوتر یاد می‌گیرد تا براساس تجربه‌هایی که در حین آموزش به دست می‌آورد، وظایف مشخصی را انجام دهد.

یکی از مهم‌ترین مراحل در شبکه‌ی عصبی کانولوشنی فرایند کانولوشن است که درواقع نام این شبکه به‌همین دلیل انتخاب شده است. در فرایند کانولوشن یک فیلتر / کرنل روی عکس ورودی قرار می‌گیرد تا درنهایت یک خروجی فیلترشده که ویژگی‌های اصلی آن را به همراه دارد به دست آید. کانولوشن می‌تواند ۱، ۲ یا ۳ بعد داشته باشد.

در این مقاله ابتدا با فرایند کانولوشن به‌طور مختصر آشنا خواهیم شد، سپس کانولوشن‌های ۱ بعدی، ۲ بعدی و ۳ بعدی را بررسی خواهیم کرد.

برای آشنایی با فیلتر / کرنل در شبکه عصبی کانولوشنی این مطلب را بخوانید:

با فیلتر / کرنل (Filter / Kernel) در شبکه‌ی عصبی کانولوشنی آشنا شوید!

کانولوشن (Convolution) چیست؟

در فرایند کانولوشن از کرنل برای استخراج ویژگی‌های عکس استفاده می‌شود. کرنل ماتریسی است که مانند پنجره‌ای روی ماتریس عکس ورودی حرکت می‌کند و در هر بار حرکتش مقدار این ماتریس با ماتریس ورودی ضرب می‌شود تا درنهایت خروجی مدنظر را داشته باشیم.

فرایند کانولوشن

همان‌طور که در شکل ۱ مشخص است، زمانی که کرنل روی ماتریس ورودی قرار می‌گیرد مقدار هر خانه در خانه متناظر ضرب می‌شود و درنهایت مجموع هر ۴ ضرب انجام‌شده‌ی خانه‌ی اول ماتریس خروجی را تشکیل می‌دهد. کرنل می‌تواند اندازه‌های مختلفی را داشته باشد. در اینجا یک کرنل ۲ در ۲ داریم که روی یک عکس ۴ در ۴ قرار می‌گیرد و در خروجی یک ماتریس ۲ در ۲ را ارائه می‌کند.

تا اینجا با فرایند کانولوشن و نحوه‌ی کار کرنل آشنا شدیم. حال به‌ترتیب کانولوشن‌های ۱ بعدی، ۲ بعدی و ۳ بعدی را بررسی می‌کنیم.

برای آشنایی با شبکه‌های عصبی کانولوشنی این مطلب را مطالعه کنید:

شبکه‌ی عصبی کانولوشنی (CNN) چیست؟

کانولوشن ۱ بعدی (Conv1D)

اولین نکته‌ای که لازم است درباره‌ی کانولوشن ۱ بعدی بدانیم این است که در آن کرنل فقط در یک جهت حرکت می‌کند و ورودی و خروجی این کانولوشن ۲ بعدی هستند.

اما چه نوع داده‌ای به کرنلی احتیاج دارد که فقط در یک جهت حرکت کند؟

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

داده‌های یک شتاب‌سنج

این داده‌ها که در شکل ۲ می‌بینیم، از یک شتاب‌سنج که روی بازوی شخصی بسته شده بود به دست آمده است. این داده شتاب را در ۳ محور x، y و z نشان می‌دهد. CNN یک‌بعدی می‌تواند تشخیص فعالیت (Activity Recognition)، مانند وضعیت انسان، راه‌رفتن، پرش و غیره، را براساس داده‌های شتاب‌سنج انجام دهد.

این داده ۲ بعد دارد:

  1. گام‌های زمانی
  2. مقدار شتاب در سه محور x، y و z

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

حرکت کرنل روی داده‌ی شتاب‌سنج

در ادامه بررسی کانولوشن ۱، ۲ و ۳ بعدی، بعد از کانولوشن ۱ بعدی به‌سراغ کانولوشن ۲ بعدی می‌رویم. کانولوشن ۲ بعدی همان ساختار کانولوشن استاندارد است که در معماری لی نت‌ـ‌۵ (LeNet-5) برای اولین بار معرفی شد.

برای آشنایی با کانولوشن معکوس این مطلب را بخوانید:

با کانولوشن معکوس (Transposed Convolution) آشنا شوید!

کانولوشن ۲ بعدی (Conv2D)

کانولوشن ۲ بعدی معمولاً برای کار با عکس یا ویدئو به کار می‌رود. از آنجا که کرنل در اینجا در دو بعد (دو جهت) حرکت می‌کند، نام آن را کانولوشن ۲ بعدی گذاشته‌اند. در اینجا ورودی و خروجی شبکه ۳ بعدی هستند. همان‌طور که در شکل ۴ می‌بینیم، کرنل فقط می‌تواند در ۲ جهت عرض و ارتفاع عکس حرکت کند.

حرکت کرنل روی عکس در دو جهت

اما درنهایت بعد از کانولوشن ۲ بعدی به کانولوشن ۳ بعدی می‌رسیم که همان‌طور که می‌توان حدس زد در این کانولوشن کرنل در ۳ جهت حرکت می‌کند. حال با جزئیات بیشتری به این کانولوشن نگاه می‌اندازیم.

کانولوشن ۳ بعدی (Conv3D)

همان‌طور که اشاره کردیم، در کانولوشن ۳ بعدی کرنل در ۳ جهت (بعد) حرکت می‌کند. ورودی و خروجی این کانولوشن داده ۴ بعدی است.

اما این نوع کانولوشن برای چه نوع داده‌هایی به کار می‌رود؟

از کانولوشن ۳ بعدی عموماً برای عکس‌های ۳ بعدی مانند سی‌تی‌اسکن (CT scan) یا ام‌آرآی (MRI) استفاده می‌کنند؛ برای مثال، داده MRI به‌منظور بررسی مغز، نخاع، اندام‌های داخلی و غیره به کار می‌رود؛ هم‌چنین عکس‌های سی‌تی‌اسکن (CT scan) هم نوعی داده ۳ بعدی هستند که با تولید یک‌سری از عکس‌های X-ray از زوایای مختلف از بدن به دست می‌آیند. با استفاده از کانولوشن ۳ بعدی می‌توان داده‌های پزشکی را تجزیه‌وتحلیل و ویژگی‌ها را از آن‌ها استخراج کرد.

داده‌های مورداستفاده در کانولوشن ۳ بعدی

برای آشنایی با لایه ادغام در شبکه‌ی عصبی کانولوشنی این مطلب را مطالعه کنید:

لایه ادغام (Pooling Layer) در شبکه عصبی کانولوشنی (CNN) چیست؟

خلاصه‌ی مطالب درباره‌ی کانولوشن ۱،‌ ۲ و ۳ بعدی

در این مطلب فرایند کانولوشن و نحوه‌ی کار آن و هم‌چنین انواع کانولوشن ۱، ۲ و ۳ بعدی را بررسی کردیم. یاد گرفتیم که این کانولوشن‌ها براساس تعداد جهت حرکت کرنل نام‌گذاری شده‌اند. در کانولوشن ۱ بعدی کرنل فقط در یک جهت، در کانولوشن ۲ بعدی در ۲ جهت و در کانولوشن ۳ بعدی کرنل در ۳ جهت حرکت می‌کند؛ هم‌چنین با انواع داده مورداستفاده برای هر یک از این کانولوشن‌ها آشنا شدیم.