트랜스포머는셀프 어텐션 말고도 다양한 기법을 통해 성능이 좋음
트랜스포머 블록
- 인코더와 디코더는 본질적인 구조는 비슷
- 멀티 헤드 어텐션 + 피드포어드 뉴럴 네트워크 + 잔차 연결 및 레이어 정규화
피드포워드 뉴럴 네트워크(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): 모델 파라미터를 업데이트할 때, 방향과 보폭을 결정하는 도구
- 방향: 현재 위치에서 경사가 급한 쪽으로 내려감
- 보폭: 안 가본 곳은 성큼 빠르게 걷고, 많이 가본 곳은 보폭을 줄여 세밀하게 탐색
'CS > NLP' 카테고리의 다른 글
이론 3-6. 단어/문장을 벡터로 변환(임베딩) (0) | 2023.11.13 |
---|---|
이론 3-5. BERT와 GPT 비교 (0) | 2023.11.13 |
이론 3-3 셀프 어텐션 동작 원리 (0) | 2023.11.13 |
이론 3-2. 트랜스포머 (0) | 2023.11.11 |
이론 3-1. 사전 학습된 모델 (0) | 2023.11.10 |