티스토리 뷰
만약 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를 번역한 내용입니다.>
- 이때 h(x)는 신경망으로부터 나온 예측값(hypothesis)이고, y는 실제 label인 것이다. 결국 이 식이 의미하는 것은 hypothesis와 실제값간의 오차를 줄임으로써 알고리즘의 성능을 개선시키는 것이다. [본문으로]
'Study > AI' 카테고리의 다른 글
[MLY] 데이터 불일치 해결하기 (0) | 2018.10.05 |
---|---|
[MLY] Bias, Variance, Data mismatch 오류 확인하기 (0) | 2018.10.05 |
[MLY] 학습 데이터부터 개발 데이터까지 일반화하는 방법 (0) | 2018.10.03 |
[MLY] 모순된 데이터를 넣을지 여부를 결정하는 방법 (0) | 2018.10.03 |
[MLY] 당신이 가진 데이터 모두를 사용해야 할지 여부를 결정하는 방법 (0) | 2018.10.02 |
[MLY] 각각 다른 분포상에서 train과 test를 해야 되는 경우 (0) | 2018.10.01 |
[MLY] 인간 성능을 극복하는 것 (0) | 2018.09.30 |
- Total
- Today
- Yesterday
- PowerPoint
- Expression Blend 4
- Kinect
- Offline RL
- 한빛미디어
- Pipeline
- TensorFlow Lite
- Policy Gradient
- Windows Phone 7
- Kinect SDK
- Distribution
- DepthStream
- 딥러닝
- Off-policy
- reward
- SketchFlow
- dynamic programming
- processing
- ai
- End-To-End
- ColorStream
- 강화학습
- Gan
- windows 8
- Kinect for windows
- bias
- 파이썬
- Variance
- RL
- arduino
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |