وبلاگ / Vision Transformers (ViT): پیشتازی جدید در درک بینایی ماشینی

Vision Transformers (ViT): پیشتازی جدید در درک بینایی ماشینی

Vision Transformers (ViT): پیشتازی جدید در درک بینایی ماشینی

مقدمه

در دنیای هوش مصنوعی، تعدادی از سؤالات اساسی وجود دارند که پاسخ‌های آن‌ها تاریخ تکنولوژی را تغییر می‌دهند. یکی از این سؤالات این بود که آیا معماری‌هایی که برای پردازش زبان طراحی شده‌اند، می‌توانند برای درک تصاویر نیز کار کنند. این سؤال در سال 2020 توسط محققان گوگل ریسرچ و دانشگاه لودویگ مکسیمیلیان مونیخ به عنوان یک فرصت به تار و پود جامعه تحقیقات هوش مصنوعی بافته شد، و نتیجه آن Vision Transformers یا ViT بود.
برای دهه‌ای قبل از این، شبکه‌های عصبی کانولوشنی (CNN) بر عرصه بینایی رایانه‌ای حاکمیت داشتند. این معماری‌ها موفق بودند، اما روشی کاملاً محدود برای درک تصاویر داشتند. تصور کنید که برای فهمیدن یک نقاشی از سری پنجره‌های رو به رو استفاده می‌کنید که اندازه‌های بزرگتری می‌یابند. این دقیقاً همان کاری است که CNN‌ها انجام می‌دهند - آن‌ها از جزئیات کوچک شروع می‌کنند و به تدریج به ویژگی‌های بزرگتر می‌رسند. اما این روش می‌تواند درک کلی را از دست بدهد و گاهی اوقات در فهمیدن اینکه بخش‌های مختلف یک تصویر چگونه با یکدیگر مرتبط هستند، ناکام می‌شود.

منشأ و پیدایش Vision Transformers

تاریخچه Vision Transformers از موفقیت بسیار زیاد معماری ترنسفورمر در پردازش زبان طبیعی (NLP) نشأت می‌گیرد. زمانی که ترنسفورمرها در سال 2017 با منتشر شدن مقاله نام‌آور "Attention is All You Need" معرفی شدند، این معماری روش ما را در پردازش داده‌های ترتیبی به کلی تغییر داد. آن‌ها نشان دادند که می‌توان روابط میان کلمات در یک جملۀ طویل را فهمید، صرف نظر از فاصله‌ای که بین آن‌ها وجود دارد.
برای سال‌های متمادی، این پیشرفت عمدتاً محصور در حوزۀ پردازش زبان بود. تا اینکه محققان تصمیم گرفتند: "اگر می‌توانستیم این روش توجه مبتنی (attention-based) را بر روی تصاویر نیز اعمال کنیم چه؟" این سؤال منجر به انتشار مقاله "An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale" شد.
بینش کلیدی به سادگی و الهام‌بخشی برخوردار بود: به جای پردازش کلمات، Vision Transformer یک تصویر را به سری‌ای از قطعات یا "patches" تقسیم می‌کند - هر قطعه حدود 16×16 پیکسل است. هر قطعه مثل یک "کلمۀ بصری" در واژگان ترنسفورمر عمل می‌کند. درست همانطور که یک ترنسفورمر زبانی می‌تواند بفهمد که شناسهٔ "نه" در آغاز جملۀ چگونه بر معنای کلمات در انتهای جملۀ تأثیر می‌گذارد، ViT نیز می‌تواند بفهمد که یک شیء در یک گوشۀ تصویر چگونه با اشیای دیگری که در گوشه‌های دیگری قرار دارند، ارتباط دارد.
این روش یک جدایی کاملاً بنیادی از پارادایم سلطۀ CNN بود که برای تقریباً یک دهه بر بینایی رایانه‌ای تسلط داشت. درحالی که CNN‌ها در گرفتن الگوهای محلی از طریق ساختار سلسله‌مراتبی خود عالی عمل می‌کنند، ViT‌ها روش کاملاً متفاوتی برای درک تصاویر پیشنهاد دادند - روشی مبتنی بر روابط جهانی و مکانیسم توجه.

