نویسنده(های): آیو آکینگبه
در ابتدا منتشر شد به سمت هوش مصنوعی.
برای درک بهتر پیچیدگی چیست، لازم است بدانیم چرا شبکه های عصبی متراکم (DNN) برای تصاویر خوب کار نمی کنند. اگر شما یک DNN و a CNN (شبکه عصبی کانولوشنال)، مطمئناً در مدل CNN در مقایسه با مدل DNN دقت بالاتر و ضرر کمتری خواهید داشت. در اینجا چند دلیل وجود دارد:
1. ابعاد بالا و پیچیدگی محاسباتی
تصاویر معمولاً دارای تعداد زیادی پیکسل هستند. به عنوان مثال، یک تصویر 200×200 دارای 40000 پیکسل است و یک شبکه عصبی متراکم باید هر پیکسل را به عنوان یک ورودی مستقل در نظر بگیرد. یک لایه کاملا متصل با 40000 ورودی به تعداد زیادی اتصال به لایه بعدی نیاز دارد که منجر به موارد زیر می شود:
- استفاده از حافظه بالا: ذخیره وزن برای هر اتصال پیکسل در تصاویر بزرگ غیر عملی می شود.
- افزایش هزینه محاسباتی: پردازش کند و ناکارآمد می شود زیرا لایه های متراکم از ساختار فضایی تصاویر استفاده نمی کنند.
در مقابل، لایههای کانولوشنال در CNN از فیلترهای کوچکی استفاده میکنند که وزنها را در سراسر تصویر به اشتراک میگذارند و تعداد پارامترها را به شدت کاهش میدهند و محاسبات را کارآمدتر میکنند.
2. از دست دادن سلسله مراتب فضایی
DNN ها همه پیکسل ها را به عنوان ویژگی های مستقل در نظر می گیرند و این واقعیت را نادیده می گیرند که پیکسل های همسایه در یک تصویر به هم نزدیک هستند. این بدان معنی است که در یک DNN:
- روابط فضایی در نظر گرفته نمی شود: لایههای متراکم الگوهای فضایی مانند لبهها، بافتها یا اشکالی را که در پیکسلهای مجاور وجود دارند، در نظر نمیگیرند. تصاویر دارای ویژگی های محلی (مانند چشم ها، گوشه های اشیاء) هستند که باید حفظ شوند.
- عدم تغییر در ترجمه: شبکه های متراکم برای تشخیص الگوهایی مانند یک شی در یک تصویر، اگر در موقعیت های مختلف ظاهر شوند، تلاش می کنند. از سوی دیگر، لایههای کانولوشن، فیلترهایی را در کل تصویر اعمال میکنند، و آنها را قادر میسازد اشیا را بدون در نظر گرفتن موقعیت مکانی آنها تشخیص دهند.
3. یادگیری ویژگی ناکارآمد
در DNN ها، هر لایه باید الگوهای جهانی را از ابتدا یاد بگیرد. این امر تشخیص ویژگی های سلسله مراتبی پیچیده در تصاویر، مانند لبه ها در لایه های قبلی و کل اشیاء در لایه های بعدی را دشوار می کند.
در مقابل، CNN ها می توانند ویژگی های سلسله مراتبی را یاد بگیرند. لایههای اولیه در CNN بر روی ویژگیهای سطح پایین (مانند لبهها و بافتها) تمرکز میکنند، در حالی که لایههای عمیقتر مفاهیم انتزاعی بیشتری را میآموزند (مانند قسمتهایی از اشیا یا حتی کل اشیا). لایه های متراکم به طور موثر این ساختار سلسله مراتبی را جذب نمی کنند، که منجر به عملکرد ضعیف در داده های تصویر می شود.
4. بیش از حد
با تعداد زیادی پارامتر در لایه های کاملاً متصل، یک شبکه متراکم بیشتر مستعد بیش از حد برازش است، به خصوص در لایه های کوچکتر. مجموعه داده ها. تصاویر معمولا حاوی اطلاعات اضافی زیادی هستند و شبکه های کاملا متصل هیچ مکانیزمی برای کاهش این افزونگی ندارند. لایه های کانولوشن از طریق مفهوم اشتراک وزن (فیلتر یکسان روی قسمت های مختلف تصویر اسلاید می شود) بیش از حد برازش را کاهش می دهد. این امر تعداد پارامترها را تا حد زیادی کاهش میدهد و منجر به مدلهای تعمیمپذیرتر با خطر کمتر برازش میشود.
سپس پیچیدگی چگونه کار می کند؟
تصور کنید که یک ذره بین را روی یک تصویر جارو می کنید تا الگوهای خاص (مانند خطوط یا اشکال) را تشخیص دهید. پیچیدگی در CNN ها را می توان راهی برای ثبت الگوها در داده ها با کشیدن یک ذره بین کوچک (فیلتر) روی یک تصویر یا سایر داده ها برای تمرکز بر ویژگی های محلی خاص در نظر گرفت. هر فیلتر به دنبال نوع متفاوتی از الگو است و CNN از بسیاری از آنها برای درک تصویر، لایه به لایه، از ویژگی های ساده گرفته تا موارد پیچیده استفاده می کند.
- فیلتر به عنوان آشکارساز الگو: تصور کنید تصویری از یک گربه دارید. یک فیلتر (یا هسته) در CNN یک ماتریس کوچک است (مثلاً 3×3 یا 5×5) که در سراسر این تصویر اسکن میکند. هر فیلتر به دنبال ویژگی خاصی مانند لبه ها، بافت ها یا اشکال است. به عنوان مثال، یک فیلتر ممکن است خطوط افقی را تشخیص دهد، دیگری ممکن است خطوط عمودی را تشخیص دهد، و دیگری می تواند گوشه ها را پیدا کند.
- لغزش در سراسر تصویر: فیلتر در مراحل کوچک روی تصویر حرکت می کند (پیچیده می شود). در هر مرحله، یک محصول نقطه ای بین مقادیر موجود در فیلتر و ناحیه مربوط به تصویر انجام می دهد. این به CNN کمک می کند تا اطلاعات محلی در مورد تصویر (مانند لبه ها یا الگوهای بافت) را بدون نگاه کردن به کل تصویر به طور همزمان استخراج کند.
- نقشه ویژگی: نتیجه این فرآیند لغزشی یک ماتریس جدید به نام a است نقشه ویژگی. مقادیر موجود در نقشه ویژگی نشان می دهد که ویژگی (الگوی) مورد نظر فیلتر چقدر در قسمت های مختلف تصویر وجود دارد. برای مثال، اگر فیلتر لبههای عمودی را تشخیص دهد، نقشه ویژگی مقادیر بالایی در جایی که لبههای عمودی در تصویر ظاهر میشود، خواهد داشت.
- فیلترهای متعدد، ویژگی های غنی: یک سی ان ان از فیلترهای مختلفی برای ثبت ویژگی های مختلف استفاده می کند. لایههای اولیه معمولاً ویژگیهای سادهای مانند لبهها را یاد میگیرند، در حالی که لایههای عمیقتر الگوهای پیچیدهتری (مانند چشمها، چهرهها یا حتی اشکال انتزاعی) را میآموزند.
- میدان پذیرایی: اندازه فیلتر مقداری از تصویر را که در آن واحد “می بیند” را محدود می کند که به آن میدان دریافت آن می گویند. همانطور که در شبکه عمیق تر می شوید، فیلترها بخش های بزرگ تری از تصویر را می بینند، که به شبکه اجازه می دهد ویژگی های سطح بالاتر، مانند اشیا یا قسمت هایی از اشیاء را شناسایی کند.
نتیجه گیری
Convolution پیش بینی تصویر را بهبود می بخشد زیرا از فیلترها برای کاهش پیچیدگی پارامترها در آموزش استفاده می کند و در عین حال سلسله مراتب فضایی را در نظر می گیرد. این پیچیدگی ویژگیهای منحصربهفرد باعث میشود که CNNها هنگام استفاده روی دادههای تصویر، دقت بهتر و اتلاف کمتری ارائه دهند.
منتشر شده از طریق به سمت هوش مصنوعی
منبع: https://towardsai.net/p/artificial-intelligence/understanding-convolution