전이학습(transfer learning) 재밌고 쉽게 이해하기

전이학습을 직관적으로 이해하실 수 있도록 제가 아주 짧은 소설을 만들어냈습니다. ㅋㅋ


한 명의 개발자가 있습니다. 이 개발자는 개, 고양이, 말, 소, 양을 구별할 수 있는 이미지 분류용 CNN 모델을 만들어야합니다. 보스가 시켰으니까요. 그래서 이 개발자는 수많은 개, 고양이, 말, 소, 양의 이미지를 인터넷상에서 많이 찾아왔습니다. 이 이미지들을 가지고 CNN 모델을 훈련시켰습니다. 수많은 테스트를 통해 최적의 모델 가중치(weights)를 찾아냈습니다. 즉, CNN 모델 내의 많은 가중치들이 개, 고양이, 말, 소, 양을 분류하기에 적합하도록 조정이 된 것이죠. 

 

그런데 갑자기 보스가 개, 고양이, 말, 소, 양은 분류할 필요가 없어졌다고 합니다. 그것 대신 사슴, 코끼리, 토끼, 염소, 호랑이를 분류할 수 있는 모델을 만들어달라고 합니다. 최대한 빨리. 이 개발자는 너무나 짜증이 났습니다. 힘들게 모델을 만들었는데, 무용지물이 되고 만 것이죠. 다시 처음부터 이 과정을 반복하자니 너무 막막합니다. 그래서 개발자는 아이디어를 냅니다. '동물들 종류만 바뀌었지 동물의 종을 분류해내야하는 것은 동일하니 이전에 만든 모델의 가중치를 가져와서 그것을 추가적으로 새로운 과제에 맞게 조정해보면 어떨까?' 이 개발자의 아이디어는 통했습니다. 아예 처음부터 새로 훈련하는 것보다는 훨씬 더 빠르게 수렴했습니다. 생각보다 빠른 시간내에 새로운 분류기를 만들어낸 것이죠. 이 개발자는 의기양양하게 보스를 찾아갑니다.

 

"보스, 다 만들었습니다."

"오 벌써 만들었다고? 자네 대단한 인재군. 연봉 좀 높여줘야겠어."

"보스, 사랑합니다. 전이학습 만세!"


 

재밌게 읽으셨나요? (재미없죠? ㅋㅋ) 

 

언젠가부터 컴퓨터비전 분야에서는 전이학습(transfer learning)을 사용하여 좋은 성능을 내는 논문들을 많이 접하게 되는 것 같습니다. 좋은 학습법이라는 증거죠. 

 

항상 질문과 지적은 환영합니다. 빠르게 답변드리도록 노력하고 있으니 댓글 남겨주세요.^^ 

댓글()