چگونگی کار Vision Transformers

پردازش قطعات تصویر

تصور کنید که در حال تکمیل یک پازل جیگ‌ساو هستید. به جای بررسی هر قطعه به طور جداگانه، شما دائماً قطعات را با هم مقایسه می‌کنید تا بفهمید چگونه ممکن است با یکدیگر جور شوند. به دنبال الگوهایی می‌گردید که از یک قطعه به قطعۀ دیگر ادامه دارند، رنگ‌هایی که تطابق داشته باشند، و اشکالی که یکدیگر را تکمیل کنند.
Vision Transformers به شیوه‌ای بسیار مشابهی کار می‌کنند. هنگامی که با یک تصویر مواجه می‌شوند، آن را به قطعاتی تقسیم می‌کنند - معمولاً حدود 16×16 پیکسل در اندازه. این قطعات مثل تکه‌های پازل ما هستند. برخلاف یک CNN سنتی که هر قطعه را تا حدی به طور مستقل پردازش می‌کند، Vision Transformer فوری‌اً شروع به بررسی روابط هر قطعه با تمام قطعات دیگر در تصویر می‌کند.
هر قطعه به یک دنباله از اعداد (بردار) تبدیل می‌شود که محتوای آن را نمایندگی می‌کند - تصور کنید که این مثل نوشتن توضیح دقیقی برای هر تکه پازل است. اما بخش جالب‌تر این است: ترنسفورمر همچنین اطلاعاتی درباره محل قرارگیری هر قطعه در تصویر اصلی را اضافه می‌کند. این مثل شماره‌گذاری تکه‌های پازل شما برای یادآوری موقعیت اصلی آن‌ها است. این ترکیب از اطلاعات محتوا و موقعیت حیاتی است - به ترنسفورمر کمک می‌کند تا بفهمد هم آنچه را می‌بیند و هم آنکه همه چیز در ارتباط با عناصر دیگر کجا قرار دارد.

مکانیسم خودتوجهی (Self-Attention)

جادوی واقعی Vision Transformers در آن چیزی اتفاق می‌افتد که مکانیسم خودتوجهی (self-attention mechanism) نام دارد. این جایی است که ترنسفورمر یاد می‌گیرد که بر روابط مهم‌ترین بین بخش‌های مختلف تصویر تمرکز کند. این مثل صحبت در یک پارتی پر شلوغی است - درحالی که می‌توانید گفتگوهای بسیاری را در اطرافتان بشنوید، شما توجه خود را بر روی مرتبط‌ترین آن‌ها متمرکز می‌کنید.
در زمینۀ یک تصویر، خودتوجهی به ترنسفورمر اجازه می‌دهد تا پویا تصمیم بگیرد که کدام قطعات باید به کدام قطعات دیگر توجه کنند. برای مثال، هنگام تشخیص یک چهره، سیستم می‌تواند یاد بگیرد که قطعاتی که شامل یک چشم هستند، باید توجه خاصی به قطعاتی داشته باشند که ممکن است چشم دیگری را شامل شوند، یا قطعاتی که ممکن است بینی یا دهان را درون خود داشته باشند. این توانایی برای ایجاد روابط پویا و وابسته به محتوا بین بخش‌های مختلف تصویر همان چیزی است که Vision Transformers را بسیار قدرتمند می‌سازد.
مثالی عملی را در نظر بگیرید: تشخیص شخصی که بسکتبال بازی می‌کند. یک Vision Transformer نه تنها فردی و توپ را به عنوان موجودات جداگانه تشخیص می‌دهد - بلکه می‌تواند بفهمد که آن‌ها چگونه با یکدیگر ارتباط دارند. موقعیت بازوها می‌تواند بر اینکه چگونه موقعیت توپ را تفسیر کند تأثیر بگذارد و برعکس. این درک کلی منجر به تشخیص قوی‌تری می‌شود، به ویژه در صحنه‌های پیچیده‌ای که زمینۀ تصویر اهمیت فراوانی دارد.
اما شاید متعجب‌کننده‌ترین جنبهٔ این مکانیسم انعطاف‌پذیری آن است. برخلاف CNN‌ها که الگوهای ثابتی برای ترکیب اطلاعات از پیکسل‌های نزدیک دارند، Vision Transformers می‌تواند الگوهای توجه خود را بر اساس محتوای هر تصویر تغییر دهد. این مثل داشتن یک کارآگاه است که می‌تواند بر اساس سرنخ‌های خاصی که می‌یابد، استراتژی تحقیق خود را به طور پویا تغییر دهد، به جای اینکه هر بار یک روش یکسان را دنبال کند.

