Image를 patch 단위로 나누어 각 patch를 flatten한다.
앞에서 생성한 를 embedding하기 위해 행렬 와 곱 연산을 하면 의 크기를 가지게 된다.
Embedding 결과에 class token을 추가해서 크기의 행렬을 만들어낸다.
그 후에 Positional Encoding을 위해 크기의 행렬을 더해주면 transformer에 들어갈 input값이 완성된다.
Encoder가 L번 반복되므로, input과 output의 크기가 같도록 유지된다.
그림과 같은 방식으로 layer들이 L번 진행되면
이 최종 output으로 출력된다.
⇒ 는 학습 가능한 parameter이며, 분모의 은 분산이 0이 됨을 방지하기 위함이다.
MLP layer에서는 FC layer 2개 사용
activation function = “GELU”
⇒ 누적 정규분포를 곱한 형태이므로, input 가 다른 input에 비해 얼마나 큰 지에 대한 비율로 값이 조정되기 때문에 확률적 해석이 가능해지는 장점이 있다.