Study/머신러닝

CV 트렌드

김 도경 2025. 1. 9. 12:19
CV 주요 연구
  • Generative Model & Stable Diffusion
    - 생성형 모델은 GAN에서부터 점차 발전하여, diffusion 방법의 생성형 모델이 우수한 성능을 보이고 있음

    - Midjourney AI : Discord에서 사용가능한 AI 아트 생성기
    - DALL-E : OpenAI에서 개발하여 ChatGPT에서 사용 가능한 이미지 생성기

  • Machine Unlearning
    - Right to be forgotten: EU에서 제정된 ‘잊혀질 권리'에 대한 규제 (General Data Protection Regulation;GDPR)
       - 인터넷에서 고객 데이터를 지울 수 있어야 할 뿐 아니라 학습 데이터로도 사용되어서는 안됨
       - Membership inference attack으로 누군가의 데이터가 학습에 사용 되었는지 추론이 가능
       - 데이터의 privacy 문제가 더욱 심해지고 있음
    - Unintentional data
       - AI에 대한 poisoning attack으로 학습 데이터에 학습을 방해하도록 설계된 데이터가 포함되어있을 수 있음
       - 사용자가 실수로 클릭한 아이템에 대한 데이터를 학습한 추천시스템은 추천 성능이 떨어짐

    - 제거하고싶은 데이터 (forget set)을 제외한 나머지 데이터로 재학습
    - 하지만, 학습에 오랜 시간이 걸리는 경우, 제거 요청이 들어올 때마다 매번 학습하는 것은 불가능
    - 모델의 성능은 유지하면서 forget set만 제거할 수 있도록 고안된 연구가 machine unlearning

  • Foundation Model
    - Self-supervised Learning in CV
       - 별도의 label 없이 이미지만을 사용하여 pre-train, 이후 여러 downstream task의 baseline이 되는 모델
    - Vision-Language Pretraining 
       - 이미지와 관련있는 문장을 이용하여 이미지와 텍스트를 함께 pre-train한 모델 (Image, Caption)
       - 이미지와 자연어의 임베딩을 같은 공간에 위치하려는 연구
    - Segment Anything
       - Segmentation 도메인에서 사용될 수 있는 foundation mode
