رفتن به محتوای اصلی
Koohestun
توضیح کوهستانمعماری‌های عصبیمقاله تشریحی· 5 دقیقه مطالعه· در هوش مصنوعی

چگونه فیلترهای کانولوشنی و لایه‌های پولینگ ویژگی‌های سلسله‌مراتبی را در بینایی ماشین استخراج می‌کنند

شبکه‌های عصبی کانولوشنی تصاویر را با لغزاندن فیلترهای ریاضی روی پیکسل‌ها برای تشخیص لبه‌ها و شکل‌ها پردازش می‌کنند. با ترکیب این فیلترها و لایه‌های پولینگ که داده‌ها را به‌شدت فشرده می‌کنند، این معماری ویژگی‌های ضروری را جدا کرده و نویزهای فضایی نامربوط را دور می‌ریزد.

به قلم ساناز امامی

طراحان معماری 40%بهینه‌سازان سخت‌افزار 30%پژوهشگران تفسیرپذیری 30%
طراحان معماری
تمرکز بر بهینه‌سازی تعادل بین عمق استخراج ویژگی‌ها و کارایی محاسباتی.
بهینه‌سازان سخت‌افزار
اولویت‌دهی به کاهش پهنای باند حافظه و تعداد پارامترها برای استقرار مدل‌ها روی دستگاه‌های لبه (Edge Devices).
پژوهشگران تفسیرپذیری
تلاش برای درک دقیق اینکه فیلترهای منفرد در حال یادگیری تشخیص چه الگوهای هندسی‌ای هستند.

دیدگاه‌هایی که این گزارش پوشش نداده

  • پژوهشگران دفاع در برابر حملات خصمانه
  • عصب‌شناسان بینایی بیولوژیکی

نکات کلیدی

  1. فیلترهای کانولوشنی با لغزاندن یک ماتریس ریاضی روی یک تصویر، الگوهای بصری را تشخیص می‌دهند.
  2. لایه‌های اولیه شبکه لبه‌های ساده را تشخیص می‌دهند، درحالی‌که لایه‌های عمیق‌تر آن‌ها را به اشیاء پیچیده ترکیب می‌کنند.
  3. لایه‌های پولینگ داده‌ها را در هر عملیات ۷۵٪ فشرده می‌کنند و گلوگاه‌های بحرانی حافظه را حل می‌نمایند.
  4. مکس پولینگ تغییرناپذیری فضایی ایجاد می‌کند و به شبکه اجازه می‌دهد اشیاء را حتی در صورت تغییر موقعیت تشخیص دهد.

یک مدل استاندارد بینایی ماشین، تصویری با ابعاد ۲۲۴ در ۲۲۴ پیکسل (شبکه‌ای شامل ۵۰,۱۷۶ نقطه داده مجزا در هر کانال رنگی) را پردازش کرده و در کسری از ثانیه آن را به یک برچسب طبقه‌بندی واحد تقلیل می‌دهد. برای دستیابی به این هدف، معماری مدل تلاش نمی‌کند کل تصویر را به‌طور همزمان تحلیل کند. در عوض، از یک عملیات ریاضی به نام کانولوشن (Convolution) بهره می‌برد که تصویر را به قطعات هم‌پوشان تجزیه می‌کند تا الگوهای معنادار را استخراج نماید.[3][6]

موتور اصلی این فرآیند، فیلتر کانولوشنی است که اغلب به آن کرنل (Kernel) می‌گویند. این ماتریس کوچک از وزن‌ها که معمولاً فقط ۳ در ۳ پیکسل ابعاد دارد، به‌طور سیستماتیک روی تصویر ورودی می‌لغزد. در هر موقعیت، این فیلتر حاصل‌ضرب نقطه‌ای بین وزن‌های خود و مقادیر پیکسل‌های زیرین را محاسبه می‌کند و یک عدد واحد تولید می‌کند که نشان‌دهنده حضور یا عدم حضور یک ویژگی بصری خاص است.[2]

در لایه‌های اولیه یک شبکه، این فیلترها به‌عنوان تشخیص‌دهنده‌های ساده لبه عمل می‌کنند. آن‌ها با مقایسه شدت پیکسل‌های مجاور، تغییرات تند در کنتراست را شناسایی می‌کنند؛ مانند یک خط عمودی، یک مرز افقی یا یک گرادیان مورب. یک لایه کانولوشنی منفرد ممکن است ۶۴ فیلتر متمایز را اعمال کند و ۶۴ نقشه ویژگی (Feature Map) جداگانه بسازد که ساختارهای سطح پایین متفاوتی را در داده‌های خام تصویر برجسته می‌کنند.[1]