فرآیند آموزش Vision Transformers

روش یادگیری Vision Transformers
روشی که Vision Transformers یاد می‌گیرند، جذاب و به بسیاری از جهات مشابه روشی است که انسان‌ها تخصص بصری را توسعه می‌دهند. درست همانطور که یک کودک باید نمونه‌های بسیاری از گربه‌ها را ببیند تا بتواند آن‌ها را در زمینه‌های مختلف به طور قابل اعتماد شناسایی کند، Vision Transformers نیز برای توسعه درک بصری قوی به داده‌های آموزشی وسیع نیاز دارد. با این حال، روشی که از این داده‌ها یاد می‌گیرند، منحصر به فرد است.
تصور کنید که به شخصی آموزش می‌دهید تا پرندگان را شناسایی کند. شما نه با دادن دستورالعملی دقیق درباره هر الگوی پر و شکل منقار شروع می‌کنید. به جای آن، نمونه‌های بسیاری از پرندگان مختلف را به او نشان می‌دهید و به او اجازه می‌دهید به طور طبیعی ویژگی‌ها و الگوهای مهم را بیاموزد. Vision Transformers به شیوه‌ای مشابهی می‌آموزند، اما با یک پیچش جالب: آن‌ها آنچه را که باید به آن توجه کنند، کاملاً از داده‌ها یاد می‌گیرند.
فرآیند آموزش با آنچه آموزش قبلی (pre-training) نام دارد آغاز می‌شود. در این فاز، ترنسفورمر میلیون‌ها تصویر را مشاهده می‌کند و از آن خواسته می‌شود که وظیفه‌ای بسیار ساده را حل کند: نگاه کردن به یک تصویر جزئی و سعی در پیش‌بینی قطعات گمشده. این مثل حل معماهای پازل بی‌شمار است که در آن برخی تکه‌ها پنهان هستند. از طریق این فرآیند، ترنسفورمر یاد می‌گیرد که الگوهای بنیادی و روابط موجود در صحنه‌های بصری را درک کند.
آنچه این روش را به ویژه قدرتمند می‌سازد این است که ترنسفورمر صرفاً تصاویر خاص را به خاطر نمی‌سپارد - بلکه اصول کلی درباره اینکه عناصر بصری چگونه با یکدیگر مرتبط هستند را یاد می‌گیرد. درست مثل انسانی که در حل پازل‌های جیگ‌ساو ماهر است و می‌تواند پازل‌های جدیدی را که هرگز قبلاً ندیده است حل کند، یک Vision Transformer آموزش‌دیدۀ خوب می‌تواند تصاویر جدید را با اعمال اصولی که یاد گرفته است درک کند.

مقیاس‌پذیری و کارایی