Self-supervised Learning
  • Self-supervised Learning
    - Supervised learning은 전문가의 label 필요
    - 하지만, 이런 데이터는 비용이 매우 비싸며, 구축하는데 시간이 오래 걸림
    - 즉, (X, y)가 있을 때, X는 쉽게 구할 수 있지만, y는 구하기 어려움
    - 이에 쉽게 구할 수 있는 데이터들만 이용해서 학습 진행
    - 즉, X만을 이용해서 학습하는 self-supervised learning 연구의 등장
    - Self-supervised learning은 NLP 도메인에서 주로 사용
    - 이후 이미지 도메인에서도 이미지만 가지고 학습하는 self-supervised learning 연구가 활발히 진행

  • DINO
    - Contrastive Learning 
       - Anchor image가 있을 때, positive sample과 negative sample 필요 
           - Positive sample: Anchor image와 거리가 가까운 sample 
           - Negative sample: Anchor image와 거리가 먼 sample
       - Anchor와 positive sample 사이의 거리는 가깝게, negative sample과의 거리는 멀어지도록 학습 
       - 일반적으로 positive, negative sample을 정의하는데 어려움이 있음

    - SimCLR 
       - Positive-negative pair를 따로 사용하지 않음
       - 대신 sample에 augmentation을 적용해, 이를 사이의 거리를 가깝게 학습 
          - 즉, positive sample은 augmentation이 적용된 sample이 됨 
          - 이때, negative sample은 한 배치 안에서 positive sample을 제외한 모든 샘플 (InfoNCE Loss)
       - 모델로부터 계산된 positive sample의 representation간의 차이를 최소화하는 것이 목적
       - 배치 사이즈가 커지면 커질수록 성능이 올라감 → Negative sample에 영향을 많이 받음

    - Bootstrap Your Own Latent (BYOL)
       - Only positive sample !
       - SimCLR와 유사하지만 각각의 branch는 같은 모델, 다른 parameter를 사용
       - Target 모델은 stop gradient (sg), 대신 online model의 EMA로 parameter 업데이트
            - Online model의 불안정성을 감소


  • Self-distillation with No Label (DINO)
    - Knowledge distillation
      - 이미 학습된 teacher model로 부터 새로운 student model을 학습시키는 방법
      - Teacher와 student가 동일한 output을 내도록 학습하는 knowledge transferring
      - 주로 teacher model이 파라미터 수가 더 많고, student model은 가벼운 모델을 사용

    - Self-distillation (BYOL)
      - Teacher와 student와 동일한 모델, 다른 parameter를 사용
      - Teacher가 선행학습되지 않은 상태이며, student로 부터 간접적으로 학습
      - Teacher model은 student model이 안정적으로 학습될 수 있도록 regularizer 역할

    - ResNet을 사용한 BYOL과 달리 ViT 사용 
    - Input strategy
      - 두 네트워크는 동일한 이미지로부터 생성된 다른 종류의 augmentation을 사용
      - Teacher model은 global view (color jitter, blur 등)만 사용
      - Student model은 global view 뿐 아니라 local view 즉, crop 이미지도 사용
    - Objective function
      - 두 네트워크의 output 차이는 cross-entropy로 계산하여, output들 간의 차이를 줄이는 것이 학습 목표
    - Collapse
      - 매번 동일한 output을 생산하기만 해도 cross-entropy가 0이 됨 (easy solution)
      - 즉, 모델이 상수 함수로 수렴할 수 있는 위험도가 있음

    - Avoiding collapse
    - Centering: 특정 dimension이 너무 강한 signal을 갖지 않도록 feature들을 global center쪽으로 이동
       - Centering만 사용하는 경우 uniform한 output을 내보내게 됨
         - Sharpening: Softmax의 exponential 분모 부분 (temperature)값을 조절하여 softmax 효과를 증대
       - Low temperature → output 값 사이의 차이 극대화
         - Centering과 sharpening이 하나라도 없으면 collapse가 발생

  • Image Pre-training with Online Tokenizer (iBOT)
    - Masked Language Modeling (MLM)
         - NLP에서 token을 masking한 뒤 이를 예측하는 방법으로 학습
         - 이를 통해 모델이 문장의 context을 이해하고 더 일반화 되도록 함

    - BEiT
         - MLM과 같이 이미지 패치의 일부를 masking, 이후 이를 예측
         - 모델이 이미지의 context를 이해할 수 있도록 유도(Masked Image Modeling)
         - 이 때 image tokenizer는 사전 학습된 DALL-E tokenizer를 사용
             - DALL-E tokenizer는 discrete VAE를 사용하여 학습
             - 이미지 해상도를 대폭 줄임 → Image quality는 유지하면서, 네트워크 연산량 감소
         - 여기서 tokenizer는 추가 학습되지 않고, BEiT는 DALL-E tokenizer의 지식을 MIM으로 학습하는데 그침
         - iBOT은 DINO의 형식을 따르지만 patch-level output에 MIM을 적용하여 tokenizer도 학습할 수 있도록 개선
         - Tokenizer의 경우 DALL-E tokenizer가 아닌 self-distillation 과정으로 학습되는 online tokenizer 사용

  • SEER
    - Self-supervision을 통해 뛰어난 pre-training 모델을 만들 수 있다는 것이 확인되었음
    - 만약 ImageNet dataset을 넘어 더 큰 모델, 더 많은 데이터를 학습하면 어떻게 될까?
    - Instagram에서 수집된 10억개의 이미지 (IG-1B)에 대하여 100억개의 parameter를 가진 큰 CNN 모델 학습
    - Uncurated data: 인터넷에서 랜덤하게 수집되고, 어떠한 가공도 되지 않은 wild 이미지
    - CNN임에도 불구하고 out-of-domain의 예측 성능이 향상

  • DINOv2
    - SEER의 uncurated 데이터를 사용하면 결국 학습된 feature의 퀄리티가 떨어짐
    - 여러 curated dataset (ImageNet 등)과 uncurated dataset을 합침
    - 이후 auto-curation을 통해 양질의 curated dataset을 만듦 (LVD-142M)
