- 2021년 10월 22일 오후 9:36
- 조회수: 3844
REFERENCES
INFORMATION
- 2021년 10월 22일
- 오후 1시 ~
온라인 비디오 시청 (YouTube)

TOPIC
On-Line Video
OVERVIEW
청취자 후기

금일 세미나는 딥러닝을 활용한 멀티 태스킹을 주제로 진행되었다. 멀티태스킹은 두 개 이상의 태스크 공통점 및 차이점 둘 다를 활용하여, 하나의 태스크를 각각 수행하는 것보다 더 좋은 혹은 효율적인 성능을 내고자 한다. 싱글 태스크 방법론 이외에 Transfer learning, Multi-task learning, Multi-label learning에 대한 정확한 정의와 유사점, 차이점들을 명확하게 이해할 수 있었다.
멀티 레이블링 학습에서는 Soft, Hard parameter sharing, 하이브리드 parameter sharing 개념들을 활용하여 학습하는 방법론들을 소개해주셨다. (단일 데이터셋에 여러 target이 존재하는 경우)
멀티 테이터셋 학습에서는 태스크별 고유정보를 나타내는 One-hot vector 혹은 임베딩 벡터들을 활용함으로써 여러 데이터셋들을 동시에 학습하는 아이디어들이 세미나에서 공유되었다. 모델 구조 부분을 어떻게 설계할 지에서는 Soft, Hard, 하이브리드 개념들에 기반되고 있다.
여러 태스킹들을 동시에 학습할 수 있는데 가장 기저가 되는 아이디어는 각 태스크별 로스 함수들을 동시에 최적화하는 것이다. 이 때, 각 태스크별로 학습 원리가 충돌되는 경우가 있을 때에는 효과적으로 학습되기가 어려워 싱글 태스킹을 하는 것보다 오히려 악영향이 생길 때가 많다. 이를 해결하기 위한 PCGrad 방법론이 소개되었다. 해당 방법론은 각 손실함수별 그레디언트 충돌이 일어날 때(최적화를 위한 그레디언트 이동 방향이 다를 때) 대비해 충돌된 방향에 대한 사영 벡터를 이용하는 아이디어를 활용했다.
멀티 태스킹 학습 정의에 대해 전반적으로 살펴볼 수 있었고, 이외에 비슷한 방법론들까지 다양하게 이해할 수 있었다. 좋은 세미나를 준비해준 충협이 형에게 감사의 말씀을 전하며, 세미나 후기를 마치도록 한다.

이번 세미나는 'Introduction to multi-task learning'을 주제로 진행되었다. Single task learning은 하나의 데이터셋으로 하나의 모델을 학습하는 방법인 반면, multi-task learning은 태스크의 개수만큼 데이터가 존재하고, 각각의 데이터로 하나의 모델을 학습하는 방법을 말한다. 결과적으로 이를 통해 다양한 태스크를 한 번에 수행할 수 있다. Multi-task learning은 transfer learning 및 multi-label learning과 유사한 개념을 가지고 있다. 본 세미나에서는 세 가지 학습 방법론의 차이를 명확히 짚어주었다. 하나의 데이터셋을 사용하는 경우에는 multi-label learning에 해당하지만, 대부분의 multi-task learning 방법론은 multi-label learning에도 적용 가능하다. 따라서 multi-label learning의 대표적인 방법론으로 soft/hard parameter sharing에 대해 소개해주었다. Soft/hard parameter sharing은 파라미터를 부분 혹은 전체 공유하여, 일반화 효과를 얻을 수 있다는 장점을 가진다. 이와 달리 여러 데이터셋을 사용하는 경우인 multi-task learning은 입력 데이터와 레이블이 태스크별로 달라 각 상태를 알려주는 정보가 필요하며, one-hot vector나 embedding vector 등의 형태로 입력된다. 이에 따라 지식 공유, 과적합 방지, 계산 효율성 등과 같은 다양한 장점을 가진다. 그럼에도 불구하고 multi-task learning은 연관성이 부족한 태스크들을 학습할 때 단일 모델보다 성능이 낮은 경우가 발생하며, 태스크별 차이가 어려우면 학습하기 어렵다는 단점을 가진다. 이를 극복하기 위해 제안된 방법론 중 하나인 PCGrad는 여러 개의 손실함수를 최적화 할 때 projection 된 gradient를 이용하여 태스크간 부정적인 영향을 최소화한다.
본 세미나를 통해 multi-task learning에 대한 전반적인 개념을 정리함과 동시에 평소 헷갈리던 부차적 요소들까지 정확히 짚고 넘어갈 수 있었다. 프로젝트와 개인연구에서 주로 다루고 있는 분야라 더욱 관심 있게 시청한 세미나였다. 세미나를 위해 고생해준 충협오빠께 감사한 마음을 전하며 후기를 마무리한다.

