ترانسفورمرهای بینایی (ViT) در تشخیص تصویر – راهنمای ۲۰۲۴
ترانسفورمرهای بینایی اخیراً بهعنوان یک رقیب جایگزین برای شبکههای عصبی کانولوشن (CNN) که در حال حاضر پیشرفتهترین روش در تشخیص تصویر...
ترانسفورمرهای بینایی اخیراً بهعنوان یک رقیب جایگزین برای شبکههای عصبی کانولوشن (CNN) که در حال حاضر پیشرفتهترین روش در تشخیص تصویر هستند، مطرح شدهاند. مدلهای ViT از نظر کارایی و دقت محاسباتی تقریباً چهار برابر از پیشرفته ترین CNNهای فعلی بهتر عمل میکنند. مدلهای ترانسفورمر در حال حاضر در پردازش زبان طبیعی (NLP) بهترین وضعیت را دارند. به عنوان مثال، ربات محبوب ChatGPT AI یک مدل زبان مبتنی بر ترانسفومر است که به طور خاص، بر اساس معماری GPT (ترانسفورمر از پیش آموزش دیده) ساخته شده است. ChatGPT از مکانیسم های Self-attention برای مدل سازی وابستگی بین کلمات در یک متن استفاده می کند.
در تحقیقات بینایی کامپیوتری، اخیراً علاقه به Vision Transformer (ViTs) و Multilayer Perceptrons (MLPs) افزایش یافته است.
این مقاله در مورد موضوعات زیر صحبت خواهد کرد:
- ترانسفورمر بینایی (ViT) چیست؟
- استفاده از مدل های ViT در شناسایی تصویر
- ترانسفورمرهای ویژن چگونه کار می کنند
- موارد و کاربردهای استفاده از ترانسفورمرهای بینایی
مدل های ترانسفورمرهای بینایی ViT در شناسایی تصویر
در حالی که معماری ترانسفورمر به بالاترین استاندارد برای وظایف مربوط به پردازش زبان طبیعی (NLP) تبدیل شده است، موارد استفاده از آن در بینایی کامپیوتر بسیار محدود بوده است. در بسیاری از وظایف بینایی کامپیوتری، ما از attention یا در اتصال به شبکههای عصبی کانولوشنال (CNN) و یا برای جایگزینی جنبههای خاصی از CNN استفاده میکنیم و در عین حال کل ترکیب آنها را نیز حفظ میکنیم. بخشی از مدل های معروف تشخیص تصویر عبارتند از ResNet، VGG، YOLOv3، YOLOv7 یا YOLOv8، و Segment Anything (SAM).

با این وجود، وابستگی به CNN اجباری نیست و یک ترانسفورمر خالص که مستقیماً روی دنبالهای از رشته های تصویر اعمال میشود، میتواند به خوبی در وظایف مرتبط با کلاسبندی تصویر کار کند.
عملکرد ترانسفورمرهای بینایی در بینایی کامپیوتر
ترانسفورمرهای بینایی (ViT) اخیراً توانسته اند به عملکرد بسیار نزدیکی در بنچمارک برای چندین برنامه بینایی رایانه ای مانند کلاسبندی تصویر، تشخیص اشیا و بخش بندی معنایی تصویر دست یابند.
ترانسفورهای CSWin یک ستون فقرات مبتنی بر ترانسفورمر کارآمد و موثر برای کارهای بینایی همه منظوره است. از تکنیک جدیدی به نام «Cross-Shaped Window self-attention» برای تجزیه و تحلیل همزمان قسمتهای مختلف تصویر استفاده کرده و آن را بسیار سریعتر میکند.
ترانسفورمرهای CSWin از روشهای پیشرفته پیشین مانند ترانسفورماتور Swin پیشی گرفته است. در وظایف بنچمارک، CSWIN به عملکرد مناسبی دست یافته است، از جمله این موارد می توان به دقت 85.4% Top-1 در ImageNet-1K 53.9 جعبه AP و 46.4 masks AP در وظیفه تشخیص COCO، و 52.2 mIOU در کار بخش بندی معنایی ADE20K اشاره کرد.

