- Vision Transformers(ViTs) इमेज classification कार्यों में सर्वोच्च प्रदर्शन हासिल करने वाले deep learning मॉडल classes हैं
- यह NLP के लिए डिज़ाइन की गई transformer architecture को image data पर लागू करता है
- यह गाइड visualization और सरल व्याख्या का उपयोग करके यह समझने में मदद करती है कि ये मॉडल कैसे काम करते हैं, और जब data मॉडल से होकर गुजरता है तो उसका flow कैसा दिखता है
मुख्य बातें
- इमेज को p x p आकार के समान patches में विभाजित किया जाता है
- हर patch के encoded vector का एक निश्चित आकार d होता है
- अब जो बचता है वह n x d आकार का एक array है (n = image patches की संख्या, d = patch embedding size)
- मॉडल को प्रभावी ढंग से train करने के लिए patch embedding array को classification token (
cls token) नामक एक अतिरिक्त vector के साथ विस्तारित किया जाता है
- positional information न होने के कारण random रूप से initialize किए गए positional embedding vectors जोड़े जाते हैं
- positional embedding vectors जुड़ने के बाद (n+1) x d आकार का array transformer के input के रूप में दिया जाता है
- Transformer के अंदर
- 10.1 transformer input patch embedding vectors को linear रूप से कई बड़े vectors में embed किया जाता है: Q - query vector, K - key vector, V - value vector
- 10.2 attention score A की गणना करने के लिए सभी query vectors Q को सभी key vectors K के साथ गुणा किया जाता है
- 10.3 attention score matrix A बनने के बाद उसकी हर row पर
softmax function लागू किया जाता है ताकि हर row का योग 1 हो जाए
- 10.4 पहले patch embedding vector के लिए aggregated context information की गणना करने हेतु attention matrix की पहली row पर ध्यान दिया जाता है और उसके entries को value vectors V के weights के रूप में उपयोग किया जाता है
- 10.5 अब attention score matrix की सभी rows के लिए यही process दोहराने पर N+1 aggregated context information vectors बनते हैं (हर patch के लिए एक + classification token के लिए एक) और इस चरण के साथ पहला attention head पूरा होता है
- 10.6 चूंकि यहाँ multi-head attention है, इसलिए अलग QKV mapping का उपयोग करके 10.1 - 10.5 की पूरी process फिर से दोहराई जाती है
- 10.7 अंतिम attention layer चरण में heads को एक साथ stack किया जाता है और patch embedding के समान आकार d के vector में map किया जाता है
- 10.8 पिछले चरणों के बाद attention layer पूरी हो जाती है, और input के बिल्कुल समान आकार के उतने ही embeddings शेष रहते हैं
- 10.9 transformer residual connections का व्यापक उपयोग करता है, जिसका सीधा अर्थ है पिछले layer के input को वर्तमान layer के output में जोड़ना
- 10.10 residual connection (addition) के परिणामस्वरूप समान आकार के vectors बनते हैं
- 10.11 यह output nonlinear activation function वाले feed-forward neural network से होकर गुजरता है
- 10.12 transformer चरणों के बाद एक और residual connection होता है, लेकिन यहाँ उसे छोड़ा गया है. इसके साथ transformer layer पूरी होती है. परिणामस्वरूप transformer input के समान आकार का output उत्पन्न करता है
- इसके बाद transformer की पूरी computation process, चरण 10.1 से 10.12 तक, कई बार दोहराई जाती है (उदाहरण के लिए 6 बार)
- अंतिम चरण classification token output की पहचान करना है. इस vector का उपयोग Vision Transformer के अंतिम चरण में किया जाएगा
- अंतिम चरण में इसी classification output token और एक अन्य fully connected neural network का उपयोग करके input image की classification probabilities का अनुमान लगाया जाता है
- Vision Transformer को standard cross-entropy loss function का उपयोग करके train किया जाता है, जो predicted class probabilities की तुलना actual class labels से करता है
- मॉडल को backpropagation और gradient descent से train किया जाता है, और loss function को न्यूनतम करने के लिए model parameters को update किया जाता है
1 टिप्पणियां
आपके साझा किए गए लेख को देखकर लगा कि इमेज के साथ समझाना अच्छा रहेगा, इसलिए लेखक की अनुमति लेकर मैंने मूल लेख का अनुवाद किया है: