티스토리 뷰

Study/AI

[MLY] 데이터에 가중치 부여하기

생각많은 소심남 2018. 10. 3. 17:01

 만약 200000개의 이미지를 인터넷으로부터 받고, 5000개의 이미지를 모바일 앱 유저로부터 받았다고 가정해보자. 데이터 사이즈 비율은 40:1 정도가 된다. 이론적으로는 충분히 큰 신경망을 만들고 205000개의 이미지를 충분히 학습시켰다면, 인터넷 이미지와 모바일 이미지 상에서 잘 동작하는 알고리즘을 만드는데 지장이 없다.

 그러나 실전에서 모바일 이미지보다 인터넷 이미지가 40배 정도 더 많은 것은 단순히 5000개의 이미지만을 가지고 학습하는 것에 비하여 두 모델을 학습하는데 있어 40배(나 그 이상의) 연산 리소스를 사용해야 하는 것을 의미한다. 

 만약 그걸 감당할 만큼 충분한 연산 리소스가 없다면, 인터넷 이미지의 비율을 타협할 수 있을 만큼 낮춰야 한다.

예를 들어 최적화를 하는 데 있어서 squared error를 초점에 맞추고 있다면(분류 작업시 이는 좋은 방법이 아니지만, 설명을 위한 예시로써 단순화해보았다) 학습 알고리즘은 다음 항목을 최적화하려 할 것이다.

$$\min_{\theta}(\sum_{(x,y)\in MobileImg} (h_{\theta}(x)-y)^2+\sum_{(x,y)\in InternetImg} (h_{\theta}(x)-y)^2)$$[각주:1]

첫번째 합은 5000개의 모바일 이미지에 대한 항목이고, 두번째 합은 200000개의 인터넷 이미지에 대한 항목이다. 위 식 대신에 새로운 계수인 β를 사용해서도 최적화 할수 있다.

$$\min_{\theta}(\sum_{(x,y)\in MobileImg} (h_{\theta}(x)-y)^2+\beta\sum_{(x,y)\in InternetImg} (h_{\theta}(x)-y)^2)$$

만약 β=1/40라고 설정했으면, 알고리즘은 5000개의 모바일 이미지에 대한 가중치와 200000개의 인터넷 이미지에 대한 가중치를 같게 줄 것이다. 물론 개발 데이터 비율을 조절하는 것을 통해 β를 다른 값으로 줄 수도 있다.

 이렇게 추가로 삽입한 인터넷 이미지에 가중치를 부여함으로써, 두개의 데이터에 모두 잘 동작하는 알고리즘을 위한 큰 신경망을 만들 필요가 없다. 이렇게 가중치를 재조정하는 작업은 (인터넷 이미지와 같이) 추가로 삽입한 데이터가 개발/테스트 데이터와는 다른 분포를 가지고 있는 것을 의심하거나, 혹은 추가로 삽입한 데이터가 (모바일 이미지와 같이)개발/테스트 데이터 같이 같은 분포를 띄는 데이터보다 훨씬 많을 경우에만 필요하다.

< 해당 포스트는 Andrew Ng의 Machine Learning Yearning 중 chapter 39. Weighting data를 번역한 내용입니다.>

  1. 이때 h(x)는 신경망으로부터 나온 예측값(hypothesis)이고, y는 실제 label인 것이다. 결국 이 식이 의미하는 것은 hypothesis와 실제값간의 오차를 줄임으로써 알고리즘의 성능을 개선시키는 것이다. [본문으로]
댓글