توسعه‌پذیری بی‌پایان Vision Transformers
یکی از جذاب‌ترین جنبه‌های Vision Transformers این است که آن‌ها با داده‌های بیشتر و قدرت محاسباتی بیشتر چگونه خوب عمل می‌کنند. این مثل داشتن دانش‌آموزی است که نه تنها از هر مثالی که می‌بیند یاد می‌گیرد، بلکه با دیدن مثال‌های بیشتر حتی بهتر یاد می‌گیرد. CNN‌های سنتی در نهایت به سقفی می‌رسند که در آن اضافه کردن داده‌های بیشتر یا بزرگتر کردن مدل کمکی نمی‌کند. Vision Transformers از سوی دیگر، به طور مداوم با افزایش مقیاس بهتر می‌شوند.
با این حال، این مقیاس‌پذیری با چالش‌های جالبی همراه است. تصور کنید که تلاش می‌کنید در یک اتاق رو به رو پر شلوغ صحبت کنید - هر چه افراد بیشتری (یا در مورد ما، قطعات تصویر) شرکت کنند، مدیریت تمام فعل‌وانفعالات احتمالی سخت‌تر می‌شود. محققان راه‌حل‌های هوشمندانه‌ای برای این چالش توسعه دادند، مثل تمرکز ترنسفورمر بر روی فقط مهم‌ترین روابط به جای تلاش برای ردیابی هر اتصال ممکن.

کاربردهای عملی Vision Transformers

پزشکی و تشخیص
بینایی رایانه‌ای در تصاویر پزشکی با استفاده از Vision Transformers به صورت اساسی تغییر یافته است. توانایی ViT در درک روابط فضایی پیچیده آن را برای تجزیه و تحلیل اشعه‌ایکس و تصاویر MRI ایده‌آل می‌سازد. هنگام تجزیه و تحلیل یک تصویر پزشکی، فهمیدن اینکه بخش‌های مختلف تصویر چگونه با یکدیگر مرتبط هستند، بسیار مهم است. یک ناهنجاری کوچک می‌تواند زمانی معنادار‌تر شود که در ارتباط با بافت‌های اطراف در نظر گرفته شود. Vision Transformers در این نوع تجزیه و تحلیل متن‌محور عالی عمل می‌کنند، اغلب الگوهای ظریفی را می‌یابند که روش‌های سنتی ممکن است از دست بدهند.
خودروهای خودران
در حوزۀ خودروهای خودران، Vision Transformers به کمک می‌رسند تا خودروها محیط خود را بهتر درک کنند. سیستم‌های سنتی ممکن است عناصری مانند خودروها، عابران پیاده و علائم راهنمایی را به طور جداگانه تشخیص دهند. اما Vision Transformers می‌تواند درک کند که این عناصر چگونه با یکدیگر تعامل دارند - برای مثال، موقعیت و حرکت یک عابر پیاده چگونه با خودروهای نزدیک و سیگنال‌های راهنمایی رابطه دارد. این درک کلی منجر به پیش‌بینی بهتری از رفتار عناصر مختلف در صحنه می‌شود.
پردازش تصویر و سازمان‌دهی عکس
حتی در کاربردهای روزمره‌ای مثل سازمان‌دهی و ویرایش عکس‌ها، Vision Transformers تأثیر مهمی دارد. آن‌ها می‌توانند محتوا و متن‌محور عکس‌ها را درک کنند، این امکان را فراهم می‌کند که سیستم‌ها عکس‌ها را بر اساس آن چه که نشان می‌دهند سازمان‌دهی کنند، یا حتی توصیه‌هایی برای ویرایش بهتر ارائه دهند.

مقایسه Vision Transformers با CNN‌های سنتی

کدام یک بهتر است؟
این پرسشی است که بسیاری از محققان و متخصصان را سردرگم کرده است. واقعیت این است که هر دو روش مزایا و معایبی دارند:
Vision Transformers:
  • ✓ درک روابط جهانی بهتر در تصویر
  • ✓ مقیاس‌پذیری بسیار خوب با داده‌های بزرگتر
  • ✗ نیاز به داده‌های بسیار زیاد برای آموزش
  • ✗ محاسبات سنگین در مقایسه با CNN‌های ساده
  • ✓ کمتر به داده‌های آموزشی نیاز دارند
  • ✓ محاسبات سریع‌تر
  • ✗ درک ضعیف‌تر از روابط جهانی
  • ✗ محدود در مقیاس‌پذیری