ترانسفورمر بینایی ماشین چیست؟
معماری مدل ViT در یک مقاله تحقیقاتی منتشر شده به عنوان مقاله کنفرانسی در ICLR 2021 با عنوان “یک تصویر با ۱۶×۱۶ کلمه ارزش: ترانسفورماتورها برای تشخیص تصویر در مقیاس” توسط Neil Houlsby، Alexey Dosovitskiy و 10 نویسنده دیگر از تیم تحقیقاتی گوگل معرفی شد.
کد تنظیم دقیق و مدل های ViT که از قبل آموزش دیده اند در GitHub تیم تحقیقاتی گوگل موجود است. این کدها را می توانید در اینجا پیدا کنید. مدلهای ViT از قبل روی مجموعه دادههای ImageNet و ImageNet-21k آموزش داده شدهاند.
منشاء و تاریخچه مدلهای ترانسفورمر بینایی
در ادامه، به بیان برخی از مهمترین پیشرفتهای ترانسفورمرهای بینایی می پردازیم. این پیشرفت ها بر اساس معماری ترانسفورمر است که در ابتدا برای پردازش زبان طبیعی (NLP) در سال 2017 پیشنهاد شد.

ترانسفورمر در یادگیری ماشین یک مدل یادگیری عمیق است که از مکانیسم های توجه (attention) استفاده کرده و اهمیت هر قسمت از توالی ورودی داده ها را به طور متفاوت وزن می کند. ترانسفورمرها در یادگیری ماشین از چندین لایه self attention تشکیل شده اند و عمدتاً در زیر شاخه های هوش مصنوعی پردازش زبان طبیعی (NLP) و بینایی کامپیوتر (CV) استفاده می شوند.
ترانسفورمرها در یادگیری ماشین توان بیشتری نسبت به یک روش یادگیری عمومی دارند که میتواند در روشهای مختلف داده اعمال شود. ییشرفتهای اخیر در بینایی کامپیوتری و استفاده از ترانسفورمرها منجر به افزایش چشمگیر در پارامترهایی مثل صحت یا کارایی شده است.
ترانسفورمر بینایی و کلاسبندی تصویر
کلاسبندی تصویر یک موضوع مهم در بینایی کامپیوتر است که شامل تخصیص یک برچسب به یک تصویر بر اساس محتوای آن است. در طول سالیان اخیر، CNN های عمیق مانند YOLOv7 پیشرفته ترین روش برای کلاسبندی تصاویر بوده اند.

به عنوان مثال CrossViT، یک ترانسفورمر بینایی متقاطع برای کلاس بندی تصاویر است. تحقیقات بینایی کامپیوتری نشان میدهد که وقتی با مقدار کافی داده از قبل آموزش داده میشوند، مدلهای ViT حداقل به اندازه مدلهای ResNet قوی هستند.
مقالات دیگری نیز وجود دارند نشان دادند که مدلهای ترانسفورمر بینایی پتانسیل بالایی برای کلاسبندی تصاویر و حفظ حریم خصوصی دارند و از روشهای پیشرفته از نظر توانایی در برابر حملات و صحت در کلاسبندی بهتر عمل میکنند.
تفاوت بین CNN و ViT (ViT در مقایسه با CNN)
ترانسفورمر بینایی (ViT) نتایج قابل توجهی را در مقایسه با CNN ها به دست می آورد در حالی که منابع محاسباتی مورد نیاز آن برای آموزش کمتر است. در مقایسه با CNN، ترانسفورمر بینایی (ViT) یک bias استنتاجی به مراتب ضعیفتری را نشان میدهد که منجر به افزایش وابستگی به تنظیم مدل یا افزایش دادهها (AugReg) هنگام آموزش روی مجموعههای داده کوچکتر میشود. ViT یک مدل بصری بر اساس معماری یک ترانسفورمر است که در اصل برای کارهای مبتنی بر متن طراحی شده است. مدل ViT یک تصویر ورودی را به صورت مجموعهای از patch های تصویر، مانند مجموعهای از جاسازیهای کلمه که هنگام استفاده از ترانسفورمرها روی متن اعمال می شود را نشان داده و به صورت مستقیم برچسبهای کلاس را برای تصویر پیشبینی میکند. وقتی ViT بر روی دادههای کافی آموزش داده شود عملکرد فوقالعادهای از خود نشان داده و عملکردی مشابه با SOTA CNN را با چهار برابر منابع کمتر بدست می آورد.

