Transformer - 6. 포지션-와이즈 피드 포워드 신경망 (by WikiDocs)

AI Scientist를 목표로!·2022년 11월 6일
0

피드 포워드 신경망(FFNN) 이란?

최초로 고안되 인공 신경망이자 가장 단순한 구조를 가지고 있는 신경망 입니다.

입력층(input layer)에서 데이터가 입력되고
1개 이상의 은닉층(hidden layer)를 거쳐
출력층(output layer)를 통해 결과를 출력하는 구조 이며

input layer에서 hidden layer를 지나 output layer까지 정보를 한 방향 즉 앞으로만 이동하기 때문에 붙여진 이름 입니다.

구성이 단순해 구조를 이해하기 쉽고 응용이 가능하다는 장점이 있지만
단방향 이동의 특성상 시계열 데이터의 시간적 특성을 반영하지 못하는 단점이 있습니다.


포지션-와이즈 피드 포워드 신경망이란?

포지션 와이즈 FFNN은 인코더와 디코더에서 공통적으로 가지고 있는 서브층입니다.

포지션-와이즈 FFNN는 쉽게 말하면 완전 연결 FFNN(Fully-connected FFNN)이라고 해석할 수 있습니다.

식을 그림으로 표현하면 아래와 같습니다.

x값은 Multi-head Attention의 결과로 나온 (seq_len, d_model)의 크기를 가지는 행렬을 의미합니다.

가중치 행렬 W1은 (d_model, d_ff)의 크기를 가지며
가중치 행렬 W2는 (d_ff, d_model)의 크기를 가집니다.
d_ff는 hyper parameter이며 논문에서는 2048의 크기를 가집니다.

Encoder의 입력을 벡터 단위로 봤을 때, 각 벡터들의 멀티 헤드 어텐션 층을 지나 , FFNN을 통과하게 되며 이는 Position-wise FFNN을 의미합니다.

실제로는 위 그림과 같이 행렬로 연산이 되며, Position-wise FFNN을 지난 Encoder의 최종 출력은 Encoder의 입력 크기 였던 (seq_len, d_model)의 크기를 가지게 됩니다.

이처럼 여러개의 Encoder층을 지나는 형식으로 반복되게 됩니다.

profile
딥러닝 지식의 백지에서 깜지까지

0개의 댓글