캐글

[Kaggle Study] 9. About Structuring ML Projects (3) - Transfer learning & Multi-task learning

dongsunseng 2024. 11. 14. 02:36
반응형

This post is a summary of Coursera Andrew Ng's lecture:

 

머신 러닝 프로젝트 구조화

DeepLearning.AI에서 제공합니다. 딥러닝 전문 과정의 세 번째 과정에서는 성공적인 머신러닝 프로젝트를 구축하는 방법을 배우고 머신러닝 프로젝트 리더로서 의사 결정을 연습할 수 있습니다. 이

www.coursera.org

 

이 포스트는 전 포스트의 내용과 이어집니다:

 

[Kaggle Study] 8. About Structuring ML Projects (2)

This post is a summary of Coursera Andrew Ng's lecture: 머신 러닝 프로젝트 구조화DeepLearning.AI에서 제공합니다. 딥러닝 전문 과정의 세 번째 과정에서는 성공적인 머신러닝 프로젝트를 구축하는 방법을 배

dongsunseng.com

Learning from Multiple Tasks

#1 Transfer Learning

  • 하나의 작업에서 훈련한 모델을 다른 작업에서 사용하는 것이 Transfer learning 임
  • 위의 예시에서는 image recognition 모델을 다른 작업인 radiology diagnosis를 하도록 TRANSFER(adapt)
    1. Last output layer를 삭제하고 해당 layer로 feeding 되는 가중치도 삭제함
    2. 새로운 Last output layer를 위한 randomly initialized weights를 초기화함
    3. Radiology diagnosis에 쓰일 데이터 준비 (x, y)
    4. 새로운 데이터셋으로 모델을 RETRAIN (Retrain 하는 방식에는 몇 가지 옵션이 있음)
  • 새로운 데이터셋의 크기가 크다면 모든 layer의 가중치를 새롭게 학습시켜도 되지만 그게 아니라면 마지막에서 1~2개의 layer만 다시 학습함
  • image recognition 데이터로 모델을 먼저 학습시키는 과정을 Pre-training이라고 표현함
  • 이후 radiology diagnosis 데이터로 모델을 retrain 하는 과정을 Fine-tuning 이라고 표현함
  • 기본적으로 이미지를 인식하는 방법 등과 같은 low level의 기능에 대해 먼저 성능을 향상시키고 나서 특정 작업에 대해 fine-tuning 하기 때문에 성능이 더 좋게 나옴
  • 일반적으로 pre-training 과정에서 사용할 수 있는 데이터의 양이 많고 이후 특정 작업에 대해 fine-tuning 할 때 사용할 데이터의 양이 부족한 경우 Transfer learning 기법을 사용하면 효과적임

  • same input이라는 것은 인풋의 종류를 말함: 오디오 데이터, 이미지 데이터, ...

#2 Multi-task Learning

  • Transfer learning과 다르게 하나의 뉴럴 네트워크가 여러가지 작업을 동시에 학습함
  • 각각의 학습되는 작업들이 서로 상호보완적으로 작용함: 서로 도움이 됨

  • 예를 들어, 자율 주행 자동차는 위의 목록들을 모두 인식할 수 있어야 함
  • x(i)에 따른 y(i)가 한 가지가 아님: 위의 목록들의 유무에 대한 행렬 4 by m

  • softmax regression(multi-class classification)과 다름: task 자체가 여러 개임
  • 물론 각각의 task 별로 뉴럴 네트워크를 만들 수도 있겠지만 task 간의 공통적으로 공유하는 기능이 있으면 Multi-task learning이 더 효율적일 수 있음
  • 또 하나의 특징은 y 데이터의 누락된 값(label)들이 있더라도 해당 데이터를 사용하여 학습이 가능하다는 것임
    • 손실함수의 빨간색으로 표시된 sigma j 에서 누락 값을 무시한 채 sum 해주면 됨

  • 100개의 작업을 학습하는 모델에 데이터가 1000개씩 있다면 하나의 모델로 학습하기 때문에 다른 작업에 해당하는 99,000개로 학습한 모델이 나머지 하나의 작업에 대한 부분을 학습할 때 도움을 줌
  • 마지막 조건을 만족시키지 못한다면 각각의 작업에 대한 뉴럴 네트워크를 각각 만들어 주는 것이 나음

It’s not who I am underneath, but what I do that defines me.
- Conor Mcgregor -
반응형