이번 세미나는 기본적인 딥러닝 기반 multi-task learning에 대한 설명, 장단점 그리고 multi-task learning에서 태스크간 부정적인 영향을 있을 때 이를 줄이는 아이디어를 소개한 'Gradient surgery for multi-task learning'에 대한 논문이 소개되었다. Transfer learning, multi-task learning, multi-label learning간 포함관계를 설명하고 이들간 차이를 설명한 부분에서는 과연 transfer learning이 multi-task learning을 포함하는 개념일 수 있을까 의아함이 들었다. Transfer learning의 목적은 두개의 task를 푸는 것이 목표가 아니라 target task의 성능 향상을 위해서 source task를 사용한다는 점에서 사용하는 task가 두개이긴하지만, multi-task learning와 목적이 전혀 다르지 않나?라는 생각이 들었다. Gradient surgery for multi-task learning에서 gradient가 아닌 projection된 gradient로 딥러닝 파라미터를 업데이트 하는 아이디어의 소개는 매우 흥미로웠다. Multi-task 뿐만 아니라 여러가지 목적의 함수가 함께 사용되어 정의된 손실함수에 적용해볼 수 있어서 범용적인 활용이 가능하지 않을까 생각이 들었다. 매번 유익한 세미나를 진행해주는 충협이에게 고마움을 전한다.

이번 세미나는 'Introduction to multi-task learning'를 주제로 세미나가 진행됐다. 세미나는 Multi-task learning에 대한 설명부터 시작해, Multi-task learning과 관련된 최신 논문인 'Gradient Surgery for Multi-Task Learning'에 대해서 소개해주었다. 하나의 task에 대해 dataset을 구축하고 model을 만들어 활용하는 방식인 single task learning과는 다르게, 여러 개의 task들을 하나의 trained model을 통해 여러 결과값을 만드는 방식을 Multi-task learning이라고 한다. 세미나에서는 이와 유사한 개념들인 Transfer learning과 Multi-label learning에 대해서도 언급하며 셋의 공통점과 차이점을 쉽게 설명해준다. Multi-task learning은 여러 형태의 모델을 가진다. 하나의 dataset을 사용하기도 하지만, 이보다는 Soft parameter sharing, Hard parameter sharing, Hybrid 방식이 좀 더 Multi-task learning 같다는 생각을 했다. 더욱이 인상 깊었던 부분은 여러 데이터셋을 학습시킬 경우였다. 이 경우, task 별로 dataset이 다를 뿐만 아니라 task 상태를 알려주는 z를 사용한다. 이 때 z는 one-hot vector나 Embedding vector를 사용한다. Multi-task learning은 과적합 방지, 계산 효율성, 현실 적합성 등의 장점을 가지나, 연관성이 부족한 task를 학습하면 단일 모델보다 성능이 낮거나 task balance를 조절하기가 까다로운 등 여전히 연구가 필요하다는 단점을 지닌다. 마지막으로 2020년 NeurIPS에 발표된 ‘Gradient Surgery for Multi-Task Learning’의 PCGrad에 대해서 설명한다. 일반적으로 여러 개의 손실함수를 최적화하면 Gradient가 서로 반대 경우인 Conflicting gradient가 발생한다. Conflicting gradient 상태에서는 trade off가 발생하면서 최적화가 힘들게 된다. 이 문제를 해결하기 위해 gradient들이 서로 반대인 경우, 각 gradient를 projection시켜 projection된 gradient를 이용해 부정적인 영향을 최소화 시켜 손실함수를 최적화 시킨다. 이번 세미나를 통해 Multi-task learning에 대해서 정확한 개념과 기반을 쌓을 수 있었고, 깔끔하게 정리할 수 있었다. 특히, 어려울 수 있는 PCGrad와 헷갈릴 수 있는 Multi-task model의 종류에 대해서 차근차근 설명해주셔서 이해할 수 있었다. 유익한 세미나를 준비해주셔서 감사하다는 마음을 전하며 후기를 마무리한다.

