다중 과제 학습 (multi-task learning)

컴퓨터과학·AI
한 줄 정의: 여러 과제를 하나의 모델로 동시에 학습시켜 서로의 성능을 끌어올리는 기법입니다.

쉽게 풀면

관련 있는 여러 일을 한꺼번에 배우게 하면, 공통으로 쓸모 있는 표현이 자연스럽게 만들어집니다. 예를 들어 얼굴 사진에서 나이와 성별과 표정을 동시에 맞히도록 학습시키면, 얼굴의 일반적인 특징을 담은 층이 세 과제 모두에 도움이 되는 방향으로 다듬어집니다. 과제들이 서로에게 일종의 정규화 역할을 해 주는 셈입니다.

왜 중요한가

데이터가 적은 과제가 데이터가 풍부한 과제에 얹혀 갈 수 있어, 자원이 부족한 문제를 다룰 때 특히 유용합니다. 하나의 모델로 여러 출력을 내므로 배포 비용과 메모리도 절약됩니다. 최근의 대규모 언어 모델이 여러 과제를 한 모델로 처리하는 방식도 이 아이디어의 확장선에 있습니다.

논문에서는 이렇게 쓰입니다

"개체명 인식과 품사 태깅을 다중 과제 학습으로 함께 훈련한 결과, 저자원 언어에서 단일 과제 모델 대비 F1이 유의하게 향상되었다."

두 과제를 함께 학습시키자 데이터가 부족한 언어에서 성능이 올라갔다는 보고입니다.

조금 더 깊게 보면

대부분의 구현은 하위 층을 공유하고 과제별로 별도의 출력 헤드를 두는 하드 공유 구조를 씁니다. 과제별 손실을 어떤 비율로 합칠지가 핵심 설계 변수이며, 불확실성에 기반해 가중치를 자동으로 정하거나 경사 방향의 충돌을 완화하는 기법이 제안되어 있습니다. 관련성이 낮은 과제를 억지로 묶으면 서로의 학습을 방해하는 부정적 전이가 발생하므로 과제 묶음을 정하는 일 자체가 연구 주제입니다.

주의할 점

전이학습이 한 과제에서 배운 것을 나중에 다른 과제로 옮기는 순차적 과정이라면, 다중 과제 학습은 여러 과제를 같은 시점에 함께 최적화한다는 점이 다릅니다. 공유가 항상 이득은 아니어서, 과제 간 상충으로 개별 성능이 단일 모델보다 낮아질 수 있습니다.

관련 용어