CNN در مقایسه با ViT: مقایسه ی FLOPs و Throughput در مدل های CNN و ترانسفورمرهای بینایی
CNN از آرایه ای از پیکسل ها استفاده می کند در حالی که ViT تصاویر ورودی را به توکن های بصری می شکند. ترانسفورمر بینایی یک تصویر را به Patch هایی با اندازه ثابت تقسیم کرده و آن ها را به صورت صحیح جاسازی می کند. علاوه بر این مدل های ViT در زمینه کارایی محاسباتی و صحت چهار برابر نسبت به CNN بهتر عمل می کند.
لایه self-attention در ViT این قابلیت را فراهم می کند تا اطلاعات را به صورت سراسری در کل تصویر جاسازی کند. این مدل همچنین از داده های آموزشی یاد گرفته تا مکان نسبی Patch های تصویر را کدگذاری کرده و ساختار تصویر را بازسازی نماید.
کدگذاری ترانسفورمر
Multi-Head Self Attention Layer (MSP): این لایه همهی خروجی های output را به صورت خطی و در ابعاد صحیح ادغام می کند. attention heads های زیاد به آموزش محلی و سراسری وابستگی ها در یک تصویر کمک می کند.
لایه پرسپترون چند لایه (MLP): این لایه شامل یک لایه واحد خطی خطای گاوسی (GELU) دو لایه ای است.
لایه Norm (LN): این لایه قبل از هر بلوک اضافه می شود زیرا هیچ وابستگی جدیدی بین تصاویر آموزشی وجود ندارد. این لایه به بهبود زمان تمرین و عملکرد کلی کمک می کند.
علاوه بر این، اتصالات باقیمانده پس از هر بلوک گنجانده میشوند زیرا به اجزا این اجازه را میدهند که مستقیماً و بدون عبور از فعالسازیهای غیرخطی در شبکه جریان پیدا کنند.
Self-Attention در ترانسفورمرهای بینایی چیست؟
مکانیزم Self-Attention یک جزء کلیدی از معماری ترانسفورمر برای بدست آوردن وابستگی های با برد زیاد و اطلاعات متنی در داده های ورودی است. مکانیسم Self-Attention به یک مدل ViT اجازه می دهد تا بر اساس ارتباط آنها با کار موجود، به مناطق مختلف داده های ورودی توجه کند. بنابراین، مکانیسم مجموع وزنی داده های ورودی را محاسبه می کند، نحوه محاسبه وزن ها بر اساس شباهت بین ویژگی های ورودی است. این مکانیزم به مدل اجازه میدهد تا برای ویژگیهای ورودی مربوطه اهمیت تعیین کند و این امر کمک می کند تا بازنماییهای اطلاعاتی بیشتری را از دادههای ورودی بگیرد. از این رو، Self-Attention یک محاسبات اولیه است که برای تعیین تعداد ارتباطات موجودیت های زوجی استفاده می شود که به شبکه کمک می کند تا سلسله مراتب و تراز موجود در داده های ورودی را بیاموزد. ثابت شده است که attention یک عنصر کلیدی برای شبکه های بینایی برای دستیابی به استحکام بالاتر است.

نقشه های attention در ViT چه چیزی هستند؟
نقشههای attention در Vision Transformer (ViT) ماتریسهایی هستند که اهمیت بخشهای مختلف یک تصویر ورودی را در بخش های یاد گرفته شده در مدل نشان میدهند. در ViT، کل تصویر داده های ورودی ابتدا به patch های غیر همپوشانی شده تقسیم می شوند. سپس صاف شده و وارد رمزگذار ترانسفورمر می شوند.
ما میتوانیم نقشههای attention را بهعنوان شبکهای از نقشههای حرارتی به صورت بصری نشان دهیم، که هر نقشه حرارتی نشان دهنده ی وزنهای attention بین یک توکن مشخص و توکن های دیگر است. هرچه رنگ یک پیکسل در نقشه حرارتی روشن تر باشد، وزن توجه بین توکن های مربوطه بیشتر می شود. با تجزیه و تحلیل نقشههای توجه، میتوانیم به اطلاعات مورد نیاز برای دانستن اینکه کدام بخشهای تصویر برای کار کلاسبندی مهمتر هستند دست یابیم.