이번 세미나는 "Introduction to Multi-task Learning"이라는 주제로 진행됐다. Multi-task learning은 여러 개의 task를 동시에 잘 수행할 수 있는 모델을 구축하는 것을 목표로 한다. 가장 일반적인 multi-task learning 데이터로부터 특징을 추출하는 모델의 아래쪽은 공유하고 multi-head 구조를 활용해 다양한 task에 적합한 output을 출력하는 hard parameter sharing 구조가 일반적이다. 파라미터 수가 적고 일반화 효과가 가장 크다는 장점이 있다. Soft parameter sharing의 경우 각 task 별로 별도의 네트워크 구조를 활용하며 각 네트워크의 파라미터가 유사해지도록 하는 loss를 추가하여 학습을 진행하게 된다. 이를 통해 각 task에 적합한 네트워크가 학습되면서 과적합을 방지해주게 된다. 데이터와 task의 종류에 따라 soft sharing과 hard sharing을 혼합한 모델 구조를 활용할 수도 있다. 여러 개의 task를 학습시키기 위해서는 task에 대한 정보를 담고 있는 벡터가 필요하다. 해당 벡터를 linear transform 한 이후 데이터와 함께 모델의 입력으로 활용하게 되면 multi-head 구조 없이도 task에 적합한 output을 내는 모델을 구축할 수도 있다. 세미나의 후반부에서는 loss끼리 gradient 방향이 서로 충돌할 때 이를 방지해주는 PCGrad에 대해서 소개되었다. PCGrad에서는 gradient 방향이 충돌할 때 충돌이 존재하는 gradient를 제거하는 방향으로 projection 시켜 서로의 task 학습에 방해되지 않도록 학습을 진행하게 된다. 이번 세미나를 통해 multi-task learning에 대한 전반적인 개념과 간단하게 사용할 수 있는 방법론에 대해 알게 되어 의미 있는 세미나였다. 세미나를 위해 고생해준 충협이형에게 감사의 뜻을 전한다.

이번 세미나는 Multi task learning을 주제로 진행되었다. 여러가지 소스 데이터로부터 하나의 타겟 태스크를 수행하는 Transfer 러닝과는 달리, 여러 데이터셋으로 구성하면서 데이터별로 다른 태스크를 수행한다는 점에서 차이점이 있다. 하나의 데이터셋을 사용하면, 하나의 레이블을 예측하는데 최적화 되는데 반해 soft하게 파라미터를 공유하는 경우에는 각 모델의 파라미터간 거리를 줄이는 제약식을 추가하여, 여러 모델의 파라미터들이 비슷하게 학습되며 일반화의 효과를 내는 형태로 진행되고, hard하게 공유하는 경우에는 하나의 모델로 여러개의 레이블을 예측하는 형태로 멀티 헤드의 구조를 가진다. 이경우에는 가장 일반화 효과가 크다고 할수 있다. 사용자는 얼마나 파라미터를 공유할지를 두고, 혼합형태를 사용하여 손실함수를 조정하는 형태로 데이터의 특성에 따라 자유롭게 구성할 수 도 있다고 한다.
또, 여러 데이터셋을 학습시키려면, 입력 데이터와 레이블이 태스크에 따라 다르기 때문에 이 태스크 상태를 알려주는 정보가 추가적으로 필요하다. 이 태스크 상태 z는 One-hot vector나 embedding vector로 표현하여 사용하는 경우도 있다. 사실, 원하는 task에 맞춰 따로 만들면 될것을 굳이 멀티 태스크 러닝으로 사용하는 이유가 무엇일까 궁금했었는데, 그 장점으로는 지식 공유가 가능하며, 일반화 효과와, 계산을 효율적으로 할수 있다는 점 등이 있었다. 나는 그중에서 지식을 공유하여 서로의 태스크에 긍정적으로 영향을 미칠 수 있다는 점이 마치 사람이 학습하는 것처럼 느껴져서 재미있다고 느껴졌다. 다만 단점으로 설명된대로, 태스크의 연관성이 없다면 제대로 학습하기 어렵단 점도 많은 생각이 들었다. 만약 GPT3처럼 아예 엄청나게 거대한 데이터와 컴퓨팅 자원을 사용하면 그 자체로 수많은 멀티 태스크를 수행할 수 있는 수준에 이른다면, 어떤 의미에서는 진짜로 AI에 가까워지지 않을까 싶었다.
추가적으로, 다양한 task를 합치려고 손실함수를 합하다 보면, 서로 반대방향으로 작용하는 경우가 발생한다고 한다. 이 문제에 대해 conficting gradients라고 해서 내적을 통해 계산하는 방법을 소개해주었다.
즉, 아직 멀티 태스크 러닝은 말 그대로 다양한 태스크를 뭉쳐놓은 것이기 때문에 손실함수에 대한 명확한 기준세우기도 어렵고, 아직은 연구될 부분이 많은 분야라고 느껴졌다. 다만, 인간이 사고하는 과정을 다시한번 돌이켜보고, 어떤 식으로 task를 결합할지를 고민해본다면 굉장히 흥미로울 것 같다는 생각이 든다. 충협이 설명은 늘 간결하고 직관적인 것 같다. 복잡하지 않고 정확하게 가려운 부위를 잘 긁어준 좋은 시간이라는 생각이 든다. 이해하기 쉽게 설명해준 충협이에게 감사의 인사를 전한다.

