CS/NLP

이론 3-4. 트랜스포머에 적용된 기술

초코chip 2023. 11. 13. 18:38

트랜스포머는셀프 어텐션 말고도 다양한 기법을 통해 성능이 좋음

 

트랜스포머 블록

  • 인코더와 디코더는 본질적인 구조는 비슷
  • 멀티 헤드 어텐션 + 피드포어드 뉴럴 네트워크 + 잔차 연결 및 레이어 정규화

 

피드포워드 뉴럴 네트워크(feedforward neural network)

  • 멀티 헤드 어텐션의 출력은 입력 단어들에 대응하는 벡터 시퀀스
  • 해당 벡터를 입력으로 사용
  • 구조: 입력층(x) + 은닉층(h) + 출력층(y)으로 구성
    • 각 구성들은 뉴런으로 구성됨
    • 입력층의 뉴련 개수 = 출력층의 뉴런 개수 = 은닉층의 뉴런 개수 * 4
      예시) 768차원, 768차원, 2048차원

 

뉴런

  • 수식: ∑ (xi​⋅wi​)+b  ( 이전 뉴런 값(xi) * 가중치(wi) + 바이어스(b) )
    • 가중치와 바이어스는 학습 과정에서 업데이트
  • 활성화 함수: 뉴련의 출력을 일정 범위로 제한하는 역할 f( ∑ (xi​⋅wi​)+b )
    • 피드포워드 뉴럴 네크워크에서 사용하는 활성 함수는 ReLU(rectified linear unit)
    • ReLU: 양수 입력은 그대로 흘려보내지만, 음수 입력은 모두 0으로 치환해 무시 f(x) = max(0, x)
    • 즉, ∑ (xi​⋅wi​)+b 의 결과가 양수면 다음 뉴런에게 해당 값을 그대로 전달, 음수면 0으로 전달
  • 학습 대상: 가중치와 바이어스

 

잔차 연결(residual connection)

  • 정의: 블록이나 레이어 계산을 건너뛰는 경로를 설정
    • 예시) 입력 = x, 이번 계산 대상 블록 = F(x)  -->  잔차 연결 = F(x) + x
  • 목적: 연속되는 레이어들에 대한 경로를 늘리기 위해 사용
    • 아래 그림에서 잔차 연결을 하지 않은 경우(a)는 f1->f2->f3를 연속으로 수행하는 한 경로만 존재
    • 하지만, 잔차 연결을 한다면 총 8가지의 새로운 경로가 생성
    • 딥러닝 모델은 레이어가 많아지면 모델을 업데이트 하기 위한 경로가 길어져 학습이 어려움 -> 잔차 연결 사용

 

 

레이어 정규화(layer normalization)

  • 정의: 미니 배치의 인스턴스(x)마다 평균을 빼고 표준편차로 나누어 정규화를 수행하는 것
    • γ와 β는 학습 과정에서 업데이트 되는 가중치
    • ϵ은 분모가 0이 되는 것을 방지하려고 더해주는 고정값

  • 목적: 학습이 안정되고 속도가 빨라지기에
  • 입력 모양: 배치 크기(N) * 피처의 차원 수(m)

 

 

트랜스포머 모델 학습 기법

드롭 아웃(dropout)

  • 정의: 뉴런의 일부를 확률적으로 0으로 대치하여 계산에서 제외
  • 목적: 과적합 방지를 위해서
  • 적용위치: 입력 임베딩과 최초 블록 사이, 블록과 블록 사이, 마지막 블록과 출력층 사이
    • 보통 드롭아웃의 비율을 10%(p=0.1)으로 설정
    • 학습 과정에서만 적용하고 학습 후 인퍼런스에는 적용x

 

아담 옵티마이저

  • 그레이디언트(gradient): 오차(loss)를 최소화하는 방향으로 진행하는 것
    • 최적화(optimization): 오차를 최소화하는 과정
    • 파라미터(parameter): 모델의 구성요소
  • gradient 방법
    • 순전파(forward propagation): 오차를 구하기 위해 모델 처음부터 끝까지 계산해 보는 과정
    • 역전파(backpropagation): 오차를 최소화하는 방향으로 모델 파라미터를 역순으로 업데이트 진행
      • 미분과 연쇄 법칙(chain rule)을 활용
  • 아담 옵티마이저(Adam optimizer): 모델 파라미터를 업데이트할 때, 방향과 보폭을 결정하는 도구
    • 방향: 현재 위치에서 경사가 급한 쪽으로 내려감
    • 보폭: 안 가본 곳은 성큼 빠르게 걷고, 많이 가본 곳은 보폭을 줄여 세밀하게 탐색