یک فیلتر کانولوشنی روی یک تصویر می‌لغزد و حاصل‌ضرب‌های نقطه‌ای را برای تشخیص ویژگی‌های بصری خاص مانند لبه‌ها محاسبه می‌کند.

هرچه داده‌ها به عمق بیشتری از شبکه نفوذ می‌کنند، بازنمایی آن‌ها انتزاعی‌تر می‌شود. لایه دوم به پیکسل‌های خام نگاه نمی‌کند؛ بلکه نقشه‌های ویژگی تولیدشده توسط لایه اول را بررسی می‌کند. در نتیجه، لبه‌های ساده را با هم ترکیب کرده و به گوشه‌ها و منحنی‌ها تبدیل می‌کند تا درک هندسی پیچیده‌تری بسازد.[3]

در لایه‌های سوم و چهارم، فیلترها این گوشه‌ها و منحنی‌ها را ترکیب کرده و به بافت‌ها و بخش‌های قابل‌تشخیص از اشیاء تبدیل می‌کنند؛ مانند یک چرخ، پوزه یک سگ یا قاب یک پنجره. این استخراج سلسله‌مراتبی ویژگی‌ها، بازتابی از قشر بینایی بیولوژیکی در مغز است که درک پیچیده را از بلوک‌های سازنده هندسی بنیادین بنا می‌کند.[5]

استخراج این ویژگی‌ها بار محاسباتی عظیمی ایجاد می‌کند. اگر یک شبکه ۶۴ فیلتر را روی یک تصویر ۲۲۴ در ۲۲۴ بدون هیچ‌گونه فشرده‌سازی اعمال کند، خروجی حاصل شامل بیش از ۳.۲ میلیون مقدار مجزا در هر لایه خواهد بود. عبور دادن این حجم از داده از میان ده‌ها لایه بعدی، حتی مدرن‌ترین واحدهای پردازش گرافیکی (GPU) را نیز از کار می‌اندازد.[2][6]

برای حل این گلوگاه حافظه، شبکه‌های عصبی کانولوشنی از لایه‌های پولینگ (Pooling) استفاده می‌کنند. این لایه‌ها که بین عملیات‌های کانولوشنی قرار می‌گیرند، ابعاد فضایی نقشه‌های ویژگی را به‌شدت کاهش می‌دهند و در عین حفظ قوی‌ترین سیگنال‌ها، اطلاعات اضافی را دور می‌ریزند.[2]

برای حل این گلوگاه حافظه، شبکه‌های عصبی کانولوشنی از لایه‌های پولینگ (Pooling) استفاده می‌کنند.

رایج‌ترین تکنیک یعنی مکس پولینگ (Max Pooling)، یک پنجره ۲ در ۲ را با گام (Stride) ۲ پیکسل روی نقشه ویژگی می‌لغزاند. در هر مرحله، این لایه صرفاً بیشترین مقدار درون آن پنجره را به‌عنوان خروجی می‌دهد و سه مقدار دیگر را حذف می‌کند. همان‌طور که در مستندات دوره CS231n دانشگاه استنفورد به‌صراحت آمده است: «لایه‌های پولینگ به‌طور مستقل روی هر برش عمقی از ورودی عمل کرده و اندازه فضایی آن را تغییر می‌دهند.»[5]

مکس پولینگ ابعاد فضایی یک نقشه ویژگی را ۷۵٪ کاهش می‌دهد و در عین حفظ قوی‌ترین سیگنال‌ها، داده‌ها را فشرده می‌کند.

این عملیات ابعاد فضایی داده‌ها را دقیقاً ۷۵ درصد کاهش می‌دهد. یک نقشه ویژگی ۲۲۴ در ۲۲۴ به ۱۱۲ در ۱۱۲ کوچک می‌شود و تعداد کل نقاط داده را در یک مرحله از ۵۰,۱۷۶ به ۱۲,۵۴۴ کاهش می‌دهد.[5][6]

فراتر از فشرده‌سازی صرف داده‌ها، پولینگ ویژگی حیاتی دیگری به نام «تغییرناپذیری فضایی» (Spatial Invariance) را معرفی می‌کند. با نگه‌داشتن تنها قوی‌ترین فعال‌سازی در یک ناحیه محلی، شبکه نسبت به موقعیت دقیق یک ویژگی حساسیت کمتری پیدا می‌کند. اگر شیء هدف یک یا دو پیکسل در تصویر ورودی جابه‌جا شود، لایه مکس پولینگ همچنان دقیقاً همان فعال‌سازی حداکثری را ثبت می‌کند و تضمین می‌کند که شبکه بدون توجه به جابه‌جایی‌های جزئی، شیء را تشخیص دهد.[4]

