AI 정리

Transformer

dawon-project 2025. 3. 31. 02:15

Transformer란? (sep2sep 모델에서 더욱 발전된 모델)

  • 기존 RNN/LSTM의 한계를 극복한 모델
    • 기존 순환 신경망(RNN과 LSTM)은 장기 의존성(Long - Term Dependency) 문제를 가지고 있음
    • Transformer는 self-Attention과 Positional encoding을 활용하여 병렬 연산이 가능하며, 더 빠르고 정확한 학습이 가능함

  • 대표적인 Transformer 기반 모델
    • BERT ( Bidirectional Encoder Representations from Transformers)
    • GPT (Generative Pre-trained Transformer)
    • ViT(Vision Transformer)

 

 

 

Transformer의 주요 개념

  • Input Embedding 방식
    • 단어, 문장, 문단, 등의 텍스트 데이터를 수치화된 벡터 형태로 변환하는 과정
      -> 단어의 의미를 벡터로 표현
      -> 사람의 언어를 컴퓨터가 알아들을 수 있도록 숫자 형태의 벡터로 표현하는 과정
    • Embedding 하는 방법 3가지
      • Word2Vec
        • 신경망 기반 단어 임베딩 기법
        • CBOW(Continuous Bag of Words)와 Skip-gram 방식이 존재
      • Glove(Global Vectors for Word Representation)
        • 통계 기반 단어 임베딩
        • 전역적인 단어 빈도를 고려하여 단어 의미를 학습
      • FastText
        • Word2Vec의 확장형
        • 단어를 서브워드(Subword) 단위로 분해하여 희귀 단어 학습 성능 개선

  • Positional Encoding
    • Transformer는 순차적 정보를 직접 처리하지 않기 때문에 입력 단어의 순서를 인식 할 수 없다.
    • 이를 보완하기 위해 Positional Encoding을 사용하여 단어의 위치 정보를 추가
    • 적용 방식 : 주로 sin(사인), cos(코사인) 함수 기반의 연산을 통해 위치 정보를 부여
  • Self-Attention
    • 입력 문장에서 각 단어가 서로 얼마나 중요한지를 학습하는 메커니즘
    • 기존 RNN과 달리, 모든 단어가 서로 연관된 정보를 고려할 수 있음
    • Self-Attention 연산 방식
      • Query, Key, Value 생성 : 입력 단어를 Q(질의), K(키), V(값) 벡터로 변환
      • 어텐션 가중치 계산 : Query와 Key 간 유사도를 Softmax로 변환하여 중요도를 결정
      • Weight Sum 계산 : Value 벡터에 어텐션 가중치를 곱하여 최종 결과 생성
    • 장점 
      • 병렬 연산 가능 -> 연산 속도 향상
      • 장기 의존성 문제 해결 -> 멀리 떨어진 단어 간의 관계도 반영 가능
      • 기존 RNN보다 더 정확한 문맥 이해

Transformer 과정 

단어 Embedding -> Positional Encoding -> Masked Multi-heading (Self)-Attention -> Feed Forward의 학습과정 반복

 

 

Vision Transformer(VIT)

이미지 분류를 위해 Transformer 구조를 적용한 모델
-> 기존 CNN 기반 이미지 모델(ResNet, EfficientNet 등)과 다른 방식으로 이미지 분석

 

Vision Transformer의 특징

  • 이미지를 패치(Patch)로 분할하여 Transformer에 입력
  • 기존 CNN보다 적은 데이터로도 높은 성능을 보일 수 있음
  • 자연어 처리 모델과 동일한 Self-Attention 메커니즘 사용

VIT 적용 방안 -> Classification을 수행 (many-to-one 방식)

  • 이미지를 patch로 분할 후 Sequence로 입력 -> 이미지를 분할 후 입력
    -> NLP에서 단어(word)가 입력되는 방식과 동일
  • Supervised Learning 방식으로 학습

 

https://www.youtube.com/watch?v=6s69XY025MU -> Transformer 정리 영상 참고자료