Error Analysis
Carrying Out Error Analysis
error를 일으키는 원인이 performance에 얼마나 영향을 미치는지 수치적으로 확인하여 우선순위를 정한다.
영향을 많이 미치는 요인을 해결하는 것이 짧은 시간에 높은 performance의 변화를 만들 가능성이 크다.
Cleaning Up Incorrectly Labeled Data
DL algorithms are pretty robust to random errors in the training set
Incorrectly labeled data가 dev set error에 얼마나 영향을 미치는지를 수치로 판단하여 이를 수정하는데 집중할 것인지 아닌지를 결정하는 것이 좋다.
하지만 수치적으로 판단하기가 어려운 게 현실일 듯.
- Apply the same process to your dev and test sets to make sure they continue to come from the same distribution
- Consider examining examples your algorithms got right as well as ones it got wrong
- Train and dev/test data may now come from slightly different distributions
Build your First System Quickly, then Iterate
- Set up dev/test set and metric
- Build the initial system quickly
- use Bias / Variance analysis & Error analysis to prioritize the next steps
Mismatched Training and Dev/Test Set
Training and Testing on Different Distributions
200,000 data from webpages, 10,000 data from mobile app
Option 1: Shuffle all of them, and divide the train/dev/test set with the same distribution
Option 2: 200,000 + 5,000 / 2,500 / 2,500 (Same distribution for dev/test set)
Bias and Variance with Mismatched Data Distributions
Training-dev set: Same distribution as the training set, but not used for training
human level <-- avoidable bias -- > training error <-- variance --> training-dev set error <-- data mismatch --> dev error <-- degree of overfit to dev set --> test error
Addressing Data Mismatch
Carry out manual error analysis to try to understand the difference between training and dev/test sets
Make training data more similar, or collect more data similar to dev/test sets (ex. data synthesis)
Learning from Multiple Tasks
Transfer Learning
Ex. use pretrained image recognition model for radiology diagnosis, pretrained speech recognition model for wake word/trigger word detection
task B에 대한 데이터가 작을 때, 비슷한 task A를 학습시킨 모델을 이용하는 방법이다.
Multi-task Learning
이미지에 차, 표지판, 신호등, 보행자가 각각 있는지 확인하는 task가 있다고 하자.
물론 이 task를 4개의 task로 만들어 각각의 model을 만들어 취합하는 방법이 있겠지만 그것보다 하나의 task로 model을 만드는 것이 더 좋다고 한다. (low-level feature을 공유하고 data를 늘릴 수 있기 때문에)
이는 multi-task를 수행할 수 있을 정도의 충분히 큰 model을 훈련시킬 수 있기 때문이다.
End-to-end Deep Learning
What is End-to-end Deep Learning?
audio -> feature -> phonemes -> words -> transcipt => audio -------------> transcipt (straight)
data가 충분하지 않다면 step을 나누는 것이 더 좋은 performance를 낸다.
Whether to use End-to-end Deep Learning?
장점: 복잡한 system 대신 간단한 모델 하나만 만들면 된다.
단점: 많은 데이터가 필요하다, 유용할 가능성이 있는 hand-designed 요소들을 배제한다 (더 좋은 결과를 낼 것이라 기대하고 사람이 임의로 판단하여 추가시키는 요소들)
Use Deep Learning to learn individual components
Carefully choose X -> Y depending on what task you can get data for
'Google Machine Learning Bootcamp 2022 > Structuring Maching Learning Project' 카테고리의 다른 글
1. ML Strategy (0) | 2022.07.20 |
---|
댓글