پژوهشگران به‌طور مداوم با نسخه‌های مختلفی از این معماری آزمایش می‌کنند تا کارایی را بهبود بخشند. درحالی‌که مکس پولینگ غالب است، گاهی اوقات از پولینگ میانگین (Average Pooling) - که به‌جای مقدار حداکثر، میانگین پنجره را محاسبه می‌کند - در لایه‌های نهایی یک شبکه استفاده می‌شود تا ویژگی‌های استخراج‌شده را پیش از طبقه‌بندی هموار کند و از بیش‌برازش (Overfitting) روی ناهنجاری‌های محلی و تیز جلوگیری نماید.[4]

با وجود موفقیت چشمگیر، این مکانیسم‌ها بی‌نقص نیستند. کاهش ابعاد شدید در لایه‌های پولینگ، روابط فضایی دقیق را از بین می‌برد. یک شبکه ممکن است وجود دو چشم، یک بینی و یک دهان را تشخیص دهد، اما در تأیید اینکه آیا آن‌ها در ترتیب آناتومیک صحیحی قرار گرفته‌اند یا خیر، دچار مشکل شود؛ این همان نقطه‌ضعفی است که معماری‌های جایگزین تلاش کرده‌اند آن را برطرف کنند.[1][6]

لایه‌های کانولوشنی به پارامترهای بسیار کمتری نسبت به لایه‌های کاملاً متصل نیاز دارند که این امر امکان ایجاد معماری‌های شبکه‌ای عمیق‌تر را فراهم می‌کند.

وزن‌های دقیق ریاضی درون فیلترهای کانولوشنی به‌صورت دستی توسط مهندسان انسانی برنامه‌نویسی نمی‌شوند. آن‌ها به‌طور خودکار از طریق پس‌انتشار (Backpropagation) در طول فاز آموزش یاد گرفته می‌شوند. شبکه میلیون‌ها پارامتر را به‌صورت تکرارشونده تنظیم می‌کند و خودش کشف می‌کند که کدام الگوهای بصری برای به حداقل رساندن خطاهای طبقه‌بندی مفیدتر هستند.[2]

این فرآیند یادگیری خودکار به این معناست که اگرچه ما می‌توانیم نقشه‌های ویژگی را مصورسازی کنیم تا ببینیم شبکه چه چیزی را تشخیص می‌دهد، اما منطق زیربنایی آن تا حدودی مبهم باقی می‌ماند. پژوهشگران حوزه تفسیرپذیری می‌توانند تأیید کنند که یک فیلتر خاص در حضور یک چرخ فعال می‌شود، اما همیشه نمی‌توانند توضیح دهند که چرا شبکه تصمیم گرفته است آن بافت خاص را بر یک گزینه معتبر ریاضی دیگر ترجیح دهد.[3]

ترکیب فیلترهای کانولوشنی محلی و پولینگ فضایی شدید همچنان پارادایم غالب در بینایی ماشین است. حتی با وجود اینکه معماری‌های جدیدتری مانند ترانسفورمرهای بینایی (Vision Transformers) با پردازش تصاویر به‌عنوان دنباله‌ای از قطعات در حال محبوب شدن هستند، منطق بنیادین استخراج سلسله‌مراتبی ویژگی‌ها همچنان نحوه تجزیه‌وتحلیل دنیای بصری توسط سیستم‌های مصنوعی را تعریف می‌کند.[6]

اصطلاحات کلیدی

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

چرا مهم است

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

منابع

پوشش منابع

6 منبع

3 دیدگاه شناسایی‌شده

طراحان معماری 40%بهینه‌سازان سخت‌افزار 30%پژوهشگران تفسیرپذیری 30%
  1. [1]MathWorksپژوهشگران تفسیرپذیری

    Visualize Features of a Convolutional Neural Network

    مطالعه در MathWorks
  2. [2]Machine Learning Masteryطراحان معماری

    How Do Convolutional Layers Work in Deep Learning Neural Networks?

    مطالعه در Machine Learning Mastery
  3. [3]The Keras Blogپژوهشگران تفسیرپذیری

    How convolutional neural networks see the world

    مطالعه در The Keras Blog
  4. [4]PMC - NIHطراحان معماری

    A improved pooling method for convolutional neural networks

    مطالعه در PMC - NIH
  5. [5]Stanford University CS231nبهینه‌سازان سخت‌افزار

    Visualizing what ConvNets learn

    مطالعه در Stanford University CS231n
  6. [6]تیم سردبیری کوهستان

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

    مطالعه در تیم سردبیری کوهستان

نظرات

همیشه در جریان باشید

هر زاویه. هر روز.

دریافت هوش مصنوعی اخبار همراه با پوشش کامل منابع و تحلیل دیدگاه‌ها، مستقیم در صندوق ورودی شما.