티스토리 뷰
Intro
* RNN을 사용하지 않고 Attention만으로 Seq2Seq 구조를 구현한 모델
* 기존 모델들은 RCC or CNN에 기초, encoder에서 입력 seq을 vector로 압축할 때 일부 정보가 손실되기 때문에 보정을 위해 Attention을 사용하는 형태였다.
* Attention만으로 encoder&decoder를 만들어보자!
* 논문에 따르면, 이 모델은 병렬처리가 가능하고, 학습 시간이 훨씬 덜 소요된다
Attention Machanism
Sequence-to-Sequence

Recurrent model은 Sequence순으로 데이터가 입력되는데, 이전 데이터의 hidden state 가 다음 데이터의 hidden state 를 구할 때 사용된다. 즉, 어떠한 시점 t에서 구한 hidden state 는 그 전 sequence들()의 정보를 함축하고 있다고 볼 수 있다 1,2,…,t−1. 따라서 위 이미지를 예로 들어 설명하면, tomorrow를 입력으로 받아 출력되는 encoder의 마지막 hidden state는 그 이전 단어들(are, you, free)에 대한 정보까지, 즉 문장의 모든 단어들에 대한 정보를 함축하고 있는 것이다
긴 sequence 데이터를 처리해야할 때, 제한된 크기의 vector로 모든 정보를 담아내야하기 때문에 정보의 손실이 커지고 이에 따라 성능의 병목현상이 일어난다.
Model Architecture

* Encoder : N = 6 Layers / sub -layer 1. multi-head- 2. feed-forward
=> 모든 차원을 512 임베딩
* Decoder : N = 6 Layers / sub-layer 3. Encoder스택의 출력을 통해 multi-head-attention수행

Scaled Dot-Product Attention
- input: Query(Q), Key(K), Value(V) / Query는 물어보는 주체, Key는 반대로 Query에 의해 물어봄을 당하는 주체, Values는 데이터의 값들을 의미

- softmax 함수는 연관성에 대해 확률분포형태로 만들어주는 것이다.
Multi-Head Attention
- 하나의 attention func을 사용하는 것보다, 중간에 값들을 매핑해줘서 각 다른 값들을 입력으로 하는 여러개의 attention func을 만드는 것이 더 효율적이다. 나중에 func들의 출력은 concat되고 다시 linear func을 통해 매핑된다.
- CNN이 여러개의 필터를 통해서 conv output을 구하는 것과 비슷한 효과를 낸다.
Positional Encoding
- sequence 정보를 데이터에 추가해주기 위해 사용하는 기법- 논문에서는 sine과 cosine 함수를 사용한다.

왜 Self-Attention이어야 할까?

1. Sequence length n < Representation dimensionality d 이어야만 complexity가 RNN보다 더 작아지게 됨.
보통 n<d인 경우가 대부분
2. RNN은 input을 순차적으로 받아서 총 n번의 RNN cell을 거치게 되고, self-attention은 input의 모든 position 값을 연결하여 한번에 처리 가능 => parallel system 사용
3. long-range dependencies

input 과 output seq 사이 조합 간 paths가 짧을 수록 long-range dependencies를 더 잘 학습할 수 있다고 한다.
* 결국 transformer는 token을 하나씩 보면서 학습하는 것이 아니라, 전체 문장을 한번에 참조하여 학습할 수 있게한다. 그리고 sequence정보는 따로 positional encoding으로 준다.
- Total
- Today
- Yesterday
- 스테이블디퓨전
- 코랩에러
- 논문리뷰
- 파이썬
- SQL
- dreambooth
- 코테준비
- 컴퓨터비전
- 프로그래머스
- 논문읽기
- 드림부스
- AI컨퍼런스
- 테크서밋
- AIRUSH2023
- gs논문
- gan
- Paper review
- AIRUSH
- C언어
- SKTECHSUMMIT
- 3d-gs
- 논문
- Aimers
- MYSQL
- lgaimers
- Gaussian Splatting
- 2d-gs
- 코딩공부
- CLOVAX
- 파이썬코테
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |