GPT from scratch - (5) FFN (Feed Forward Network)

·2024년 7월 14일

GPT2

목록 보기
5/6

모델 구조

입력층 - 은닉층 - 출력층

  1. Fully Connected Layer
    : 512차원에서 2048차원으로 만들어주기
  2. Activation Function
    : ReLU(x) = max(0,x)
  3. Fully Connected Layer
    : 2048차원에서 512차원으로 만들어주기

왜 Transformer에서 FFN이 필요하나?

  1. Non-Linear Transformation
    수업시간에도 배웠는데, 계속해서 Linear Regression만 하게 되면 복잡한 관계를 학습하지 못하고 계속 선형적인 관계만을 학습한다고 한다.

  2. Feature Enhancement
    feature들을 정제할 수 있따.
    중요한 feature들은 강조하고, 덜 중요한 feature들은 억누른다.

잘 생각해보면, activation을 통과하기 전에는 뭐가 중요한지 잘 모른다. 하지만 activation layer를 통과하는 순간 값이 0쪽으로 가거나 1쪽으로 가는 것을 알 수 있다(softmax나 sigmoid의 경우). 그러니 , 좋은 feature를 선별하는 과정이라고도 볼 수 있다!!!

수학


1 ) W1,B1 : 첫번째 선형변환의 가중치와 bias.
2 ) W2,B2 : 두번째 선형변환의 가중치와 bias

Fully Connected Layer vs Feed Forward Network?

Feed Forward Network

  • 순방향 전파
  • RNN과 대비되는 구조 (RNN은 재귀적인 구조 )

Fully Connnected Layer

  • 모든 인풋 뉴런이 다음 레이어의 모든 뉴런에 연결되어있음.
  • CNN과 대비되는 구조 (CNN은 Pooling과 Stride로 듬성듬성 연결)

Universal Approxmation Theorem
한 개의 히든 레이어를 가진 Neural Network를 이용해서 어떤 함수든 근사시킬 수 있다는 이론...
결국에는, Threshold가 있는 함수를 만들어낸다는 것...!

FFN 특징

  1. 입력 데이터가 네트워크를 통과하면서 각 층에서 변환됩니다.
  2. 마지막 층에서 최종 출력을 생성합니다.
  3. RNN과는 다르게, gradient가 명확하게 정의되어 있다.
  4. Cycle이 없는 네트워크

예시

  1. 인풋
  2. 첫번째 Layer 통과 + activation


3. 두번째 Layer 통과

profile
한발한발 나아갑니당!

0개의 댓글