본문 바로가기

DeepLearning Specialization(Andrew Ng)/Structuring Machine Learning Projects

[Week 2] 3. Learning from multiple tasks

728x90
Learning from multiple tasks
1. Transfer learning
2. Multi-tasking learning

1. Transfer learning

 

1) 기본 개념

 

 Transfer learning이란 특정 task(A)를 위해 만든 모델을 다른 task(B)를 위해 활용하기 위한 기법이다. 예를 들어 image recognition을 위한 모델을 만들고 이를 약간의 수정으로 radiology diagnose에 활용하는 것. 

 이를 위해서 output layer의 W와 b를 초기화하고 task B의 데이터로 초기화한 W와 b를 학습시킨다. 이 때, task B의 데이터가 많다면 더 많은 층의 W와 b를 학습시키면 된다. 왜냐하면 task B의 데이터가 많아질 수록 transfer 의 효용성이 떨어지기 때문. 당연히 task B의 데이터가 정말 많으면 그걸로만 학습시켜서 만들면 됨. 따라서 task B의 데이터가 많아질 수록 더 많은 W와 b를 초기화하여 task B에 맞는 모델을 만들면 된다. 

 

 Transfer learning의 기본개념은 다음와 같다. 위의 예시의 경우, radiology 데이터가 충분하지 않을 때 효과적인 모델을 만들기 위해서 image recognition 모델로 학습된 W와 b를 활용하는 것으로, 둘 다 이미지를 분석하기에 수많은 low-level이 학습된 image recognition 모델이 도움이 되는 것이다(이미지를 인식하는 법이 학습된 것). 같은 방법이 audio 분야에도 적용가능. speech recognition => wakeword detection(OKGoogle)

 

cf) 참고로 transfer 과정에서 output layer를 바꿀 때, 새로운 층을 추가하거나 노드를 늘리는 등의 작업이 가능.

 

2) 조건

 

 Transfer learning의 기본개념으로 말미암아 다음과 같은 조건들에서 Transfer learning은 효용성을 가진다.

 


2. Multi-task learning

 

1) 기본 개념

 

 기존의 logistic regression이나 softmax와는 다르게 여러 개의 task를 한번에 해결하는 모델을 만드는 것이 multi-tasking learning 이다. 위와 같이 output layer의 각 노드는 해당 task를 각각 의미하고, 따라서 복수의 1값을 가진다. 

 

2) 장점 

 

 각각의 task에 대해서 개별적으로 모델을 만드는 것보다 더 나은 성능을 보여준다. 즉, 보행자 감지, 차 감지, stop sign 감지 등등에 대해서 각각의 모델을 만드는 것보다 다 같이 모아서 학습시키면 앞쪽 layer들은 이에 대해 공통으로 학습하기 때문이다. low-level에 대해서 공통적인 학습 습성을 가진다는 transfer learning의 원리와 비슷. 

 

3) 주의할 점

 

 각각의 task에 대한 example의 수가 비슷해야 어떤 task에 대해서도 그것을 제외한 다른 example이 압도적으로 많아지고(생각해보면 당연한 얘기. 쏠리면 안됨), 그것은 multi tasking 성능향상에 도움이 된다. 공통으로 학습되는 수가 많아지기 때문. 

 

 

728x90