بهترین رویکرد: بسیاری از سیستم‌های جدید از ترکیبی از هر دو استفاده می‌کنند - CNN‌ها برای فیچرهای اولیه و Vision Transformers برای درک روابط جهانی.

تکنولوژی‌های مرتبط و معماری‌های جدید

Multimodal Transformers

مدل‌های چندحالتی (Multimodal) تصویر و متن را به طور همزمان پردازش می‌کنند. این مدل‌ها می‌توانند عکس را ببینند و توضیحاتی درباره آن بنویسند، یا متنی را بخوانند و تصویر مرتبط تولید کنند.

ViT و Deep Learning

یادگیری عمیق ViT استفاده می‌کند تا لایه‌های متعددی از نمایندگی‌های تجریدی ایجاد کند. هر لایه، الگوهای پیچیده‌تری نسبت به لایۀ قبلی یاد می‌گیرد.

Attention Mechanism در ViT

مکانیسم توجه هسته و روح Vision Transformers است. این مکانیسم تصمیم می‌گیرد کدام بخش‌های تصویر برای تکمیل یک وظیفه مهم‌ترین هستند.

Generative Models و ViT

مدل‌های مولد مثل شبکه‌های تولید مخاصم (GANs) و مدل‌های انتشار نیز می‌توانند از Vision Transformers استفاده کنند تا تصاویر جدید را تولید کنند.

انتخاب Framework برای Vision Transformers

اگر قصد دارید Vision Transformers را در پروژه خود استفاده کنید، چندین گزینۀ عالی وجود دارد:

PyTorch

PyTorch یکی از محبوب‌ترین فریم‌ورک‌های یادگیری عمیق است. این فریم‌ورک امکانات ممتازی برای پیاده‌سازی Vision Transformers فراهم می‌کند.

TensorFlow

TensorFlow گزینۀ دیگری است که Keras را شامل می‌شود، چنین فریم‌ورک‌های سطح بالا ساخت مدل‌های پیچیده را آسان می‌سازند.

OpenCV

OpenCV ابزار قدرتمندی برای پردازش تصویر است که برای آماده‌کردن داده‌های تصویری قبل از تغذیه آن‌ها به Vision Transformers استفاده می‌شود.

چالش‌ها و محدودیت‌های Vision Transformers

تقاضای محاسباتی زیاد
مهم‌ترین چالش Vision Transformers این است که نیاز به منابع محاسباتی گسترده‌ای دارند. برخلاف CNN‌های سبک، Vision Transformers معمولاً بزرگ‌تر هستند و برای آموزش نیاز به GPU‌های قدرتمند یا TPU‌ها دارند.
نیاز به داده‌های بسیار زیاد
Vision Transformers برای کار کردن به درستی به تعداد عظیمی از تصاویر آموزشی نیاز دارند. برخلاف CNN‌ها که می‌توانند با داده‌های کمتر یاد بگیرند، Vision Transformers بدون آموزش قبلی (pre-training) روی داده‌های بزرگ نتایج خوبی ارائه نمی‌دهند.
تفسیر‌پذیری (Interpretability)
مانند بسیاری از مدل‌های هوش مصنوعی عمیق، Vision Transformers مدل‌های جعبۀ سیاه هستند - درک اینکه دقیقاً چرا یک تصمیم خاص را گرفته است، چالش برانگیز می‌تواند باشد.

نتایج و عملکرد عملی

کارایی در دنیای واقعی
تحقیقات متعدد نشان داده‌اند که Vision Transformers، زمانی که با کافی داده آموزشی در دسترس است، نتایج فوق‌العاده‌ای ارائه می‌دهند. در مسائل تشخیص تصویر استاندارد مثل ImageNet، ViT‌ها معمولاً عملکردی برابر یا بهتر از CNN‌های پیشرفته دارند.
مدل‌های قبل‌آموخته و استفادۀ عملی
خوشبختانه، شما برای استفاده از Vision Transformers نیازی ندارید که از ابتدا آموزش دهید. مدل‌های قبل‌آموخته (pre-trained) از مراکز تحقیقاتی مثل گوگل و متاآنتقال‌قابلند. این امکان را فراهم می‌کند که حتی با داده‌های محدود، از قدرت ViT بهره‌برداری کنید.

