- 2020년 8월 31일 오전 9:02
- 조회수: 9481
INFORMATION
- 2020년 9월 4일
- 오후 1시 ~
- 온라인 비디오 시청 (YouTube)
TOPIC
On-Line Video
OVERVIEW
발표자 후기
이번 연구실 세미나는 강화학습이 아닌 다른 주제로 발표한 시간이었다. 이번 발표 주제는 Transformer에 대한 주제로 진행했다. Transformer 주제로 잡았던 이유는 개인 연구에서 적용하고 있었고 이를 연구원들에게 공유하고 싶었다. 특히, NLP 뿐만 아니라 이미지를 어떻게 처리하는지 응용 사례도 소개하여 연구의 시각을 조금이나마 넓히는데 도움이 되고 싶었다. 이번 세미나는 지난주와 동일하게 온라인으로 진행했다. 개인적으로 오프라인보다 녹화가 더 긴장되었다. 온라인으로 진행하면서 가장 아쉬웠던 점은 연구원들과의 소통이 없었다는 것이다. 빠른 시일 내에 코로나가 종식되어 일상 생활이 되돌아 왔으면 좋겠다. 다음 연구실 세미나 차례에는 다시 강화학습 내용으로 돌아올 것이다.
청취자 후기
Transformer에 대한 개념과 응용에 대해 배울 수 있는 유익한 강의었습니다. Transformer는
NLP분야에서 Sequential데이터 처리시 병렬처리의 어려움을 해결하기 위해 고안된 구조이며, 계산복잡도와 연산시간을 줄이는 효과가 있음을 알 수 있었습니다. 또한, NLP 뿐 아니라 DETR, Image-GPT 등 Vision 영역에서도 일정 이상의 성능을 보이고 있어 금번 OCR연구과제 수행시에도 적용할 수 있는 아이디어가 있을지 검토해 보면 좋을 것 같습니다. 개인적으로는 Query, Key, Value vector들이 어떻게 생성되고 계산되는지 등 Transformer에 대해 자세히 학습하면 많은 도움이 될 것 같다는 생각이 듭니다. 소중한 시간, 좋은 세미나 진행해 주셔서 감사합니다.
오늘은 영재가 Transformer와 그 어플리케이션인 "End to End Object Detection with Transformer"와 "Image GPT"라는것에 대해서 발표해주었다. 자연어 처리 예시를 들어 순환 신경망에서 Seq2Seq 그리고 Attention 그다음으로 오늘의 메인인 Transformer에 대해서 설명해주었다. Gate 들을 사용하여 Gradient vanishing문제는 해결되었으나 방대한 seqeunce를 처리하기 위해 seq2seq가 나왔으나 제한된 context vector 안에 모든 정보를 담을수 없는 문제가 있고 압축률이 커서 정보의 손실 문제가 있었다. 그 이후 어텐션 메커니즘이 적용되어 똑같은 encoder와 decoder 구조에서 attention을 넣음으로써 입력 시퀀스 데이터 길이가 길 경우에도 문장이 길어도 아주 이전 시점의 정보를 집중 참조하도록 함으로써 문제를 해결한듯하였으나, 여전히 RNN계열의 문제와 동일하게 seq2seq나 seq2seq with attention이 적용된 버젼또한 순차적으로 처리하기 때문에 병렬처리가 불가능하여 비효율적이라는 것이고 시퀀스데이터를 다루는데 답답함이 있었다. 하지만 구글에서 2017년도에 나온 Transformer라는게 나왔다. 이는 엄청난 것이었다. 셀프 어텐션을 사용하여 병렬처리가 되고 이를 여러개 사용하여 다양한 의미가 내포될 수 있는 문맥도 찾아내기 위해 여러개를 쓸수 있는 Multi Head Attention을 사용한 NLP에서 많이 사용된는 모델이 되었다. 그러나 여기에서 머무르지 않고 이를 기반하여 OpenAI 에서는 GPT 모델들을 만들어 놀라운 퍼포먼스를 자랑하고 있다. 오늘 영재가 소개해준건 NLP뿐만 아니라 전혀 다른 도메인인 Object Detection과 이미지 생성 2가지에 적용된 케이스였다. End to End Object Detection with Transformer는 CNN 백본이용하고 encoder와 decoder를 태우고 prediction heads를 이용하여 바운딩박스나 no object를 예측하는 end-to-end 모델인데 마지막에 prediction heads의 FF를 공유하여 정보를 공유하고 이를 이용하여 이 prediction heads가 클래스와 그리고 바운딩 박스 영역정보를 Bipartite Matching Loss라는 걸로 최적의 순열 조합 매칭한 후에 Hungarian Loss를 이용하여 loss를 scale-invariant하게 계산되는 부분이 신기했다. Image-GPT는 또한 마지막에 이미지가 생성되는 부분에서 GAN의 잘된 예시만큼이나 잘되는걸 보고 놀라웠다. 쉽게 Transformer를 전달하고 2020년 9월 기준의 따끈한 논문 2편을 소개해준 영재에게 좋은 연구 결과 내라고 응원과 박수를 보낸다.
이번 세미나는 영재형이 ‘Basics and Applications for Transformer’라는 주제를 가지고 진행하였다. 자연어 처리는 일상 생활에서 사용하는 언어의 의미를 분석하여 컴퓨터가 처리할 수 있도록 한다. Transformer외에도 다양한 자연어 처리 딥러닝 모델이 존재한다. RNN은 시퀀스 데이터를 처리하기 위한 모델이며 one-to-one, many-to-many 등 4가지의 기본 구조가 존재한다. 하지만 RNN은 문장의 길이가 길어질수록 처음 등장했던 단어에 대한 정보가 희미해지거나 잊혀질 수 있다. 이러한 문제점을 보완하기 위해서 LSTM, GRU등이 나오게 되었다. 이러한 모델은 게이트 메커니즘을 통해 gradient vanishing문제를 방지 할 수 있다. 또한 방대한 data에 대한 문제를 해결하기 위해서 나온 Sequence-to-Sequence가 존재한다. Seq2Seq은 입력 데이터의 정보를 압축하는 역할을 하는 encoder와 인코더의 압축 정보와 출력 데이터를 입력 받아 문장을 생성하는 decoder로 구성되어 있다. 하지만 여기서도 의문점은 여전히 존재하게 되는데 context vector가 정말 전체 입력 시퀀스 데이터로만 효과적으로 표현 될 수 있을까라는 점이다. 여기서도 여전히 정보의 손실이 존재하게 되고 이를 해결하기 위해서 attention mechanism을 적용하게 된다. Attention mechanism을 적용함으로써 길이가 긴 입력데이터를 기억하는데 기여하게 된다. 하지만 이러한 attention mechanism에도 문제점이 존재하는데 입력 문장을 순차적으로 처리하기 때문에 병렬처리가 불가능하게 됨으로 연산 시간이 늘어나게 된다. 이러한 문제를 해결하기 위해 나온 논문이 Attention Is All You Need(Transformer)이다. Transformer는 각각 6개의 인코더와 디코더로 구성되어 있으며 각각의 인코더와 디코더도 같은 구조로 구성되어 있다. Transformer의 입력 시퀀스에 positional encoding이 들어가게 되어 문장 순서를 반영할 수 있다는 장점이 있다. 이때까지 Transformer가 자연어 처리문제에만 사용된다고 생각했는데 이미지 분야에까지 적용된다. Transformer에 대해 아주 자세한 피피티와 이해하기 쉽게 발표를 진행해준 영재형에게 감사하다는 말을 전하고 싶다.
오늘 세미나는 "Basics and Applications for Transformer"라는 주제로 진행되었습니다. Transformer는 "Attention is all you need"라는 논문에서 제안된 모델로 문장 번역을 위한 seq2seq 모델입니다. 기존의 seq2seq 모델은 RNN에 attention mechanism을 적용한 모델을 사용했는데 RNN 모델은 문장을 입력순서에 따라서 계산해야 하기 때문에 병렬처리를 할 수 없어 계산 시간이 오래 걸린다는 단점이 있었습니다. 이런 단점을 극복하고자 Transformer에서는 self-attention을 활용하여 문장을 입력순서에 상관없이 한 번에 처리할 수 있는 모델을 제안합니다. 기존의 RNN 모델과 다르게 병렬처리를 가능하게 만들어 계산의 효율성을 높이게 됩니다. Transformer의 또 다른 특징은 문장 내에서 단어들 사이의 다양한 상관관계를 잡아내기 위해 8개의 self-attention을 활용하며 이를 multi-head self attention이라고 이야기합니다. 또한 문장 내에서 단어의 위치 정보를 활용하기 위해 positional encoding을 사용합니다. 현재 Transformer는 RNN을 대체하는 모델로 자리 잡게 되었으며 NLP에서 좋은 성능을 내는 BERT나 GPT의 기본이 되는 모델입니다. 최근에는 Transformer를 NLP뿐 아니라 이미지를 분석할 때도 사용하고자 하는 연구들이 진행되고 있으며 이번 세미나에서는 객체탐지와 이미지 생성 모델에 적용된 사례가 소개되었습니다. 기존의 객체 탐지 모델은 이미지 내에서 객체가 존재할 것으로 예상되는 영역을 추출하는 등 전처리 기법들이 필요했습니다. Detection Transformer(DETR)에서는 별도의 전처리 기법 없이 end-to-end의 객체탐지 모델을 제안했습니다. DETR는 기존의 객체 탐지 모형과 비슷한 성능을 냈지만, Transformer 구조를 활용하기 때문에 기존 모형에 비행 학습 시간이 오래 걸리고 작은 물체들에 대해 잘 탐지하지 못한다는 단점을 가지고 있습니다. 하지만 end-to-end의 객체탐지 모형을 제안했다는 데에 있어서 의미 있는 연구라고 할 수 있습니다. 다음으로 소개된 Image-GPT는 NLP 분야에서 좋은 성능을 보인 GPT를 이미지 분야에 적용한 사전학습 모델입니다. Image-GPT 역시 기존의 이미지 생성모델 혹은 자기 지도 학습 모델들과의 성능을 비교해봤을 때 비슷한 성능을 낼 수 있지만, 계산량이 많다는 한계점을 가지고 있습니다. 이번 세미나를 통해 Transformer에 대해 한 번 더 정리할 수 있었으며 이미지 분야에 활용되는 연구들도 접할 수 있어서 좋은 시간이었습니다. 세미나를 열심히 준비해준 영재형게 감사의 뜻을 표하며 세미나 후기 마무리하겠습니다.
금일 세미나는 영재형이 “Basic and Applications for Transformer”라는 주제로 진행해주었다. Transformer의 설명에 앞서 자연어 처리 관련 기본 개념에 대하여 설명해주었다. 순환 신경망의 기본적인 구조와 예시부터 long term dependency, 그레디언트 소멸과 같은 문제점을 갖는 RNN을 극복한 LSTM, GRU에 대한 설명을 시작으로 해서 번역 태스크에서 가장 기본적인 모델인 Seq2Seq모델의 기본적인 구조와 Attention Mechanism에 대한 설명을 해주었다. Introduce에서 설명해준 개념들은 세미나의 본 주제인 Transformer의 이해를 돕기 위한 개념들이었다. 기존의 Attention mechanism의 문제점인 계산 복잡도와 많은 연산 시간을 극복하고자 나온 Self-Attention mechanism이 Transformer의 핵심 아이디어이며 Self-Attention mechanism을 통해 입력 데이터를 순차적으로 병렬 처리하여 입력 데이터를 잘 설명할 수 있는 정보를 추출해서 기존 Attention mechanism의 문제를 해결할 수 있는 것이다. Self-Attention 개념 뿐만 아니라 Encoder-Decoder, Multi-Head Attention 모듈에 대한 구체적인 설명을 해주었는데 각 개념들마다 시각적인 자료가 잘 준비되어 있어 이해하는데 많은 도움이 되었다. 그리고 Introduce에서 설명한 예시를 지속적으로 언급하며 Transformer 내에서 어떻게 학습되는지 설명해줘서 각 모듈마다 데이터가 어떻게 입력되고 출력되는지 원리를 이해하는데도 많은 도움이 될 수 있었다. 세미나의 제목만 보고 Transformer의 Application은 당연히 자연어 처리 분야에서 어떻게 적용되고 있는지에 대한 설명인 줄 알았지만 세미나 후반부 Applications 설명에서는 최근 Facebook AI에서 발표한 논문 중에 “End-to-End Object Detection with Transformers”에 대한 설명이 있었다. Transformer의 Encoder-Decoder 장점을 살려 모든 객체들에 대해서 한번에 검출할 수 있는 모델을 제안하였고, 그에 따른 실험 결과를 보여주었다. 비록 학습시간이 오래 걸리고, SOTA 성능은 검증하지 못했지만 자연어 처리 태스크를 수행하기 위해 개발된 모델이 Object Detection 태스크에 대해서 적용할 수 있다는 가능성과 동시에 이제 다양한 연구가 진행됨에 따라 각 분야의 장벽이 많이 허물어지고 있다는 것을 느꼈다.
이번 세미나 주제는 Transformer에 대한 기본 개념과 응용 사례를 알아보는 시간이었다. Transformer는 Attention mechanism을 기반으로 만들어진 모델인데, RNN부터 시작하여 LSTM/GRU, Sequence-to-Sequence, Attention mechanism이 어떻게 기존 모델의 한계점을 극복하며 진행되어 왔는지 잘 설명해줘서 좋았다. Transformer는 입력 Sequence data를 병렬로 처리하여 정보를 압축함으로서 계산 복잡도와 연산 시간을 줄일 수 있게 된 모델이다. 기본적인 네트워크 구조는 6개의 Encoder와 6개의 Decoder layer로 이루어져있으며, 각 Encoder는 Self-Attention→Feed Forward의 구조로, Decoder는 Self-Attention→Encoder-Decoder Attention→Feed Forward의 구조로 이루어져있다. Encoder에서의 Self-Attention 연산 예시를 들어주었는데, Encoder의 각 단어마다 만들어진 Query, Key, Value 벡터로 어떻게 출력값을 만드는지 예시를 통해 이해할 수 있었다. Transformer는 자연어처리 분야에서 개발되었지만, DETR, Image-GPT 등 이미지 처리 분야에도 적용되어 좋은 성능을 보일 수 있음을 알게 되었다. 2020년에 발표된 최신 논문 내용을 바탕으로 Transformer가 적용된 사례를 소개해줘서 좋았고, 향후 본격적인 연구를 하게 될때 꼭 참조해볼만한 모델인 것 같다. 어려운 내용 준비하느라 고생이 많았을 영재 연구원에게 감사의 말을 전한다.
금일 세미나 주제는 Basics and Applications for Transformer으로 자연어 처리 연구 분야에 큰 기여를 한 '트랜스포머'의 기초와 응용을 다루었다. 자연어 처리 연구 분야의 뜻과 대중적으로 사용되는 모델(순환신경망)들이 소개되었고, RNN과 LSTM, Seq2Seq과 Attention Seq2seq 순서로 흥미로운 세미나가 시작되었다. 영재형은 '모델이 문장을 이해하는데 있어 시퀀스(문장 길이)가 길어질 때는 어떻게 해야할까?'라는 중요한 물음에 답해주는 방식으로 세미나를 진행해주셨고, 자연어 처리 분야에서 어떠한 맥락을 가지고 트랜스포머 모델을 개발하게 되었는지 깔끔하게 이해할 수 있었다!
이렇게 흥미로운 Introduction를 지나 본격적으로 트랜스포머 모델에 대한 소개가 진행되었다.
트랜스포머 모델은 Attention 메카니즘을 극대화하고 병렬 처리가 가능하게끔 탄생한 모델이다. 전체적인 구조는 인코딩 블락과 디코딩 블락으로 구성되어 있는데, 인코딩 블락은 Self-Attention layer와 feed forward network로 입력받은 문장을 이해하는 역할을 수행하며, 디코딩 블락은 Self-Attention layer, Masked-Self-Attention layer, feed forward network로 인코딩 블락이 처리한 여러 정보들 중 연관성 있는 정보를 파악한 후, 이를 활용해 최종 태스크를 수행한다. 각 블락들이 수행하는 역할과 이를 위한 모델 구조를 세미나를 통해 잘 이해할 수 있었고, 특히나 헷갈렸던 Key, Query, Value 개념을 Matrix 연산으로 설명한 발표자료 덕분에 효과적으로 이해할 수 있었다. 모델을 안정적으로 학습하게 하는 Residual connection, Layer normalization을 비롯해, 토큰들간 순서 정보들을 주입하기 위한 Positional Encoding까지 다룬 세미나를 통해 트랜스포머의 기초를 확실하게 다잡을 수 있었다. 마지막으로 트랜스포머 모델을 활용한 End-to-End Object detection과 Image-GPT가 소개되었고 트랜스포머 모델이 NLP 분야 이외에 다양한 분야에 적용할 수 있다는 좋은 메세지를 던지며 세미나가 마무리 되었다.
기초부터 활용 사례까지 이해하기 쉽게 잘 정리된 피피티 장표들을 보며, 나도 이런 발표 준비를 해야겠다고 느꼈고 이런 멋진 세미나를 해준 영재형에게 감사 말씀을 전하며 세미나 후기를 마치도록 한다!
순서를 갖는 입력의 패턴을 찾기 위해 쓰이는 RNN의 경우 매 스텝마다 RNN cell을 업데이트 시키는 sequential한 구조로 인해 gradient-vanishning 문제를 풀기가 어려워 아주 긴 long-term dependency를 요구하는 문제에 한계점을 보였다. 이에 간단한 어텐션 메커니즘을 적용하면 long-term dependency를 완화시킬 수 있으나, 여전히 RNN의 sequential한 구조자체 때문에 계산 시간은 여전히 길었다. 이러한 RNN구조 마저 없애고 최대한 ‘병렬화’하여 계산 시간을 단축하게 만든 것이 2017년 Google에서 발표한 Transformers Architecture이다.
Transformers의 인코딩 단에서는 먼저 단순 self-attention을 할 경우 순서 정보가 없기 때문에 뒤에 positional encoding을 해주는 트릭을 쓴 뒤에 Self-attention을 통해 input sequence 내의 관계를 인코딩하게 된다. 이는 Attention을 쓴 sequence-to-sequence RNN 의 인코더가 하는 역할과 동일하다. 이때 여러층을 겹쳐서 쌓아 더 깊은 표상 학습을 가능하기 위해 input차원과 ouput차원을 동일하게 세팅한 점 또한 engineering trick 측면에서 눈여겨볼 부분이다.
Transformer의 디코딩 단은 인코딩 레이어 안에서 마지막 Encoder layer에서 Sequence를 Key, Value로 사용하여 Decoding을 수행하는 중간 레이어가 추가되는 것, 그리고 순차적으로 결과를 만들어야 되기 때문에 self-attention에 masking 기법을 추가하여, position i 보다 이후에 있는 position에 attend 지하는 것을 방지하는 것 이외에는 동일한 구조를 갖는다.
이외에도 세부적으로 residual connection, layer normalization, label-smoothing 과 같은 테크닉을 썼는데 novel 했던 부분은 positional encoding과 masking을 사용해 self-attention 결과를 seqeunce-to-sequence 문제를 해결할 수 있도록 만든 점인 것 같다. 물론 Vanilla Transformer의 경우 fixed-length input을 갖기 때문에 context fragmentation이 일어나는 경우가 생기지만, 그럼에도 불구하고 GPU연산에 최적화된 병렬화 가능한 sequence-to-sequence architecture를 만들었다는 점에서 단순하지만 강력한 아이디어인 것 같다. 중요한 milestone을 잘 정리해준 영재형에게 감사하다는 말을 전한다.
이번 세미나는 영재가 Transformer와 컴퓨터 비전 영역에서의 최신 응용 논문 2가지에 대하여 세미나를 진행하였다. 첫번째 응용 사례는 올해 Facebook AI에서 발표한 End-to-End Object Detection with Transformer 논문이였다. 제안 모델인 Detection Transformer는 CNN backbone으로부터 이미지 feature을 전달받아 Transformer Encoder-Decoder을 통과하여 Anchor box와 Class 예측을 수행한다. 기존 Transformer과의 구조상의 큰 차이는 없지만 task 수행을 위해 loss를 bipartite matching loss로 설계하여 학습을 진행하였다. SOTA 모델에 비해 우수한 성능을 보인다고는 할 수 없지만 해석력 측면에서는 NLP에서도 그랬든 강점이 있다고 생각한다. 두번째 응용사례는 Pre-trained approach를 사용하는 NLP 모델인 GPT를 이미지에 적용한 Image-GPT로 역시 OpenAI에서 올해 ICML에 발표한 Generative Pretraining with Pixels라는 논문이였다. NLP 모델인 BERT, GPT의 학습 방식인 Next Pixel Prediction과 Masked Pixel Prediction 구조로 학습하는 방식이였다. 이러한 접근방식으로 이미지넷 분류에서 우수한 성능을 보인 것은 놀라웠지만 NLP영역에서 BERT와 GPT가 보여준 기존 모델 대비 유의미한 성능 향상은 이미지 영역에서는 보여주지 못한 것 같다. 오히려 학습시간이 오래걸리고 헤비한 모델 구조를 생각해보면 기존 SOTA보다 낫다고 이야기하기는 어렵다고 생각한다. pre-trained model의 강점을 보이려면 object detection, image segmentation 같은 영역에서의 적용과 우수성이 입증되어야 할 것 같다.
발표자가 세미나를 위해서 열의와 정성을 다 했다는 것이 느껴지는 장표와 발표였고, Transformer 공부를 이제 막 시작하는 분들에게는 굉장히 유익한 자료가 되었을 것 같다. 또한 최신 사례들까지 잘 정리해줘서 Transformer를 잘 아는 연구원들에게도 유익한 세미나였다고 생각한다. 좋은 세미나를 진행해준 영재에게 감사하다는 말을 전한다.
이번 주 세미나 주제는 "Basics and Applications for Transformer"로 영재형이 발표했습니다. 세미나 도입 부분에서는 기존 자연어 처리 방법 중 하나인 Recurrent Neural Network와 두 개의 문제점 Long term dependency와 Gradient vanishing problem을 제시했습니다.
그 중 하나인 Long term dependency를 해결하기 위한 방법으로 Sequence-toSequence라는 모델을 소개했습니다. Seq2Seq 모델은 Encoder-Decoder 구조로 이루어진 모델로 Encoder는 입력 데이터의 정보를 압축하는 역할을 하고 Decoder는 압축 정보(Context vector)와 인코더의 출력 데이터를 입력 받아 문장을 생성하는 역할을 합니다. 이 모델의 cell에 LSTM, GRU 등 Long term dependency를 해결하기 위한 cell을 길고 깊게 쌓아 더 큰 데이터를 처리하도록 했습니다. 여기에 context vector가 긴 입력 데이터를 받을 때 더욱 효과적으로 문장을 기억하는 방법으로 Attention Mechanism을 소개했습니다. Attention Mechanism은 Decoder에서 i번째 단어를 예측할 때 사용하는 이전 스텝의 decoder정보와 Encoder의 j번째 정보가 얼마나 유사한지를 스코어로 산출하여 Long term dependency 문제를 해결합니다.
하지만 Attention Mechanism은 입력 시퀀스 데이터를 순차적으로 처리하기 때문에 병렬 처리가 불가능했고 이는 계산 복잡도와 연산 시간을 늘었고 이를 해결하기 위한 방안으로 Transformer를 소개했습니다. Trnasformer의 Encoder에서 Self-Attention은 Queries, Keys, Values 총 3개의 행렬을 만들어 내며 이를 이용해서 Self-Attention의 스코어를 계산했습니다. 이 스코어와 입력 데이터의 결과를 더해 Layer normalization을 진행합니다. 이 결과를 Decoder로 전달해 마지막 layer에서 encoder에서 출력한 행렬을 사용해 다시 Self-Attention 연산을 진행해 Decoder가 입력 시퀀스 데이터의 적절한 위치에 집중하도록 합니다.
다음으로 Transformers를 응용한 사례인 End-to-End Objection과 Image-GPT를 설명했습니다. 두 응용 사례 모두 자연어 처리가 아닌 시각 데이터 처리라는 점에서 흥미로웠습니다.
이번 세미나를 통해서 RNN과 Transformer에 대해 쉽게 이해할 수 있었고 더 나아가 Transformer가 자연어 처리 뿐만 아니라 다양한 분야에서도 응용될 수 있을 것이라는 가능성을 볼 수 있었습니다. 좋은 세미나를 준비해준 영재형에게 감사를 전하며 이번 세미나 후기를 마무리 하겠습니다.
금일 세미나는 “Basic and Applications for Transformer”의 주제로, Transformer라는 모델에 대한 기초부터 이를 다양한 분야에서 어떻게 활용하고 있는지에 대하여 진행되었다. 인공지능의 다양한 분야에서 아이디어가 활용되고 있는 자연어 처리 분야에 대하여 RNN부터 LSTM, Seq2Seq, 그리고 Attention Mechnism까지 알고리즘 발전 순으로 설명해주셔서 Transformer 모델의 기초에 대하여 더욱 쉽게 이해할 수 있었다. 기존 알고리즘들의 병렬처리, 계산 복잡성과 연산 시간 등의 문제를 해결하고자 등장한 Self-Attention Mechanism은 Transformer 모델의 기초가 되는 아이디어로, 인풋으로 들어온 단어에 대한 Query, Key, Value의 3가지 벡터를 생성하여 해당 벡터값으로 연산을 진행하는 방식을 채택한다. 이 때 Transformer 모델 내에서는 Multi-Head Attention을 사용함으로써 서로 다른 Head가 각각 문장 내의 다른 단어간의 관계를 배우고 이를 활용한 아웃풋 값을 생성하도록 하였다. 이렇게 Self-Attention 등의 레이어를 바탕으로 입력 시퀀스 데이터 정보를 추출한 인코더 이후에는 미래의 정보는 가려둔 채 결과값을 출력하는 디코더를 통하여 최종 Transformer 모델의 목표인 기계 번역 등을 진행하게 된다. 이러한 Transformer 모델은 자연어 처리 분야에서 개발되었지만, 해당 분야에서 벗어나 오히려 Object Detection과 이미지 처리 등에서 활용되는 예시를 소개해주셔서 해당 모델이 자연어 기반 분야가 아닌 다른 곳에서도 활용됨을 보여주셨다. End-to-End Object Detection with Transformers 모델과 Image-GPT의 두 모델을 통하여 Transformer 모델의 아이디어가 얼마나 대단하고 다양하게 활용될 수 있는 것인가에 대한 생각이 들었으며, 한편으로는 이러한 아이디어를 다른 분야에 적용했을 때에는 뛰어나게 좋은 성능을 보이지 못하는 것이 조금 아쉽기도 하였다. 색다른 분야에서 보여주신 응용 사례에서와 같이 항상 배우게 되는 모델과 그 아이디어들을 다른 곳에서 적용시켜보는 창의력이 중요한 것이 아닐까 생각된다. 기초부터 응용까지 많은 내용이 담겨있음에도 불구하고 혼란스럽지 않게 잘 정리 및 설명하여주셔서 많은 것을 이해하고 생각해볼 수 있는 의미있는 세미나 시간이었다.
얼마 전, '인류 역사상 가장 뛰어난 언어 AI' 라 불리는 GPT3가 나오면서 제2의 알파고급 화제를 불러모았다. 최근 NLP 모델 쪽에서 SOTA를 보여주는 GPT나 BERT, 뿐만 아니라 Vision 분야에서도 대부분의 모델의 베이스는 Transformer(Attention is All you need)에서 파생되었다. 따라서 연구 분야에 상관 없이 Transformer는 반드시 이해해야만 최신 연구 동향의 글도 이해할 수 있을 정도다. 최근 Deep learning 분야에서 가장 각광 받는 메인 토픽이 Self-Supervised Learning 과 Attention Mechanism이라 해도 과언이 아니다.
이러한 시기에 걸맞게 이번 세미나는 Attention Mechanism의 기초부터 Self-Attention 을 적용한 Transformer까지 이론을 간략하게 살펴보고, NLP 뿐만 아니라 Vision에서 Transformer를 적용한 DETR, IMAGE-GPT 등의 논문이 소개되었다.
원론으로 돌아가 Transformer가 가장 각광을 받았던 이유는, 기존에 병렬처리를 할 수 없었던 RNN구조와 CNN구조를 탈피하여 오로지 Attention Mechanism을 사용한 것이라고 생각한다. 해당 논문의 저자들도 이를 가장 강조하고 있다. 또한 각 Encoder와 Decoder의 Attention Module은 원 논문에서는 6개씩 넣었지만 추가적으로 모듈을 더하거나 제거할수 있는 등 모빌리티가 굉장히 좋다고 생각한다. 밑단부터 구현한 경우도 많지만, DeepLearning Framework인 Pytorch에서는 Transformer 모듈을 자체적으로 지원하는 만큼 대중성이 크다. 또한 Self-Attention Mechanism은, 기계번역의 경우, 시각적으로 어떤 단어가 어떤 단어와 매칭이 되는지 히트맵으로 살펴볼수도 있어 직관적으로 이해할 수 있다.
현재 영재형과 자연어 처리 분야의 멘토링으로 마지막 파트인 Transformer를 공부 중이나 Query, Key, Value 등의 생소한 개념과 실제 구현상에 부닥치는 어려움이 많았고 논문도 완벽히 이해하기 어려웠다. 하지만 해당 세미나를 통해 기존에 알던 개념은 확립하고, 몰랐던 개념을 새로 충전하는 계기가 되었다.
본 세미나는 자연어 처리 연구 현황에 대한 소개와 RNN, Transformer라는 인공지능 모델에 대한 구조 및 응용사례에 대해 발표하였습니다.
RNN 에서의 Gradient vanishing 및 Long term dependency 문제를 해결하기 위해 연구된 LSTM, GRU cell 개발과 Seq2Seq 모델 구조에 대한 설명을 들을 수 있었다. 또한 Seq2Seq 모델 Architecture로는 long term dependency 문제가 여전히 해결되지 않아, Attention mechanism을 적용하게 되었다. 본 Mechanism도 계산 복잡도 및 연산시간이 긴 문제가 존재한다.
Attention Mechanism의 문제를 해결하기 위해 Nenural IPS에서 발표된 Transformer라는 인공지능 모델이 나오게 되었다. 단어의 연관성을 알 수 있는 Self-Attention mechanism을 통해 RNN과 달리 입력 Sequence 데이터를 순차적으로 처리하지 않고 병렬처리를 진행한다. 본 Transformer 모델을 NLP 분야가 아닌 Object Detection 및 Image-GPT 등 Image 분야의 응용 연구로 발전되고 있다.
병렬적 input 처리 방식 및 Self-Attention이 적용되는 Transformer 연구 모델에 대한 구조 및 응용사례를 자세하게 설명을 들을 수 있는 좋은 기회였고, NLP 분야 뿐만 아니라 Vision 영역의 인공지능 모델에 적용되는 사례를 볼 수 있어 좋은 계기가 되었습니다.
최근 Self-Attention을 포함해 Transformer가 자연어 처리, 컴퓨터 비전 등 많은 분야에서 각광을 받고 있다. 특히 Self-Attention의 경우, 입력 데이터를 잘 이해하기 위해 많이 사용되고 있다. 자연어 처리에서는 입력되는 문장 자체에 대한 이해, 컴퓨터 비전에서는 입력 이미지 내 객체를 정확히 이해하고자 사용되고 특히 모델의 특징을 추출하기 위해 사용되는 Encoder에 사용된다. 금일 세미나에서는 Self-Attention을 비롯한 Transformer에 대해 설명하였고 이에 대한 내용을 다시 한번 리뷰할 수 있는 좋은 시간이 었다. 세미나 내용 중 특히 Transformer가 컴퓨터 비전 분야의 객체 인식에서도 사용되는 것이 인상적이었다. 기존 합성곱 연산으로 구성된 backbone 네트워크의 출력 값을Transformer에 입력하여 입력 이미지를 정확히 이해하는 부분은 나의 개인 연구에서 활용해볼 법 하다는 생각이 들었다. 최근 인공지능 분야에서 많이 사용되지만 쉽게 설명된 자료가 없어 아쉬웠는데 영재의 세미나 자료를 통해 많은 사람들이 이를 보고 참고자료로 활용할 수 있을것으로 기대한다. 발표자 본인의 연구에서도 Transformer를 활용하여 좋은 성과가 있길 응원한다.
오늘 세미나는 Transformer의 개념과 최신 적용사례를 주제로 영재오빠가 발표하셨다. 입력 데이터가 길어질 경우 문장 앞 부분에 대한 정보가 손실되는 문제를 보완하기 위해 Attention개념이 등장하였고, 병렬처리가 가능하여 복잡도와 연산시간을 줄이는 Self-attention개념을 적용한 Transformer 구조가 등장하였다. Transformer는 자연어 처리 뿐 아니라 다양한 분야에도 적용되고 있다. 이미지 테스크에 적용한 최근 2개의 논문을 소개해 주셨다.
[End-to-End Object Detection with Transformers]
(Encoder 부분)
- Encoder의 input: Pre-Trained된 Resnet과 같은 CNN구조를 통해 이미지를 저 차원(d)의 채널로 학습한다. 마지막에 1D conv를 적용하여, 텍스트의 Embedding vector와 유사한 형태의 시퀀스한 vector로 만들어 준다.
- Positional Encoding: 기존 Transformer에서의 원리와 동일하지만, 목적은 조금 다르다고 이해했다. 텍스트가 input으로 들어갔을 때는 단어 간 문맥(순서)을 고려하고자 사용했다면, 이미지가 input일 경우에는 순서 고려와 loss계산 시 순열 계산을 위해 순서가 불변하도록 사용된다.
- Encoder의 output: Key와 value vector (Decoder의 multi-head attention층의 input으로 사용됨)
(Decoder 부분)
Decoder는 고정된 N개의 object를 예측
Ground-truth object set과 예측한 set의 순열의 L_match cost가 가장 작은 순열을 찾는다.
- Decoder의 input: ground-truth set보다 훨씬 큰 N차원의 벡터(처음에는 0의 값으로 구성됨)
- Decoder의 loss function: class와 bounding box에 대한 pair-wise한 cost로 구성되었다. (L_match)
Ground-truth object set과 예측한 set의 순열의 L_match cost가 가장 작은 순열을 찾는다. 그 후, 기존 object detection의 loss와 유사하게 모든 pair에 대하여 선형결합을 해준다. (L_Hungarian)
- Decoder의 output: 기계번역에서의 transformer output은 N개의 방대한 vacab 중에서 softmax값이 높은 단어가 번역의 결과가 된다.
해당 논문도 동일한 원리를 가지고 있다. 찾고자 하는 몇몇의 ground-truth set보다 큰 N차원 벡터에 대한 softmax값이 모두 구해져서 가장 높은 softmax를 가진 set이 object detection의 결과가 된다. 여기서, 흔히 우리가 아는 배경(Background)는 ‘no object’ class로 지정했다.
[Image GPT]
GPT는 기본적으로 Transformer의 Decoder 부분만을 활용한 모델이다.
- input: 원본 이미지를 특정 크기로 조정하고 1차원의 픽셀 시퀀스 데이터로 변환하고, 앞 절반의 픽셀 시퀀스 데이터
사전 학습: 앞 절반 시퀀스 데이터를 사용하여 auto-regressive하게 뒷부분의 픽셀 시퀀스 데이터를 예측
사전 학습 평가: linear probe를 통해 Image-GPT의 출력 값에 logistic regression을 적용하여 분류 성능 확인을 하거나 Fine tuning 진행
흥미로운 주제로 느껴져 이해가 안되는 부분을 논문을 찾아보며 정리하여 후기가 다소 길어졌다. 이번 세미나를 통해 다양한 분야에 대하여 공부하여 다른 분야의 모델을 차용하는 연구를 진행해보고 싶다고 느꼈다. 유익한 세미나를 진행해주신 영재오빠께 감사하다.
이번 세미나는 "Basics and Applications for Transformer"라는 주제를 가지고 진행되었다. 자연어 처리(NLP)란 일상생활에서 사용하는 언어의 단어 뿐 아니라 문장, 시 등의 의미를 컴퓨터가 분석하여 처리하게 해주는 것을 말한다. 최초 RNN구조는 4가지 기본구조를 가지고 시작했는데 문장의 길이가 길어질수록 처음 등장한 단어에 대한 정보를 잊어버리는 문제(gradient vanishing)가 있어 이를 보완하기 위해 LSTM이나오고 너무나 많은 데이터를 처리하기 위해 입력 데이터의 정보를 압축하는 encoder와 encoder 데이터와 출력 데이터를 입력받아 문장을 생성하는 decoder의 구조를 가지는 sequence to sequence가 나왔다. 그리고 여기서도 context vector의 정보 손실이 있기에 이를 해결하기 위한 attention mechanism이 적용되었다. 하지만 이방법은 시간이 너무 오래 걸리기에 이를 해결하기 위해 transfomer가 나오게 되었다. transformer를 활용한 그러면서도 NLP가 아닌 완전 다른 도메인에서도 사용할 수 있다는 것을 보여준 "Object Detection"과 "이미지 생성"에 대한 최신 논문인 "End-to-End Object Detection with Transformer","Imgae-GPT"를 설명을 해 주었는데 많이 어려웠지만 그래도 약간의 개념이라도 얻게 된거 같아 좋았다. 어려운 내용을 최대한 잘 설명을 해준 영재에게 감사를 표한다.
오늘은 영재가 Transformer 논문을 주제로 세미나를 진행했다. Transformer는 sequence 데이터를 모델링 할 때 RNN, LSTM 레이어 없이 Attention으로만 구성된 Encoder Decoder 네크워크로 Attention mechanism의 효용성을 강조한다. 즉, input 되는 변수(시간, pixel 등 정의하기 나름)를 얼마나 반영할 것인지 잘 조절하는 네트워크를 구축하면 예측성능이 좋다는 것으로 최근 SOTA모델에 필수적으로 적용되는 개념이다. 특히, transformer의 응용 사례로 End-to-End object detection with transformers 논문을 소개해주었는데 attention map으로 object detection을 한 게 인상적이다. 개인적으로 CNN 기반 activation map으로 센서원인분석연구를 진행한 적이 있는데 비교대상으로 weakly supervision 관점에서 attention map을 사용하면 좋을 것으로 생각했다. 여러 transformer 기반으로 이루어진 SOTA모델 구조를 기반으로 한 regression을 수행하는 모델을 구축한 후 센서데이터 locallization을 적용해보면 좋을 것 같다. Attention mechanism의 계산 예시 정도 있으면 했다는 아쉬움이 있었지만 전반적인 Attention mechanism이 사용되고 있는 현 상황을 잘 알려준 세미나로 생각한다.
이번 세미나는 ‘Basics and Applications for Transformer’라는 주제로 영재형이 진행하셨다. Transformer 아키텍처 및 배경 지식을 설명한 뒤 이를 응용한 연구에 대해서 설명을 했다. 본래 Transformer는 자연어처리 분야에서 많이 활용되었으나 점차 객체 탐지나 이미지에 대한 자가학습 등으로 확장이 되고 있는 추세이다. Transformer에 쓰인 Attention은 순서가 있는 데이터를 처리하는 모델들이 순서가 길어질수록 앞부분의 정보 손실이 발생하는 것을 효과적으로 방지하기 하는 역할을 한다. 다만 순서대로 데이터를 처리하는 방식이기 떄문에 병렬처리가 불가능해서 계산 복잡도가 높고 총 연산 시간이 길다는 단점이 있다. 이것을 해결한 것이 Transformer에서 사용하는 Self-Attention이다. Transformer에서 순서가 있는 데이터를 병렬로 처리할 수 있는 이유는 Positional-Encoding으로 순서 정보를 따로 처리하기 때문이다. 따라서 워드임베딩 벡터와 순서 정보 벡터가 함께 Transformer의 인코딩 레이어에 들어가게 된다. 인코딩 레이어에서는 입력된 각 단어들을 Key Query Value 세 개의 벡터들로 표현을 하며 이 세 개의 벡터들의 행렬 연산을 통해서 문장 내의 관계를 학습하게 된다. 이후 디코딩 레이어를 통해 결과물을 출력하게 된다. Transformer를 응용한 연구 중에는 객체탐지로 활용한 DETR 그리고 이미지 데이터에 대한 자가학습 모델인 Image-GPT가 있다. 텍스트 분석에서 자주 활용되던 모델이 이미지에서도 활용되는 것뿐만 아니라 CNN 알고리즘도 텍스트에서 응용하는 연구가 진행되고 있다. 점점 알고리즘이 활용되는 분야의 경계가 흐릿해지고 있다는 느낌을 많이 받았다. 다양한 내용으로 구성이 되어 있었지만 이를 이해하기 쉽게 잘 준비해준 영재형에게 감사의 말을 드린다.
금일은 Basics and Applications for Transformer를 주제로 세미나가 진행되었다. 이번주 Transformer가 나오게 된 이유와 배경에 대한 설명으로 세미나가 시작되었다. 이후 Transformer 아키텍처에 대해 자세히 설명을 들을 수 있었고 마지막으로 최근에 NLP 외에 다른 분야에서 Transformer가 적용된 사례에 대한 설명을 들을 수 있었다. 먼저 RNN에 대한 설명이 진행되었고 RNN이 가지고 있는 Long term dependency, gradient vanishing 문제를 해결하기 위해 LSTM과 GRU가 제안되었다. 이후 LSTM, GRU 등의 cell을 더 길고 깊게 쌓을 수 있는 Sequence-to-Sequence(Seq2Seq) 구조가 제안되었다. 하지만 이러한 Seq2Seq 모델도 입력 sequence가 길어질 경우 문장의 앞부분에 대한 정보 손실이 발생하는(long term dependency problem)이 존재하게 된다. 그래서 입력 길이가 길어지더라도 앞부분 정보 손실이 되지 않도록 하기 위해서 입력 단어의 중요도를 계산할 수 있는 Attention Mechanism을 활용한 방법론이 제안된다. 이후 입력 Sequence를 병렬 처리하여 정보를 압축해 계산 복잡도 및 연산 시간을 줄이기 위해 Self-Attention을 활용하는 Transformer가 등장하게 된다. 이러한 Transformer 구조에 대해 자세한 설명이 이어진 후 이미지 데이터에 Object Detection에 사용된 사례와 Image-GPT 논문 사례에 대한 소개가 이어졌다. 이번 세미나는 Transformer가 등장하기까지 큰 줄기를 알 수 있어서 좋았다. RNN을 시작으로 Self-Attention까지 핵심 내용들을 알 수 있었고 향후 이 분야에 대해 궁금할 경우 자주 찾아보는 자료가 될 것 같다. 좋은 세미나를 준비해준 영재에게 감사함을 표한다.
이번 세미나에선 자연어처리 연구 분야에서 좋은 성능을 인정받은 Transformer 모델이 소개됐다. 트랜스포머 모델은 RNN 계열 모델들이 발전되는 과정에서 나왔다. RNN은 문장 속 단어들을 순서대로 처리하되, 앞 단어의 정보를 그 다음 단어를 처리할 때 input으로 함께 입력하는 방식의 모델구조다. 때문에 시퀀스 데이터 분석에 적합하나, 순차 연산 과정에서 기울기 소실(gradient vanishing) 또는 장기 의존(long-term dependency∙문장이 길어지면 초기 단어 정보가 사라짐) 문제가 발생했다. 이를 개선하기 위해 고안된 seq2seq 모델은 입력 데이터의 정보를 압축하는 인코더와, 인코더의 출력 데이터를 입력 받아 결과값인 문장을 만드는 디코더 구조를 사용했다. 하지만 인코딩 결과로 나오는 문맥 벡터의 크기가 고정돼 있다 보니 장기 의존 문제가 여전히 발생했다. 다시 이를 해결하고자 Attention 메커니즘이 도입됐다. 이는 디코더가 단어별 예측 결과를 출력할 때마다 인코더 출력값을 매번 참조할 수 있게 해, 정보 소실을 최소화하는 메커니즘이다.
Attention 메커니즘을 통해 길이가 긴 문장도 최대한 기억할 수 있게 됐지만, 순차 연산으로 인해 데이터 처리 시간이 길다는 단점이 있었다. 2017년 구글이 개발한 트랜스포머는 바로 RNN을 없애고 Attention 메커니즘만 활용함으로써 순차 연산이 아닌 병렬 처리를 택한 모델이다. 대신 단어의 시퀀스 정보를 반영하기 위해 positional encoding, self-attention 메커니즘을 사용했다. 병렬 처리가 가능해지면서 학습 시간도 대폭 줄어들고 예측 성능도 높아졌다고 한다. 현재 트랜스포머 모델은 자연어처리뿐 아니라 object detection등 이미지 분석 연구에도 활발히 사용되고 있다.
이해하기 어려운 세부 내용도 있었지만, 자료가 매우 상세하고 방대해서 이후 트랜스포머 모델과 RNN 계열 모델들을 공부할 때 큰 도움이 될 것 같다. 알찬 발표를 준비해준 영재에게 감사드린다.
이번 세미나는 Transformer와 이를 이미지에 적용한 논문 두개에 대해서 영재 오빠가 진행해주었다. Transformer에 대해 설명하기위해 왜 Attention이란 개념이 등장하게 되었는지 기본부터 차근차근 설명되었다. 그리고 Transformer의 핵심인 Self-Attention에 대해서 설명되었다. 이때 Jay Alammar 블로그의 Transformer 그림과 동영상이 활용되었다. 진짜 이 그림과 동영상은 언제 보아도 직관적으로 잘 만들어져서 다시 한번 놀라웠다. 오늘 나에게 새로웠던 부분은 Transformer가 이미지에 적용된 논문 두개였다. 한 개는 객체 탐지, 또 다른 하나는 생성 모델에 활용되었다. Detection Transformer (DETR)은 CNN과 Transformer를 객체 탐지에 활용하여 end-to-end로 모든 객체를 한번에 탐지할 수 있는 모델을 제안하였다. 두번째 논문은 pixel 값을 순차적으로 Transformer 구조를 활용하여 생성하여 이미지를 생성할 수 있는 모델을 제안하였다. Transformer의 활용을 NLP 태스크에 국한하여 활용 하려했던 나에게 신선한 자극이 되었다.
금일 연구실 세미나는 ‘Basics and Applications for Transformer’라는 주제로 진행해주었다. Transformer알고리즘은 기계번역 도메인에서 제안된 만큼 이를 이해하기 위해서는 context vector의 개념을 이해해야 한다. 따라서, RNN의 기본구조 예시에서부터 attention mechanism, transformer순으로 기본적인 구조 및 특징에 대해 설명들을 수 있었다. Attention mechanism은 gradient vanishing을 완화하는 구조로 encoder의 마지막 hidden layer정보를 context vector로 사용한 초기 seq2seq과는 달리 input sequence의 시간정보에 따라 attention score를 산출하고 이를 가중합하여 context vector를 도출하게 된다. 하지만 attention mechanism은 입력 시퀀스를 순차적으로 처리하기 때문에 병렬적으로 처리가 불가능 하다는 점에서 계산 복잡도가 굉장히 크다. 이를 보완하고자 병렬처리가 가능하도록 self-attention구조를 활용한 transformer가 제안되었다. Transformer는 입력시퀀스를 순차적으로 처리하지 않기 때문에 추가적으로 positional encoding이 수행되며, 다양한 특징 추출이 가능하도록 multi-head구조를 가지고 있다는 점이 큰 차별점이라 할 수 있다. 더 나아가 세미나를 통해 transformer구조를 활용한 연구사례를 살펴볼 수 있었다. 먼저, object detection에 대해 살펴볼 수 있었으며, 다음으로 Image-GPT라는 생성모델에 대해 소개되었다. 두 분야 모두 최신 연구들로써 transformer의 구조를 적절히 활용하여 이미지 테스크에 적용한 사례였다. 오늘 세미나를 들으며 데이터 분석이라는 것이 특정 도메인에 국한되지 않고 활용된다는 점에서 많은 insight를 얻을 수 있었다.
Transformer에 관련된 전반적인 내용과 이를 응용한 연구 사례들에 대해서 소개하는 세미나를 청취했다. Transformer는 요즘 인공지능, 자연어 처리(NLP)를 공부하는 사람들이라면 한번쯤은 들어봤을 정도로 유명한 알고리즘이다. NLP에서 가장 중요하게 여겨지는 요소는 바로 순차적(sequential) 정보를 학습하는 것이다. 가장 초기 모델인 RNN부터 시작해서 sequence 길이가 길어질 때 생기는 문제점들을 해결하기 위한 LSTM, GRU가 소개되었다. 그 후로부터는 모델이 어떤 부분을 보고 output을 내는지 알 수 있으며 입력 데이터의 길이가 길 때 성능향상을 이룬 attention에 대한 개념도 소개되었다. 특히 attention은 요즘 sequence 정보를 다루기 위한 알고리즘들에 기본적으로 사용되기 때문에 개념을 여러번 익혀도 부족함이 없다고 생각한다. Attention은 기본적으로 target에 대해서 어떤 source가 연관되어 있는지는 알 수 있지만, source끼리의 관계는 파악할 수 없다는 한계점이 있다. 또한, 정보를 순차적으로 처리해야만하기 때문에 계산복잡도가 매우 크다. Transformer에서 제안한 self-attention은 source끼리의 관계도 파악하면서 병렬연산을 가능하게 한 알고리즘으로 최근 NLP를 포함해서 많은 분야에서 좋은 성능을 내고 있다. 엄청나게 많은 데이터를 학습하기 위해서는 엄청나게 큰 모델이 필요한데, 이 모델의 capacity를 유지하면서 연산속도를 빠르게 하는데 Transformer 구조가 많은 기여를 했다고 생각한다 (하지만 여전히 모델이 너무 크고 오랜 시간이 필요하다). 더 나아가서 NLP 뿐만 아니라 object detection, Image-GPT 등 다양한 응용사례를 소개해주었으며 각 모델의 motivation, 장단점 등에 대해서 잘 짚어 소개해주어 이해하기 편했다.
금일 세미나는 영재가 트랜스포머에 대한 소개와 트랜스포머가 적용되는 다양한 분야에 대해 발표를 해주었다. 금일 발표는 모두 훌륭했지만 특히, 발표의 시작부에 트랜스포머가 나오기 전의 자연어 처리 분야 특히, seq2seq의 대표적인 모델들과 그 한계에 대해 언급해주어서, 어텐션에 대한 사전 이해를 도모하였고 셀프 어텐션의 필요성을 짚어 줄 수 있어서 트랜스포머의 특징을 이해하기 쉬웠다.
트랜스포머는 2017년 구글에서 발표한 "Attention is all you need"이라는 논문에서 나온 모델이다. 또한 기존의 seq2seq 모델들의 기본 구조인 encoder-decoder의 구조를 따르지만 RNN을 사용하지 않고 어텐션만으로 기존의 RNN 베이스의 seq2seq 모델들보다 시퀀스의 정보를 잘 읽어내는 모델이다. 기존의 seq2seq 모델은 encoder-decoder의 구조로 구성되어 있는데 encoder가 입력 시퀀스를 하나의 벡터로 압축하고, decoder는 이 벡터 표현을 통해서 출력 시퀀스를 만들어낸다. 하지만 encoder가 입력 시퀀스를 벡터로 압축하는 과정에서 입력 시퀀스의 정보가 손실된다는 단점이 있었고, 이를 보완하기 위해 어텐션이 사용되었다. 즉, 트랜스포머는 이 어텐션을 RNN을 보완하는 용도가 아니라 대체하는 용도로 사용하면 어떨까하는 아이디어에서 출발한 모델이다.
다음으로, 트랜스포머의 구조가 비젼 분야에서 적용되는 케이스들을 소개해주었다. 먼저 소개한 논문은 End-to-End Object Detection with Transformers이다. 기존 Object Detection 분야에서는 anchor 박스 구조를 이용한 관심영역을 추출하는 구조와 예측한 바운딩박스에 대한 중복처리를 하는 Non-maixmum supression (NMS)가 필수적이다. 하지만 이 두 요소는 End-to-end로 학습하는데 있어서 방해 요소로 작용하게 된다. 따라서 End-to-End Object Detection with Transformers에서 제안된 아이디어는 이렇게 필수적이지만 학습에 방해요소가 되는 두 부분을 트랜스포머 구조를 통하여 해결한 논문이다. 하지만 트랜스포머 구조를 사용함으로 학습시간이 상당히 늘어나고 작은 객체에 대한 detection 성능이 현저히 낮다는 한계점을 지닌다.
iGPT는 이러한 한계점을 자연어 처리에서 BERT와 GPT의 아이디어와 마찬가지로 이미지에 대한 Representation Learning을 할 수 있는 Pretrained-Model을 만들어 각각의 다운스트림 태스크에 맞추어 파인튜닝을 하는 아키텍처를 디자인했다. 이러한 아이디어는 이미지 역시 픽셀로 이루어진 긴 시퀀스로 인식하여 텍스트 데이터와 같은 시퀀셜 데이터로 생각해 볼 수도 있지 않을까에서 왔다고 생각된다. iGPT의 경우 성능면에서는 SOTA에 가까운 성능을 달성하였지만 역시나 트랜스포머 구조를 차용하면서 훨씬 더 많은 연산량이 필요하다는 단점은 여전히 한계로 남아 있다.
금일 세미나는 비젼 분야에 트랜스포머가 적용되는 연구 사례들을 우리에게 소개해주기 위해 트랜스포머 이전의 모델들과 트랜스포머가 무엇인지에 대해서부터 차근차근 잘 설명해 준 훌륭한 세미나라고 생각한다. 좋은 발표를 제공해 준 영재에게 다시금 감사를 표한다.
이번 세미나에선 Transformer 구조에 대한 기본적인 설명과 더불어 자연어가 아닌 이미지에의 두 가지 응용연구를 다뤘다. 2017년 'Attention is all you need' 논문에서 처음으로 Transformer 구조가 등장할 때만 해도, 다소 자극적(?)인 제목 때문에 반신반의하면서 읽었던 기억이 난다. 당시만 하더라도 연구자들 전반에 걸쳐 '이미지 처리는 CNN, 자연어 처리는 RNN'이라는 고정관념이 팽배했기 때문이 아닐까 싶다. 기계번역용 Seq2Seq 모델의 성능을 개선하기 위해 처음 제안된 attention 개념이 몇 년이 흘러 분야를 불문하고 대세를 이룰 줄 몰랐다. 새로운 것을 공부하고 고안해내는데 고정관념이란 것이 얼마나 무섭고, 모두가 당연시 여기는 가정이 틀릴 수도 있다는 생각이 얼마나 중요한지 느낄 수 있는 대목이다.
Transformer 구조는 RNN 구조가 태생적으로 1) 병렬 학습이 불가능하다는 점과 2) 입력 데이터(i.e 문장)의 길이가 길어질 경우 학습이 어렵다는 점을 Self-Attention만으로 구성된 구조로 해결하고자 하였다. 이후 BERT에서 Transformer 구조에 기반한 정교한 언어모델을 제안하면서 대세를 이루기 시작하였다. 최근에는 컴퓨터 비전 연구에의 적용도 늘어나는 추세인데, 오늘 소개된 객체 탐지용 DETR과 이미지처리 모델의 사전학습을 위한 ImageGPT가 그 대표격이라 할 수 있다. ImageGPT는 이미지의 절반을 입력으로 넣어 나머지 절반을 예측하는 아주 단순한 autoregressive task를 활용한다. 계산량이 절대적으로 많기 때문에 큰 규격의 이미지에 대해선 개선점이 분명하지만, 작은 이미지에 대해선 그 성능이 기존 SOTA인 SimCLR와 비등함에 놀랐다. 앞으로 특히 눈여겨볼만한 연구라고 생각한다.
코로나19 사태로 인해 온라인으로 진행한 것이 아쉬울만큼 여러모로 유익한 세미나였다. 앞으로의 세미나에서도 이번처럼 기반이 되는 기술과 함께 최신연구에 대한 리뷰가 많이 곁들여지면 좋을 것 같다.
오늘 세미나는 "Basics and Applications for Transformer"라는 주제로 이영재 연구원이 진행해주었다. 특히 오늘의 주제인 Transformer에 대한 이해를 돕기 위해 Transformer가 가장 많이 사용되는 자연어 처리 기법에 대해 총 정리해준 점이 아주 인상깊고 도움이 많이 되었다. 자연어(NLP)처럼 순자적인 정보를 가지고 있는 데이터를 처리 하기 위해 탄생하게 된 Recurrent Neural Network (RNN) 부터 초기 RNN이 가지고 있던 Long term dependency, gradient vanishing 등의 문제를 해결하기 위해 태어난 LSTM, GRU에 대한 구동 방식에 대한 설명을 해주었고, RNN을 발전시킨 아키텍쳐인 Sequence-to-Sequence와 함께 길이가 긴 형태의 DATA를 더욱 잘 처리하기 위한 핵심 알고리즘인 Attention까지 그림과 수식을 적절하게 배합하여 세미나에 참여하는 동료 연구원이 이해하기 쉽도록 많이 고민했음을 느낄 수 있는 세미나였다. 오늘의 주제인 Transformer는 기존 Attention 기법이 가지고 있던 한계인 계산 복잡도와 연산 시간 과대를 개선하기 위해 고안되었다고 한다. Transformer는 각 6개의 인코더와 디코더를 되어 있다. 그리고 Self-attention과 Positional Encoding을 통해 입력 시퀀스를 기억하면서 Data를 병렬 처리할 수 있도록 설계 되었다. 세미나 후반에 가장 흥미로웠던 점은 자연어 처리를 하기위해 태어난 Sequence-to-Sequence의 Attention을 개선하기 위해 태어난 Transformer를 이용하여 Object Detection을 훌륭하게 수행할 수 있다는 것이었다. 깊은 이해가 필요한 내용이었지만, 훌륭한 발표자료로 자연어 처리 모델의 발전과정과 구동원리를 이해하기 쉽게 표현하였으며, 자연어 처리 모델을 이미지 처리 분야로 확장 적용한 예시까지 보여준 아주 훌륭한 세미나였다. 동료들을 위해 많은 시간을 고생했을 이영재 연구원님께 감사하다는 인사를 전한다.
Transformer 모델에 대한 이해를 할 수 있는 유익한 강의였다. 자연어 처리는 인공지능 분야에서 매우 중요한 연구분야인데 과거에는 주로 RNN 을 통해 연구를 진행했다. 하지만 Gradient Vanishing 이나 Long Term Dependancy 와 같은 문제에 봉착했고, LSTM과 GRU 통한 Gate 메커니즘을 도입하여 해결해왔다. 또한 Seq2Seq 매커니즘을 통해 RNN 구조를 Encoder-Decoder 구조로 개선하였으나 여전히 입력 시퀸스가 길어지면 앞 부분의 정보가 손실되는 문제가 있었고, Attention Mechanism 이 도입되었다. Attention Mechanism 에서는 Attention Score 기반하여 입력정보의 어느 Vector 가 출력정보의 어느 Vector 랑 가장 연관이 있는지 계산하여 Long Term Depandency 문제를 해결하였으나 병렬 처리가 안되어 계산복잡도가 높은 문제가 있었다. 2017년 소개된 Transfomer 에서는 Encoder / Decoder 를 여러개 두어 위 문제를 해결하였고 자연어 처리 부문에서 타 알고리즘 대비 우수한 결과를 나타낸 것을 확인했다. 뿐만아니라 이미지 측면에서도 적용한 응용사례를 확인할 수 있었다. 이번 세미나를 통해 Transformer에 대해 대략적으로 이해할 수 있었고 세미나를 열심히 준비해준 영재님께 감사의 뜻을 표하며 세미나 후기를 마친다.