

CNN шиг зургийг пиксел пикселээр нь шүүж (filter) уншихын оронд ViT зургийг шууд "эвлүүлдэг тоглоом" (puzzle) шиг жижиг хэсгүүдэд хуваачихдаг. Түүний ажиллах дарааллыг илүү тодорхой харвал:
Зургийг хэсэгчлэх (Patching): Оролтоор орж ирсэн зургийг жишээ нь 16x16 пикселийн хэмжээтэй олон жижиг дөрвөлжин хэсгүүдэд (patches) хуваана. Эдгээр жижиг хэсгүүд нь яг л өгүүлбэр дэх "үгнүүд" шиг үүрэг гүйцэтгэж эхэлнэ.
Вектор руу хөрвүүлэх (Linear Projection): Хуваасан жижиг зургуудаа хавтгайрүүлж (flatten), шугаман хувиргалтаар вектор болгож өөрчилнө. Үүнийг бид Patch Embedding гэж нэрлэдэг.
Байршлын мэдээлэл нэмэх (Position Embedding): Текст дээр үгсийн дараалал чухал байдаг шиг зураг дээр ч аль хэсэг нь хаанаа байгаа нь маш чухал. Тиймээс хэсэг бүрт байршлын кодыг нь хавсаргаж өгдөг. Хэрэв энэ код байхгүй бол ViT зургийн хэсгүүдийг холиод хаячихвал юу болоод байгааг огт ойлгож чадахгүй.
Transformer Encoder болон Self-Attention: Энд л хамгийн гол шид шингэсэн хэсэг нь байгаа юм. Self-Attention механизм нь зургийн нэг хэсэг нөгөө хэсэгтэйгээ ямар холбоотойг олж мэддэг. Жишээ нь, зургийн зүүн дээд буланд байгаа муурын чих, баруун доод буланд байгаа муурын сүүлтэй яаж холбогдож байгааг систем бүхэлд нь нэг дор харж чаддаг гэсэн үг.
ViT ба CNN-ийн Хамгийн Том Ялгаа: Индуктив Хязгаарлалт (Inductive Bias)
Энэ хоёрын архитектурын ялгааг ойлгохын тулд Inductive Bias буюу "урьдчилсан төсөөлөл"-ийг мэдэх хэрэгтэй.

CNN-д "зураг бол ийм байдаг" гэсэн хатуу дүрэм анхнаасаа суучихсан байдаг учраас бага дата дээр хурдан сурдаг. Харин ViT-д тийм дүрэм байхгүй. Тэр зургийг цэвэр цаас шиг хүлээж аваад, өөрөө бүх холбоо хамаарлыг сурдаг. Ингэснээр илүү уян хатан, том хэмжээний дата дээр ажиллах тусам CNN-ээс хамаагүй илүү ухаалаг, "холч хараатай" болж ирдэг байна.
Мэдээж хэрэг, амьдрал дээр бүх зүйл төгс байна гэж үгүй. ViT-д ч бас өөрийн гэсэн давуу тал, зовлон бэрхшээл бий.
Глобал хараа (Global Context): Зургийн өнцөг бүрийг нэг дор шинжилдэг учраас контекстыг том дүр зургаар нь ойлгох чадвар маш өндөр.
Өргөжөх чадвар (Scalability): Дата ихсэх тусам, загварын хэмжээ томрох тусам нарийвчлал нь зогсолтгүй нэмэгддэг. CNN шиг тодорхой цэгт очоод гацчихдаггүй.
Үр ашигтай сургалт: Том хэмжээний датасет дээр сургахад CNN-ээс бага тооцоолуур, бага цаг зарцуулдаг нь практик дээр батлагдсан.
Датаны мангас: ViT-ийг жижиг датасет (жишээ нь ImageNet-1k) дээр шууд сургавал CNN-ийг гүйцдэггүй. Түүнд асар том дата (жишээ нь Google-ийн JFT-300M) хэрэгтэй. Өөрөөр хэлбэл, эхлээд асар их дата дээр урьдчилан сургаж (Pre-train) байж л жинхэнэ хүчээ гаргана.
Санах ойн ачаалал: Self-attention-ий тооцоолол нь зургийн хэмжээ томорвол квадрат зэргээр ($O(N^2)$) өсдөг учраас маш өндөр нягтралтай (high-resolution) зураг дээр ажиллахад хүндрэлтэй байдаг.
ViT анх гарч ирээд дата их шаарддаг сул талыг нь засахын тулд дэлхийн шилдэг судлаачид маш олон шинэ хувилбаруудыг хөгжүүлсэн юм.
DeiT (Data-efficient Image Transformers): Бага дата дээр ч CNN шиг сайн ажилладаг болгохын тулд "Distillation" буюу багш-шавийн зарчмаар (CNN загвараас ViT руу мэдлэг шилжүүлэх) сургадаг аргыг нэвтрүүлсэн.
Swin Transformer: Зургийг жижиг цонхнуудад хувааж, self-attention-ийг зөвхөн тэр цонхон дотроо хийдэг болгосноор тооцооллын хүндрэлийг шийдэж, CNN шиг шаталсан (hierarchical) бүтэцтэй болгосон. Энэ нь объект илрүүлэх (Object Detection) болон сегментчлэх ажилд гайхалтай үр дүн үзүүлж байна.
Товчхондоо бол, ViT нь компьютерийн харааны салбарт шинэ эрин үеийг авчирсан. Өнөөдөр зөвхөн зураг ангилахаас гадна multimodal буюу зураг, текст, дуу авиаг хамтад нь боловсруулдаг (жишээ нь GPT-4V, Gemini, CLIP гэх мэт) орчин үеийн бүхий л том хэмжээний хиймэл оюун ухааны загваруудын "нүд" нь яг л энэ ViT архитектур дээр суурилж байна. Хэрэв та хиймэл оюун ухаан, тэр дундаа компьютерийн харааны чиглэлээр гүнзгийрүүлэн судалж байгаа бол ViT-ийг алгасаж огт болохгүй, заавал суурийг нь ухаж ойлгох ёстой чухал сэдэв мөн билээ.