본문 바로가기

전체 글45

[VLM]CLIP - 이미지와 텍스트를 같은 공간에 정렬 1. VLM이란?VLM(Vision Language Model)은 Computer Vision 과 NLP 기능을 결합한 AI모델을 말한다.기존의 Vision 모델은 이미지만 입력으로 받아 분류나 객체인식과 같은 작업을 수행하고, NLP모델은 텍스트를 입력으로 받아 문장을 이해하거나 생성한다. 하지만 이 둘을 함께 사용할 수는 없었다. 예를 들어 강아지 사진을 넣는다면 Vision 모델에서 강아지를 구별 할 수는 있지만 '뛰고 있는 강아지'와 '자고 있는 강아지'를 구별하고 이를 설명하라고 시키면 못한다는 것이다. 이를 해결한 모델이 VLM으로 서로 다른 형태의 데이터인 Vision과 Language를 하나의 모델 안에서 연결한다. 대표적인 모델로 CLIP과 LLaVA에 대해 알아보자.2. CLIPCLIP.. 2026. 10. 16.
[DINO]Teacher와 Student로 배우는 Self-Supervised Learning 1. DINO의 전체 구조글을 천천히 따라오면서 위 그림을 보면 이해하기가 한결 편할 것 같아 먼저 DINO를 도식화 한 그림부터 넣고 시작하겠다. 2. DINO의 핵심 아이디어 : Teacher/ Student 구조DINO의 핵심 아이디어는 Teacher/Student 구조를 하고 있다는 것이다.같은 이미지에서 만들어진 서로 다른 view는 같은 의미를 가져야 한다는 것이 포인트다. Label이 없는 데이터를 학습 시키는 것이기 때문에 Student의 head는 Teacher head를 보고 학습 하게 된다.2.1 StudentStudent는 일반적인 neural network 처럼Loss ↓Backpropagation ↓Gradient ↓Parameter Update이 구조를 따르게 되는데, 여기서 .. 2026. 10. 10.
Self-Supervised Learning (자기 지도 학습) 1. Supervised Learning(지도 학습)의 한계우리가 지금까지 해온 Deep learning model들을 보면Input ↓Model ↓Prediction ↓정답 Label과 비교 ↓Loss이 과정으로 이루어지는 Supervised Learning이 대부분이였다.(BERT제외)Supervised Learning은 굉장히 베이직하고 좋은 방법이지만, 여기에는 치명적인 약점이 있다.사람이 정답 Label을 만들어줘야 한다.소규모 데이터라면 큰 문제가 없지만 데이터가 수백만, 수억 개로 커지면 모든 데이터에 사람이 label을 붙이는 것이 어렵고 특히 비용이 많이든다는 치명적인 단점이 있다. 그래서 필요했던 아이디어가 "레이블이 없는 데이터로부터 학습하는 인공지능 기법" 이였고 이는 Sel.. 2026. 10. 9.
[Paper][ViT]An Image is Worth 16×16 Words: Transformers for Image Recognition at Scale 리뷰 1. 논문 소개An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale (2020 / Alexey Dosovitskiy, Lucas Beyer, Alexander Kolesnikov, Dirk Weissenborn, Xiaohua Zhai, Thomas Unterthiner, Mostafa Dehghani, Matthias Minderer, Georg Heigold, Sylvain Gelly, Jakob Uszkoreit, Neil Houlsby) Main Idea : CNN 없이 Transformer를 이미지 분류에 직접 이용 ▶ Data가 큰 경우 CNN보다 좋은 성능2. 왜 Vision에 Transformer를 사용했을까?.. 2026. 10. 6.
[Vision Transformer] 4. Post-LN vs Pre-LN, ReLU vs GELU 0. patch_embedding tool앞서 patch_embedding을 설명하고 코드를 만들 때 바로 잘라주는 tool이 있다고 했었다. 내가 직접 만들 때는 조금 더 직관적으로 보기 위해image→ unfold→ permute→ reshape→ Linear이렇게 patch를 자르고 embedding까지 각각 진행 했지만 실제 구현에서는 더 간단하고 빠르게nn.Conv2d( in_channels=3, out_channels=d_model, kernel_size=patch_size, stride=patch_size)이렇게 patch 분할 + linear projection 까지 한번에 처리할 수 있다. 예를 들어, 4x4 patch라면 kernel_size = 4, stride .. 2026. 9. 27.
[Vision Transformer] 3. VisionTransformer 모듈 완성 1. Transformer Encoder 재사용기존에 내가 만들어줬던 Encoder를 재사용할 예정이다. ViT에서는 Decoder/casual-mask/cross-attention 이 필요없기 때문에 Encoder 부분만 있는 그대로 들고와 줬다.import mathimport torchimport torch.nn.functional as Fimport torch.nn as nndef scaled_dot_product_attention(Q,K,V, mask = None): #Q,K,V: (batch, heads, seq_len, d_k) 크기의 행렬 scores = torch.matmul(Q,K.transpose(-2,-1)) / math.sqrt(Q.size(-1)) if mask .. 2026. 9. 25.