이번 세미나는 multi-task learning에 대해 충협이형이 발표를 해주었다. Multi-task learning이란 여러 태스크들의 공통점과 차이점을 활용하면서 동시에 해결하는 분야이다. 이를 활용하면 여러 task를 하나의 모델로 해결할 수 있다.
이 multi-task learning이라는 개념이 transfer learning 그리고 multi-label learning과 유사하다. 하지만 그 차이를 보면 transfer learning은 source task로 얻은 지식을 target task로 "전이"하는 것이고 multi-task learning은 모든 task들이 동시에 target과 source 구분 없이 학습되며 실시간으로 각 task에 대한 지식을 공유한다. multi-label learning은 각 관측치 별로 여러 개의 레이블이 존재하며 동시에 여러 레이블들을 학습한다. multi-task learning과의 차이는 여러 데이터셋을 구성할 수 없다는 것이다. 포함 관계를 따지자면 transfer learning > multi-task > multi-label로 볼 수 있다.
multi-task learning에서는 여러 task를 동시에 학습하기 때문에 loss function이 각각 task에 대한 loss term의 합으로 나타나는데 이 때 각 task 별로 weight를 어떻게 정해줄지도 어려운 문제이다. 보통 동등한 weight를 사용하며 가중치에 따라 task 별 성능의 trade-off가 일어난다.
이번 세미나에서는 multi-task learning에 대한 모호했던 개념을 확실히 알 수 있게 되었다. 개인 연구를 진행하면서 multi-task를 사용하고 있었는데 더 깊이 이해할 수 있게 되었다. 좋은 세미나를 준비해준 충협이형에게 감사드리며 세미나 후기를 마친다.

금일 세미나는 multi-task learning을 주제로 진행되었다. multi-task learning은 transfer learning과 multi-label learning과 유사한 개념이다. Multi-label learning은 multi-task learning에 포함되는 개념이며, multi-task learning은 transfer learning에 포함된다. Transfer learning은 source task에서 학습한 지식을 활용하여 target task를 잘 하는 것이 목표이다. Multi-task learning은 source task와 target task의 구분이 없으며 각 task를 통해 얻은 지식을 공유하여 모든 task를 잘 수행하는 것이 목표이다. Multi-label learning은 하나의 dataset을 사용하는 경우이며 각 데이터에 존재하는 다수의 레이블을 동시에 학습한다. multi-task learning은 여러 데이터 셋으로 구성될 수 있는 것과 차이가 있다. Multi-task learning을 수행하는 방법론에는 데이터의 task 상태 정보가 사용된다. 상태 정보를 나타내는 방법은 one-hot vector, embedding vector 등이 있다. Multi-task learning을 수행하면 지식 공유, 과적합 방지, 계산 효율성, 현질 적용 가능성 측면에서 장점이 있다. 그러나 연관성이 적은 task를 학습할 때 단일 모델에 비해 성능이 떨어지는 negative transfer, task별 차이가 클 때 task balancing이 어렵다는 단점도 있다. 본 세미나는 단점을 해결하기 위한 multi-task learning의 최신 동향도 소개한다.
최근 multi-label learning을 활용해보고자 했는데 본 세미나에서 유사한 task 간의 비교를 해주셔서 도움이 되었다. 유익한 세미나를 진행해주신 충협 오빠에게 감사의 말씀을 전한다.