전이학습 (Transfer Learning)

컴퓨터과학·AI
한 줄 정의: 한 작업에서 학습한 모델의 지식을 다른 관련 작업에 재활용해 더 적은 데이터로도 빠르게 학습시키는 기법입니다.

쉽게 풀면

자전거를 탈 줄 아는 사람이 오토바이를 처음 배운다고 생각해봅시다. 완전히 백지 상태에서 시작하는 것보다 훨씬 빠르게 익힐 수 있습니다. 균형을 잡는 감각, 핸들을 조작하는 요령 같은 것을 이미 몸에 익혔기 때문입니다. 전이학습도 이와 비슷합니다. 이미 수백만 장의 이미지나 방대한 텍스트로 미리 학습되어 선, 모양, 문법 구조 같은 기본적인 특징을 파악하고 있는 모델(사전학습모델)을 가져와서, 내가 풀고 싶은 새로운 문제에 맞게 일부만 다시 학습시키는 것입니다. 처음부터 모든 것을 새로 가르칠 필요가 없으니 데이터가 적어도, 시간이 짧아도 좋은 성능을 낼 수 있습니다.

왜 중요한가

대량의 라벨링된 데이터를 모으기 어려운 의료, 소수 언어, 특수 산업 분야에서 전이학습은 적은 자원으로도 실용적인 성능을 낼 수 있게 해주는 핵심 전략입니다. 대규모 사전학습모델의 등장 이후 대부분의 딥러닝 응용 연구는 처음부터 모델을 학습시키기보다 기존 모델을 어떻게 효율적으로 전이·적응시킬지를 다루는 방향으로 옮겨가고 있습니다.

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

"본 연구는 ImageNet으로 사전학습된 ResNet-50 모델에 전이학습을 적용하여, 소량의 의료영상 데이터만으로도 병변 분류 정확도를 92%까지 끌어올렸다."

이 문장은 일반 이미지로 미리 학습된 모델을 가져와 소수의 의료영상 데이터로 추가 학습시켰더니, 처음부터 학습했을 때보다 훨씬 적은 데이터로도 높은 정확도를 얻었다는 뜻입니다.

"대규모 코퍼스로 사전학습된 언어모델에 전이학습을 적용해 소수의 도메인 특화 문서만으로 법률 문서 분류기를 구축하였다."

자연어처리 분야에서 일반 텍스트로 학습된 언어모델을 특정 전문 분야 문제에 재활용한 사례입니다.

"음성 인식 모델의 초기 계층 가중치를 고정한 채 전이학습을 수행하여 저자원 언어에서도 안정적인 성능을 확보하였다."

음성처리 분야에서 데이터가 부족한 언어를 대상으로 전이학습을 적용한 예시입니다.

조금 더 깊게 보면

전이학습을 구현하는 방식은 크게 사전학습모델의 일부 계층만 새로 학습시키는 방식과, 전체 가중치를 그대로 둔 채 마지막 출력층만 새로 붙이는 방식(특징 추출, feature extraction)으로 나눌 수 있습니다. 어느 계층까지 고정하고 어느 계층부터 다시 학습시킬지는 원본 작업과 대상 작업의 유사도, 가용 데이터 양에 따라 달라지며, 최근에는 전체 모델을 재학습하는 대신 일부 파라미터만 추가로 학습하는 경량화된 방식도 널리 쓰입니다.

주의할 점

전이학습은 파인튜닝과 같은 말로 혼동되기 쉽지만, 엄밀히는 파인튜닝이 전이학습을 실제로 구현하는 대표적인 방법 중 하나입니다. 또한 원래 모델이 학습한 데이터(원본 작업)와 새로 풀려는 문제(대상 작업)가 너무 다르면 오히려 성능이 떨어지는 "부정적 전이(negative transfer)"가 일어날 수 있어, 두 작업 사이의 유사성을 고려해야 합니다.

관련 용어