Vision-Language Pretraining (VLP)
  • Vision-Language Pretraining
    - 이미지로만 학습한 모델은 범용성과 사용성에 한계가 있음
    - Image-text pair를 학습하여 이미지에 대한 이해도를 더욱 높일 수 있음
    - 다양한 Downstream task에 대한 zero-shot transfer가 가능해짐

  • Contrastive Language-Image Pre-training (CLIP)
    - Image-text pair를 contrastive learning
    - 이미지와 텍스트를 각각의 encoder를 사용하여 feature extraction
    - 각각의 embedding 간 cosine similarity를 계산
        - Real pair들은 cosine similarity를 최대화, Incorrect pair는 cosine similarity를 최소화
    - Zero-shot 성능 면에서 기존 모델보다 훨씬 효율적

  • OpenCLIP
    - CLIP은 OpenAI 모델이며, 사용 관련해서 제한이 있음
    - 따라서 오픈 커뮤니티가 CLIP 모델을 재구현한 오픈 소스 프로젝트
    - 다양한 데이터셋과 backbone으로 pretrain된 CLIP 모델을 쉽게 사용할 수 있도록 배포된 open source 프로젝트

  • Bootstrapping Language-Image Pre-training (BLIP)
    - 기존의 연구들은 understanding-based tasks 또는 generation-based tasks 둘 중 하나에 집중
       → Understanding, generation task 모두 수행
    - 또한 image-text pair 데이터가 인터넷에서 수집되기 때문에, 데이터에 노이즈가 있을 가능성이 있음
       → Bootstrapping을 통해 quality 정제

    - Bootstrapping (CapFilt): captioner와 filter를 학습 -> Noisy caption을 가려내고 새로운 caption를 생성
    - Image-text Contrastive (ITC): CLIP과 같이 image-text pair를 학습 
    - Image-text matching (ITM): Image-text pair가 positive인지 negative인지 학습
    - Language Model (LM): 주어진 이미지에 대한 caption을 생성
    - Bootstrapping: ITC와 ITM은 filter 역할을 하고, LM은 captioner 역할

Segment Anything Model (SAM)
  • Segment Anything Model (SAM)
    - DINO, CLIP이 general foundation model 이라면, segmentation specific foundation model 지향
    - 이 연구에서 3가지 구성을 제안 (task, model, data)

  • Prompt
    - 하나의 LLM으로 다양한 task를 수행하면서, LLM에 대한 input을 prompt로 정의
    - 하나의 형태로 고정돼 있지 않고, 학습에 따라서 다양하게 사용될 수 있음
    - 즉, text, image, audio 등 형태가 다양함

  • Prompt in Segmentation
    - Image → segmentation mask
    - Image + something → segmentation mask
    - Points, box, text, mask, anything (grid dot)

  • Prompt Encoder
    - ViT로 pre-trained 된 Masked AutoEncoder (MAE) 사용
    - Sparse prompt
          - Points: Positional encoding with pre-defined embeddings
          - Box: Positional encoding with pre-defined embeddings
          - Text: Text encoder from CLIP

    - Dense prompt
          - Mask: Convolutions

  • Mask Decoder 
    - Transformer의 decoder block을 변형한 형태
    - Token-to-image, image-to-token의 cross-attention : 각각의 encoder를 골고루 학습

  • Data
    - SA-1B dataset (1.1B mask dataset)
    - 데이터 구성은 3단계로 진행
          - Model-assisted manual annotation
               - 다른 segmentation dataset으로 학습된 SAM을 이용하여 대략적인 foreground/background 선택
               - Mrush와 eraser를 사용해서 픽셀 단위의 mask로 정제 
          - Semi-automatic stage with a mix of automatically predicted mask and model-assisted annotation 
               - 이 단계를 통해 다양성을 높이는 것이 목적 
               - SAM의 confident가 낮은 object 위주로 직접 human masking 
          - Fully automatic stage 
               - SAM 스스로 annotation을 정제하고 발전해나가는 단계

'Study > 머신러닝' 카테고리의 다른 글

Generation-생성 모델  (0) 2025.01.09
CV 모델 성능 높이기  (0) 2025.01.09
Segmentation  (0) 2025.01.09
Backbone  (1) 2025.01.06
Object Detection  (3) 2025.01.06