CHAPTER 5. 자기회귀 모델

2025. 2. 16. 21:34읽어보기, 교재/만들면서 배우는 생성 AI

5.2 LSTM 네트워크 소개

RNN

  • RNN이란?
    1. 순차 데이터를 처리하는 순환 층(셀).
    2. 특정 타임 스텝에서 셀의 출력은 다음 타임 스텝 입력의 일부분.
    3. 매우 간단하며 tanh 함수 하나로 구성(-1 ~ 1 스케일).
    4. 그레디언트 소실 일어나 긴 시퀀스에는 부적합.

=> LSTM이 문제 해결.

LSTM

5.2.2 텍스트 데이터 다루기

  • 이미지와 텍스트 데이터의 차이점.
    1. 텍스트는 개별적인 데이터 조각이지만, 이미지는 픽셀의 연속적인 색상위의 한 점. 개별 픽셀의 그레디언트를 계산하면 역전파가 쉽지만, 텍스트는 어려움.
    2. 텍스트는 시간차원이 있고 공간차원이 없지만 이미지는 반대. 단어 사이에는 의존성이 있지만 이미지는 모든 픽셀 동시 처리 가능.
    3. 텍스트는 개별 단위 변화에 민감하나 이미지는 아님. 픽셀 하나가 달라져도 이미지는 큰 변화가 없지만 문장은 단어 하나가 달라지면 큰 차이 발생.
    4. 텍스트는 문법 구조•의미론족 규칙이 있지만 이미지는 없음.

5.2.3 토큰화

  • LSTM 학습을 위한 데이터 전처리 첫 단계는 토큰화.
  • 단어 토큰
    • 희소 단어는 별도 토큰 할당보다 <unknown token> 사용해서 가중치 줄이기.
    • 시제를 기본형으로 단순화해 하나로 토큰화.
    • 구두점을 모두 제거.
    • 훈련 어휘 사전에 없는 단어는 모델이 예측 불가능.
  • 문자 토큰
    • 훈련 어휘 사전에 없는 새로운 단어 만들 수 있음.
    • 어휘 사전 크기 작아 훈련 속도에 유리.

5.2.6 임베딩 층

  • 임베딩 층은 각 정수 토큰을 embedding_size 길이의 벡터로 변환하는 룩업 테이블.

=> 룩업 테이블은 가중치.

  • 입력 토큰을 원핫 인코딩 할수도 있지만 임베딩 층이 더 선호.

5.2.7 LSTM 층

  • 순환층은 셀로 구성됨.
  • 은닉 상태 h는 한 번에 한 타임 스텝씩 시퀀스 x의 각 원소를 셀로 전달해 업데이트.
  • 은닉 상태는 셀 안에 있는 유닉의 개수와 길이가 동일한 벡터. => 현재 셀의 지식.

5.2.8 LSTM 셀

  • h_t의 길이는 LSTM에 있는 유닛의 개수와 동일. -> 시퀀스 길이와 아무 상관 없음.

* LSTM에는 하나의 셀이 있고 셀은 여러 개의 유닛을 포함.

  • 셀은 하나의 셀 상태를 관리.
  • 셀 상태는 은닉 상태와 길이가 같음.

LSTM 셀의 구조

  1. 삭제 게이트 : 시그모이드 활성화 함수 사용해 이전 셀 상태를 얼마나 유지할지 결정.
  2. 이 연결된 벡터는 입력 게이트로 전달되며 시그모이드 활성화 함수 사용해 얼만 새로운 정보 추가할지 결정.
  3. 이 연결된 벡터는 tanh 활성화 함수를 사용해 새로운 정보 저장.
  4. 업데이트된 셀 상태 C_t를 만드는 과정.
  5. 시그모이드 활성화 함수 사용해 출력 게이트로 전달. 업데이트 된 셀 상태를 얼마나 보낼지 결정.
  6. 업데이트 된 셀 상태를 tanh 활성화 함수 사용해 은닉 상태 h_t 생성.

