본문 바로가기
Google Machine Learning Bootcamp 2022/Structuring Maching Learning Project

2. ML Strategy

by 사향낭 2022. 7. 21.

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

 

 

댓글