Mismatched training and dev/test set |
1. Training and testing on different distributions |
2. Bias and Variance with mismatched data distributions |
3. Addressing data mismatch |
1. Training and testing on different distributions
위와 같은 경우에 아예 randomly shuffle하고 train, dev/test set을 나누면 사실상 train set으로 dev/test 를 진행하는 것과 같다. 우리의 최종목표는 오른쪽의 사진들에 대해 모델을 적용시키는 것이므로 제일 이상적인 것은 오른쪽 사진들에 대한 데이터를 많아 모아 train, dev/test 시키면 되지만, 데이터가 부족한 경우 dev/test만이라도 오른쪽 사진들로 구성해야한다. 그래야 내가 만든 모델의 실사용에 있어 얼마만큼의 효과를 가지는지 측정하고 hyperparameter를 수정할 수 있으며, 마지막으로 test하여 성능을 평가할 수 있다.
cf) dev는 여러 모델 중 어느 모델을 선택할지에 대한 기준을 제시해줌. dev/test는 실제 목표데이터로 구성하여 우리가 원하는 target을 설정할 수 있음.
이 때, train에 오른쪽 사진데이터를 일부 포함시킬지 말지는 선택할 수 있다.
2. Bias and Variance with mismatched data distributions
- 만약 train과 dev/test의 분포가 같다면, 두 error의 차이가 클 때 variance의 문제라고 판단할 수 있지만, 분포가 다르다면 이게 variance의 문제인지 분포가 달라서인지 알 수가 없다.
- 이를 해결하기 위해 Train set의 일부를 추출하여 Train-dev set을 만들 수 있다. 이 오류를 dev 오류와 비교하여 data mismatch 정도를 파악할 수 있는 것. 왜냐하면 train-dev는 기본적으로 train으로부터 추출되기에 dev/test와 분포가 다르기 때문이다(물론 애초에 train과 dev/test를 다른 분포로 나누었을 때).
- 정리하자면 위와 같이 bias, variance, data mismatch, overfitting to dev set 문제를 파악할 수 있다.
3. Addressing data mismatch
먼저, error analysis를 통해 어떤 요인이 error에서 큰 부분을 차지하는지 파악한다. 이걸 이용해서 dev와 train set의 차이점이 무엇인지에 대한 insight를 얻는다.
ex) 음성인식을 예로 들때, dev set에서 noisy 한 데이터가 error의 많은 부분을 차지한다는 것을 파악.
=> dev set에 noisy data가 많다.
그 다음 dev set과 비슷한 데이터를 모으거나 인공적으로 만들어 train 시킨다.
ex) 음성인식의 예에서, 정상적으로 녹음된 음성에다가 자동차 실내의 noisy를 인위적으로 합성하는 방법이 있다. 이 과정에서 특정 noisy만 반복해서 활용된다면 그 noisy에 overfit될 가능성이 있으니 주의해야함.
비판과 질문은 언제나 환영입니다. 많이 꾸짖어주세요.
'DeepLearning Specialization(Andrew Ng) > Structuring Machine Learning Projects' 카테고리의 다른 글
[Week 2] 4. End-to-end Deep Learning (0) | 2020.10.30 |
---|---|
[Week 2] 3. Learning from multiple tasks (0) | 2020.10.30 |
[코세라] [Week 2] 1. Error Analysis (0) | 2020.10.30 |
[Week 1] 3. Comparing to human-level performance (0) | 2020.10.27 |
[Week 1] 2. Setting up your goal (0) | 2020.10.27 |