5.2.10 LSTM 분석

  • temperture 매개변수는 샘플링 과정을 얼마나 경정적으로 할 지 결정(0 ~ 1).
  • LSTM 네트워크는 생성하는 단어의 의미를 알지는 못함.

5.3 RNN 확장

5.3.1 적층 순환 네트워크

  • LSTM 층을 쌓아 더 깊은 특성 학습.

5.3.2 GRU 층

  • LSTM과의 차이점
    1. 삭제 게이트와 입력 게이트가 리셋 게이트와 업데이트 게이트로 바뀜.
    2. 셀 상태와 출력 게이트가 없고 은닉 상태만 출력.

  1. 시그모이드 활성화 함수 사용해 이전 은닉 상태를 얼마나 제공할지 결정.
  2. tanh 활성화 함수를 사용해 셀의 새로운 생각을 저장하는 벡터로 사용.
  3. 시그모이드 활성화 함수를 사용해 이전 타임 스텝의 은닉 상태를 얼마나 섞일지 결정.
  4. 은닉 상태 h_t를 만드는 과정. 즉, 셀의 출력.

5.3.3 양방향 셀

  • Bidirectional 층은 두개의 은닉 상태를 사용.(전진 방향, 후진 방향)

5.4 PixelCNN

  • 자기 회귀 방식으로 이미지 생성.
  • 마스크드 합성곱 층과 잔차 블록이라는 개념이 중요.

5.4.1 마스크드 합성곱 층

  • 합성곱 층 : 일련의 필터 적용해 이미지 특성 추출.
  • 특정 픽셀에서 이 층의 출력은 픽셀을 중심으로 한 작은 정사각형에 대해 필터 가중치와 이전 층의 값을 곱하여 더한것.

=> 에지와 질감을 감지 할 수 있고 고수준 특성 감지.

  • 합성곱 층은 특성 추출에 유용하나 순서가 지정되지 않아 자기회귀에 부적합.
  • 자기회귀에 사용하려면 픽셀 순서를 지정하고 필터가 해당 픽셀 앞의 픽셀만 보도록. => 한번에 한 픽셀씩 이미지 생성.
  • 현재 픽셀 뒤 모든 픽셀의 값이 0.

왼쪽 : 합성곱 필터 마스크, 오른쪽 : 중심 픽셀 값의 분포를 예측하기 위해 일련의 픽셀에 적용된 마스크.

  • PixelCNN의 두 종류의 마스크

A. 중앙 픽셀의 값이 마스킹.
B. 중앙 픽셀의 값이 마스킹 되지 않음.
* 초기 마스크드 합성곱 층(입력 이미지에 직접 적용)에서는 A 타입, 후속층에서는 B 타입 사용.

추가 이해를 위한 이미지

5.4.2 잔차 블록

  • 잔차 블록 : 입력이 중간 층을 거치지 않고 출력과 더해지는 블록.(스킵 연결)
  • 신경망이 중간 층을 통해 입력과 동일해지는 매핑을 찾을때 유리(가중치가 0이 될 때).

5.4.3 PixelCNN 훈련

  • PixelCNN 신경망은 AE처럼 정확한 픽셀 값을 예측하는 입력 재구성.
  • 차이점은 MaskedConv2D 층을 사용해 앞 픽셀 정보가 현재 픽셀의 예측에 영향을 끼치지 못하도록 제한.
  • 모든 픽셀 출력 값을 독립적으로 사용해 학습속도 매우 느림.

5.4.5 혼합 분포

  • 학습 속도 개선 위해 신경망 출력을 256개의 이산 픽셀 값에 대한 소프트맥스 출력 대신 혼합 분포 사용.
  • 혼합 분포
  • 두 개 이상의 다른 확률 분포가 혼합된 것.
  • 혼합에 포함된 각 분포를 선택할 확률을 나타내는 범주형 분포도 필요.
  • 샘플인 시 범주형 분포에서 특정 하위 분포를 선택해 그 분포네서 샘플링.

=> 상대적으로 작은 파라미터 사용 가능.

세 개의 정규 분포로 이루어진 혼합 분포에 대한 범주형 분포는 0.5, 0.3, 0.2

 

728x90