수달이네 기술 블로그

13. 트랜스포머(포지셔널 인코딩, 피드포워드 신경망, 잔차연결...) 본문

AI공부/자연어처리

13. 트랜스포머(포지셔널 인코딩, 피드포워드 신경망, 잔차연결...)

슬픈 수달이 2026. 3. 6. 10:54

트랜스포머 논문: https://arxiv.org/abs/1706.03762

Transformer(트랜스포머)

2017년 발표된 자연어 처리(NLP)및 시퀀스 학습 문제에서 뛰어난 성능을 보이는 신경망 아키텍처

  • 어텐션 메커니즘 사용
    • 병렬연산 가능
    • 장기 의존성 문제 해결
  • 셀프 어텐션 사용(self-Attention)
    • 문장 내 단어 간 관계를 동적으로 학습
    • 중요한 단어는 크게 영향
  • 멀티헤드 어텐션(Multi-Head Attention)
    • 여러 개의 헤드로 서로 다른 관점에서 동시에 주의 분배
    • 풍부한 문맥 표현
  • 순차적인 계산 없이 전체 입력 문장을 병렬로 한번에 처리함.
    • 전체 시퀀스를 한 번에 행렬 연산으로 처리
    • 병렬화, 장기 의존성, 학습 속도가 빠름
  • 포지셔널 인코딩(Positional Encoding)
    • 순서없이 병렬처리 하므로 위치 정보를 넣어주는 것.
    • 이로 인해 문장의 순서가 달라지면 구분 가능해진다.
  • 디코더 마스킹(Masking)
    • 미래를 보고 미래를 예측할 수 있기 때문에 미래를 보지 못하게 결과를 가리는 캐주얼 마스크를 적용
    • 동시에 패딩 토큰도 무시하는 패딩 마스크도 사용(불필요한 학습, 교란 방지)
  • 대규모 사전학습, 강한 성능
    • 대용량 말뭉치로 사전학습(pretraining)한 후 작업별로 미세조정(Fine-tuning)한다.
    • Fine-tuning으로 일반화 성능 향상
    • 성능이 안정적임.
  • BERT, GPT, T5등

포지셔널 인코딩(Positional Encoding)

트랜스포머가 문장을 병렬로 처리할 때 순서, 거리를 인식하도록 각 토큰 임베딩에 위치 신호 벡터를 추가한다.

  • 사인-코사인 기반 정적 인코딩
    • 다양한 주파수의 파형을 조합해 위치마다 고유한 패턴 부여
    • 패턴 간 유사도로 토큰사이의 상대적 거리, 순서를 추론 가능
    • 위치 신호를 토큰 임베딩의 요소별로 더해줌.
    • 별도의 학습 파라미터가 없어 재현성이 높고, 과적합 위험이 낮음.
    • 긴 시퀀스에도 자연스럽게 일반화된다.

예시(사인-코사인 기반 정적 인코딩)

  • Dog bites man. / Man bites dog.
    • 위 두 문장을 어텐션 모델에 넣을 경우 단어의 순서 정보가 사라진다.
    • 따라서 단어의 위치를 나타내는 새로운 행렬을 임베딩 행렬과 같은 크기로 만든다.
  • 즉 위처럼 512차원의 임베딩 벡터라면 512개의 사인 코사인 곡선이 하나씩 대응된다.

$$ PE_{(pos,2i)}=\sin \left( \frac{pos}{10000^{2i/d_{model}}}\right) ,\quad PE_{(pos,2i+1)}=\cos \left( \frac{pos}{10000^{2i/d_{model}}}\right) $$

  • 위의 공식은 차원에 따른 사인 코사인 그래프와 단어의 위치 공식이다.
  • 고유하게 위치가 표현된다.

정규화(Normalization)

트랜스포머에서 정규화는 안정적인 학습과 빠른 수렴에 중요한 역할을 한다.

  • 값들이 한쪽으로 치우쳐 있으면 학습이 잘 안 됨.

레이어 정규화(Layer Normalization)

한 개의 입력 샘플 내부의 모든 뉴런 값에 대해 평균, 분산을 계산해 정규화

  • 각 배치의 크기와 무관하게 특징 차원별로 정규화하므로 시퀀스의 길이에 영향을 받지 않음.
  • 각 층의 출력 분포를 일정하게 유지해 기울기 소실, 폭발을 방지하고 학습 속도를 높임.
  • 따라서 트랜스포머에 사용

배치 정규화(Batch Normalization)

미니 배치 단위로 평균과 분산을 계산해 정규화

  • CNN 같은 이미지 처리에서 효과적, 그러나 시퀀스의 길이가 가변적이고 순서에 민감하다면 덜 적합함.

감마, 베타

모든 데이터가 정규화되면 입력 값이 비슷해져 성능이 제한되는 문제
이를 해결하기 위해 학습 가능한 파라미터인 감마(γ), 베타(β)를 적용

  • 감마: 정규화된 값의 스케일 조정
  • 베타: 정규화된 값을 좌, 우로 이동

피드 포워드 신경망과 잔차연결

피드 포워드 신경망(Feed-Forward Neural Network, FFN)

어텐션 레이어 뒤에 위치해 각 단어 벡터를 개별적으로 비선형 변환.(활성화 함수와 비슷)

  • 두개의 선형 계층과 ReLU, GELU등의 활성화 함수를 사용한다.
  • 차원을 확장한 후 다시 원래 차원으로 축소한다.(512 → 2048 → 512)
  • 어텐션이 문맥적 관계를 학습하는데 집중한다면,
  • 피드포워드 신경망은 단어별 표현을 더 복잡하게 가공해 모델의 비선형성과 표현력을 높인다.
    • 문맥 정보 강화, 단어 임베딩을 더 풍부하게 만든다.

잔차 연결(Residual Connection)

입력을 그대로 출력에 더해주는 것

  • 즉, 멀티헤드 어텐션을 하고 나온 임베딩 벡터에 원래 입력값을 더해준다.
  • 이로 인해 기울기 소실 문제가 완화되고 안정된다.

마스크드 어텐션(Masked Attention)

self-attention 계산 과정에서 특정 토큰이 아예 선택되지 않도록 attention score단계에서 차단하는 것.

  • 문장의 길이를 맞추기 위한 padding이나 생성되지 않은 미래 토큰에 -np.inf(-∞)을 더해준다.
  • 이로 인해 softmax연산 시 가중치가 0으로 변한다.
  • 인코더에서 padding mask로 불필요한 패딩 토큰을 배제하고,
  • 디코더에서 casual mask로 문맥 정보가 섞이는 단계를 원천적으로 차단하여 올바른 문맥 순서정보를 학습한다.