반응형
LIST
Transformer의 탄생 배경자연어 처리 분야에서 순환신경망(RNN)은 오랫동안 메인 모델로 사용되어 왔습니다. 하지만 RNN은 길이가 길어질수록 성능이 저하되는 단점이 있었습니다. 그래서 어텐션(Attention) 메커니즘을 통해 입력과 출력 사이의 의존성을 직접적으로 모델링할 수 있는 트랜스포머가 제안되었습니다. 기존 순차 모델들이 단어 하나하나를 차례로 처리했던 것과 달리, 트랜스포머는 어텐션을 통해 전체 문장을 한번에 참조할 수 있게 되었습니다. 이를 통해 병렬 처리가 가능해져 계산 효율이 크게 향상되었습니다. 또한 문장의 길이에 상관없이 성능이 유지되는 장점도 가지고 있습니다. 이렇게 혁신적인 아이디어를 제시한 ‘Attention is all you need’ 논문은 트랜스포머 모델의 기반이..
Transformer Transformer의 구조는 간략하게 설명해서 input sentence를 넣어서 output sentence를 생성해내는 model이다. Trnasformer는 Encoder와 Decoder로 구성되어있다. 아래의 이미지는 전체적인 Transformer의 구조도이다. 왼쪽 부분을 Encoder, 오른쪽 부분을 Decoder라고한다. 전체적인 동작 과정은 논문 리뷰에 설명했으니 여기서는 코드를 위주로 풀어가려고 한다. Encoder & Decoder Encoder의 목표는 context를 제대로 생성(문장의 정보를 빠뜨리지 않고 압축)하는 것. Decoder는 context를 input으로 받아 Sentence를 output으로 생성해낸다. context만 받는 것이 아니라 out..
Query, Key, Value를 활용해 Attention을 계산해보자. Attention이라고 한다면 어떤 것에 대한 Attention인지 불명확하다. 구체적으로, Query에 대한 Attention이다. 이 점을 꼭 인지하고 넘어가자. 이후부터는 Query, Key, Value를 각각 Q">Q, K">K, V">V로 축약해 부른다. Query의 Attention은 다음과 같은 수식으로 계산된다. Q">Q는 현재 시점의 token을, K">K와 V">V는 Attention을 구하고자 하는 대상 token을 의미했다. 우선은 빠른 이해를 돕기 위해 Q">Q, K">K, V">V가 모두 구해졌다고 가정한다. 위의 예시 문장을 다시 가져와 ‘it’과 ‘animal’ 사이의 Attention을 구한다고 해보자..
Attention is all you need [Paper] : (https://arxiv.org/abs/1706.03762) 기존 자연어처리 분야에서 엄청난 혁신을 불러온 논문 'Attention all you need'에 대해서 리뷰해봅시다 ! 본 리뷰는 논문 리뷰와 후에 pytorch를 사용해 구현해보기까지 준비했습니다. 저는 NLP에 크게 관심이 없지만 attention 기법은 자연어처리뿐만 아니라 비전 분야에서도 SOTA를 달성했습니다. 이전에 포스팅한 vit 그리고 swim-transformer 등 attention과 transformer에 대한 학습은 인공지능을 공부한다면 필수적입니다. 딥러닝 기반의 기계 번역 발전 과정 2021년 기준으로 최신 고성능 모델들은 Transfor..
우선 CNN ViT는 비전 분야의 새로운 패러다임입니다. 기존의 비전 분야에서는 CNN을 사용했습니다. CNN은 필터가 움직이면서 전체의 이미지를 부분적으로 인식하게 되죠? CNN은 한 번 연산시 국소적으로 이미지를 파악할 수 밖에 없습니다. ( 즉, 이미지 전체를 고려할 수 없습니다. ) 따라서 한 번에 이미지를 고려할 수 있도록 'attention'기법을 사용합니다. 초기에는 cnn과 attention 을 합친 모델이 많이 연구되었습니다. 하지만 본 논문에 등장하는 ViT는 합성곱 연산을 사용하지 않고 attention만을 사용하여 모델을 구성합니다. ( 현재 ImageNet 분류 1, 2위 등극. 3~7위는 EffenNet CNN 기반 모델. ) CNN + attention 각 픽셀별로 중요한 정도..