TIL Day 27 NLP&VM&GM

polaris·2024년 10월 19일

TIL

목록 보기
33/43

Attention

시퀀스 데이터에서 중요한 부분에 더 많은 가중치 할당
정보를 더 효율적으로 처리하는 기법

개념

  1. 기본 구성 요소와 동작 방식

Attention 메커니즘

  • 자연어 처리(NLP), 시계열 데이터, 기계 번역, 오약, 질의 응답

동작 방식

  1. 구성
  • 답(key)-질문(query)-최종요약(value)
  • 입력의 sequence를 분석
  • 중요도를 파악
  • 가중치 부여(일관되게 부여)
  1. Attention 스코어(중요도)
  • query 와 key 간의 유사도를 측정
  • 백터의 내적(dot product) 사용
  • softmax = attention스코어를 확률 분포로 변환 = 가중치의 합을 1로
  • attention = 가중치 x value
  1. sel - Multi-head attention
  • self : 시퀀스 내의 각 요소
  • multi-head : 여러개의 self attentiondmf 병렬로 수행
    • 모델이 다양한 관점에서 데이터를 처리

예시

the cat sat on the mat because it was tired

teacher, "what is 'it'
most of students, "cat"
the others, "mat"

  • 선생님이 질문한 "it" 은 query
  • 대부분의 학생이 대답한 "cat" 은 key
  • 일부 학생이 대답한 "mat"는 value
  1. it, cat, mat의 유사도를 확인
  2. 가중치를 계산
  3. 각 단어의 관계를 확인하여 문장을 더 잘 이해하게 됨

NLP

자연어 처리 모델

워드 임베딩(Word Embedding)

  • 단어를 고정된 크기의 백터(숫자)로 변환
  • 유사한 단어들은 유사한 숫자로 변환
  • Word2Vec, GloVe
  1. Word2Vec
  • CBOW: 주변 단어(context)를 보고 중심 단어(target)를 예측
  • Skip-gram: context를 보고 target 예측
  1. GloVe(Global vectors for Word Representation)
  • 단어-단어 공기 행렬(word-word co-occurrence matrix)
  • 전역적인 통계 정보를 통해 단어 간의 의미적 유사성을 반영

시퀀스 모델링(Sequence Modeling)

  • 순차적인 데이터 처리
  • RNN, LSTM, GRU

Trnasformer & BERT

  1. transformer
  • 순차적인 데이터 병렬 처리
  • 자연어 처리에 뛰어난 성능
  • Encoder-Decoder 구조
    • Encoder: 입력 시퀀스 처리, 인코딩된 표현 생
      • self-attention: 문장 내 관계 학습
      • Feed-Foward Neural Network -> 새로운 백터로 변환
    • Decoder
      • 시작 토큰 입력
      • taget 단어를 고정된 백터로 변환
      • positional encoding 수행
      • masked multi-head attenrion self attention
        • 이전의 단어들로만 예측하도록 마스킹하여 self attention 수헹
      • 인코더-디코더 attention: 디코더가 인코더 연결- 입력 문자 참조
      • FFNN를 통해 추가로 백터 변환
    • 위 과정을 반복하여 오차를 줄여나감
    • 종료 토큰이 예측되면 번역 종료
  1. BERT
    (Bidirectional Encoder Representations from Transformers)
  • Transformer인코더 기반 사전 학습된 모델
  • 양방향으로 문맥을 이해
  • 다양한 자연어 처리 가능
  • 사전학습(Pre-Training)
    • 대규모 텍스트 코퍼스
    • Masked Language Model과 Next Sentence Prediction 작업
  • Fine-tuning
    • 사전 학습된 BERT를 파인 튜닝하여 사용
    • 텍스트의 분류, 질의 응답, 텍스트 생성 등 다양한 자연어 처리 작업

Vision Model

CNN
잔차 연결
ResNet-50, 101, 152 등

ResNet

  • 기울기 소실 등 기존 모델들의 수학적 문제에 대안 제시

개념

  1. ResNet
  • 깊은 신경망 학습
  • Residual Learning ; 잔차 학습 개념
기존 모델 : 깊게 학습 할 수록 input과 가중치가 희미해짐
ResNet: 입력과 출력의 차이인 "잔차"를 학습 , 최초 input은 그대로 계속 전달
  • 모델명 뒤의 숫자는 레이어 개수
  1. 특징
  • 잔차학습으로 기울기 소실, 기울기 폭발 문제 해결
  • 간단한 블록구조: 네트워크를 쉽게 확장

다른 모델

VGG- 크고 단순

  • 작은 3x3 필터 사용 - 깊이 증가
  • 레이어 16, 19
  • 단순하고 규칙적인 구조 - 다양한 변형 모델

Inception - 얕고 복잡

  • 네트워크 내의 네트워크 개념
  • inception 블록 - 깊이와 너비 동시에 증가
    • 다양한 크기의 필터를 동시에 사용
    • 1x1 필터 사용 - 채널 수 감소 - 계산량 감소
    • 다양한하고 효율적인 학습

YOLO(You Only Look Once)

  • 객체 탐지 모델
  • 이미지 속의 객체의 위치와 클래스를 동시에 예측
  • 이미지 전체를 한번에 탐지
    • 단일 신경망(한번에 예측)
    • end to end(객체 탐지-분류가 한번에 이루어짐)
    • 전역 분석
