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) 단위로 분해하여 희귀 단어 학습 성능 개선
- Word2Vec
- 단어, 문장, 문단, 등의 텍스트 데이터를 수치화된 벡터 형태로 변환하는 과정
- 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 정리 영상 참고자료
'AI 정리' 카테고리의 다른 글
AI에 들어가기 전 파이썬 개념 실습 (0) | 2025.04.02 |
---|---|
GAN(Generative Adversarial Networks) (0) | 2025.03.31 |
RNN(Recurrent Neural Network : 순환 신경망) (0) | 2025.03.30 |
CNN 발전 과정(5) - one-Stage Detector(SSD, YOLO 계열) -Object Detection (0) | 2025.03.30 |
CNN 발전 과정(4) - two-stage Detector(R-CNN계열) -> object detection (0) | 2025.03.29 |