آینده Vision Transformers

توسعه‌های آتی و تحقیقات جاری
دنیای Vision Transformers به سرعت تکامل می‌یابد. محققان به طور مداوم روی بهتری کردن کارایی، کاهش نیاز محاسباتی، و پیدایش کاربردهای جدید کار می‌کنند.
ترکیب با تکنولوژی‌های دیگر
یکی از جهات جالب توجه، ترکیب Vision Transformers با دیگر فن‌آوری‌های هوش مصنوعی است. برای مثال، ترکیب ViT با شبکه‌های عصبی بازگشتی (RNN) و شبکه‌های حافظۀ کوتاه‌مدت بلند (LSTM) می‌تواند برای کارهای پیش‌بینی سری‌های زمانی از تصاویر مفید باشد.
ViT و مدل‌های زبانی بزرگ
ترکیب مدل‌های زبانی بزرگ (LLM) با Vision Transformers منجر به ایجاد مدل‌های چندحالتی شده است که می‌توانند تصاویر و متن را به طور یکپارچه درک و تولید کنند. این مدل‌ها برای وظایفی مثل ایجاد توضیحات خودکار برای تصاویر و پاسخ‌دهی به پرسش‌هایی درباره محتوای تصاویر استفاده می‌شوند.

اخلاق و مسائل امنیتی

همانند هر سیستم هوش مصنوعی، Vision Transformers نیز می‌توانند تعصب‌های موجود در داده‌های آموزشی را تقویت کنند. اگر مدل روی تصاویری که نمایندگی نامتوازن دارند آموزش داده شود، نتایج ممکن است برای گروه‌های تحت‌نمایندگی به طور نامطلوب باشد.
امنیت و تولید محتوای نادرست
Deepfakes و محتوای تولید‌شده به طور مصنوعی خطر جدی است. Vision Transformers، درست مثل دیگر مدل‌های تولید تصویر، می‌توانند برای ایجاد تصاویر نادرست و گمراه‌کننده استفاده شوند.
حریم خصوصی
استفاده از Vision Transformers برای تشخیص چهره و شناسایی افراد مسائل جدی درباره حریم خصوصی ایجاد می‌کند. مسؤولیت اخلاقی و قانونی در استفاده از این فن‌آوری‌ها بسیار مهم است.

نتیجه‌گیری

Vision Transformers یک پیشرفت انقلابی در بینایی رایانه‌ای هستند که نشان می‌دهد سؤالات بزرگ در هوش مصنوعی اغلب از کنار گذاشتن فرض‌های قدیمی و تلاش برای رویکردهای جدید ناشی می‌شوند. تاریخچۀ ViT - از موفقیت ترنسفورمرها در NLP گرفته تا اعمال آن‌ها بر بینایی رایانه‌ای - نشان می‌دهد که نوآوری اغلب از عرضه‌کردن ایده‌های موجود به مسائل جدید آغاز می‌شود.
اگرچه Vision Transformers در حال حاضر چالش‌های قابل‌توجهی دارند - مثل نیاز به محاسبات سنگین و داده‌های پر حجم - مزایای آن‌ها واضح هستند. درک برتر از روابط جهانی در تصاویر، مقیاس‌پذیری بهتر، و کاربردهای متنوع در حوزه‌های پزشکی، خودرویی، و بسیاری زمینه‌های دیگر، آن‌ها را ابزار اساسی برای آینده بینایی رایانه‌ای می‌سازند.
آینده Vision Transformers روشن است. با ادامۀ تحقیقات، بهبود الگوریتم‌ها، و افزایش کارایی محاسباتی، قابل انتظار است که Vision Transformers به تدریج برای کاربردهای بیشتر و متنوع‌تری دردسترس‌تر شوند. انقلاب بینایی رایانه‌ای تنها شروع شده است.