S x S 크기의 그리드 셀(각 그리드 셀 중 한개만 객체 포함)
B 개의 경계 상자 
- 중심 좌표(x,y) 
- 상대 크기(w,h)
- cofindence(상자의 정확도-상자가 객체를 포함할 확률)
C 개의 클래스에 대한 확률 분포 예측

각 그리드 셀 : 각 경계상자 컨피던스 점수 x 클래스 확률 
최종점수 계산 -> 점수가 높은 상자 최종 예측
non-Maximum suppression 통해 여러개의 상자가 하나의 객체 탐지하는 경우 중복 제거
  • 저작권 문제로 버전 사용에 주의가 필요

Image Segmentation

  • 이미지를 픽셀 단위로 분해해서 각 픽셀이 어느 객체에 속하는지 분석

  • Sementic Segmentation : 이미지의 각 픽셀을 클래스 레이블로 구분 ex) 사람인지 구분

  • Instance Segmentation : 클래스 내에서도 개별 객체를 구분 ex) 사람 중에 각각의 사람을 구분

  • FCN(Fully Convolution Network)

    • 모든 레이어가 CNN으로 구성(완전연결레이어 제거)
    • 입력크기에 상관없이 구동
    • 픽셀 단위 분류 수행
    • 기존 CNN의 마지막 레이어을 fc에서 conc 로 바꾸고 업스케일링 = 원본크기 출력
    • 시멘틱 세그멘테이셔에 사용
  • U-Net

    • FCN의 발전 모델
    • 생물학적 세포 이미지 세그멘테이션 목적
    • 인코더(특징추출) - 스킵 연결(인코더의 높은 해상도 특징을 전달) - 디코더(원본 크기로 복원)
    • 소량의 데이터에서 높은 성능 - 의료이미지 처리에 사용
  • Mask R-CNN

    • 객체 검출, 인스턴스 세그멘테이션 동시 수행
    • 다양한 어플리케이션에서 사용

생성형 모델

GAN, VAE

GAN

Generative Adversarial Network

개념

  • 두개의 모델이 서로 경쟁
  • 이미지 생성, 데이터 증강, 스타일 변화 등 분야
  • conditional GAN : 특정 조건을 기반으로 데이터 생성
  • unconditional GAN : 무작위 데이터 생성

구조

  1. 생성자 Generator
  • random input을 받아 새로운 데이터 생성
  1. 판별자 Discriminator
  • 생성자가 생성한 데이터 Sample이 진짜인지 판별
  1. 생성자와 판별자가 경쟁하는 과정에서 성능 향상

단점

  • 경쟁이 적적히 조율되지 않으면 학습이 진행되지 않는 문제 발생
  • 모드 붕괴: 생성자가 데이터를 제한적으로만 생성하는 문제 발생
  • DCGAN, WGAN, CycleGAN 등의 변형 모델에서 개선

VEA

Variational Encoder

개념

  • 잠재공간을 통계적인 기법으로 생성
  • 확률분포를 모델링
  • 데이터의 생성과 분포를 효과적으로 학습
  • 일반적인 지식을 학습

구조

  • 기본 오토인코더와 동일
  • 잠재공간 생성에서 차이
  • VAE는 잠재변수를 샘플링

동작원리

  • 인코더
    • 입력 데이터 x
    • 잠재변수 z에 평균과 분산으로 맵핑
    • 잠재변수는 정규분포에서 샘플링
    • Reparameterization Trick
      • 미분하지 못하는 샘플링 데이터의 파라미터를 조정하는 과정
  • 디코더
    • 잠재변수를 입력 데이터로 받음
    • 두가지 손실 함수로 구성
      • Reconstruction Loss : 원래 데이터와 복원 데이터의 차이를 최소화
      • Kullback-Leibler Divergence : 인코더가 학습한 잠재분포와 정규분포의 차이를 계산
        • 참고 P분포 대신 Q분포를 사용할 경우 정보량 변화를 측정

단점

  • 이해하기 어려움
  • 잠재공간 분포 학습이 어려움

전이 학습

Transfer Learning
Fine-tuning과는 구별

개념

  1. 기본 개념
  • 이전에 학습한 지식을 전이하여 새로운 모델에 적용
  • 일부 레이어를 미세 조정하거나 추가해서 사용
  1. 필요성
  • 데이터 부족: 데이터가 불충분 할 때 기존모델의 지식 활용
  • 학습시간 단축: 처음부터 모델을 학습하는 것보다 빠름
  • 성능 향상: 기존모델은 대규모 데이터를 통해 학습 = 고성능
  1. 원리
  • 특징 추출기 Feature Extractor
    • 초기층 : 사전 학습 모델로 고정
    • 마지막층 : 새로운 데이터에 맞게 재학습
  • 미세 조정 Fine Tuning
    • 전체를 새로운 데이터에 맞게 재학습
  1. 과정
  • 사전 학습된 모델 로드
    • PyTorch에서 제공
    • ResNet,, VGG, Inception
  • 모델 수정
    • 마지막 층을 새로운 문제에 맞게 수정
    • 초기층은 기존 모델로 고정
  • 모델 학습
    • 새로운 데이터에 맞게 학습
    • 특징 추출기 또는 미세조정 방식 중 선택

0개의 댓글