ROKO

[coursera] Introduction to ML Strategy: Week 2 본문

Artificial Intelligence/Deep Learning

[coursera] Introduction to ML Strategy: Week 2

RO_KO 2024. 7. 2. 00:43
728x90

Error analysis

90%의 정확도를 보이는 고양이 분류기를 만들었다. 그런데 고양이 분류기가 자꾸 강아지를 오분류하자. 동기가 강아지의 경우를 잘 튜닝하도록 모델을 학습하는 것이 어떤지 물었다. 이 과정에 들어간 기회비용을 따졌을때 강아지에 대한 경우에 집중하는게 좋을까?

 

이를 쉽게 판단하기 위한 방법이 error analysis이다. 100개의 오분류 데이터를 가져와 강아지였던 경우를 센다. 만약 100개의 데이터에서 5개의 강아지 사진이 나왔다면 10% error에서 5/100 만큼의 오류를 해결할 수 있다는 뜻이고 9.5% error로 낮출 수 있다. 이렇게 보면 오른 성능에 대비해 좋은 선택이 아니라는 것을 알 수있다. 만약 50/100 이 강아지였다면 10% error에서 5% error로 낮출 수 있으므로 좋은 선택이 될 것이다.

 

여러개의 경우를 따지는 상황에서는 table를 만들어 앞의 순서와 같이 오분류 데이터를 가지고 각 경우에 해당하는 비율을 계산하고 많은 비율 차지하는 경우에 집중해 해결하는 과정을 거친다.

 

Incorrectly labeled data

mislabeled data가 있는체로 학습하게 되면 모델이 잘못된 출력을 할 우려가 있다. 그러나 딥러닝 모델은 training set에서의 random error는 큰 영향을 미치진 않는다. 학습데이터에서 큰 비율을 차지하지 않기 때문이다. 물론 많은 비율을 차지한다면 label을 수정하는 과정이 필요할 것이다. 딥러닝 모델은 주로 systemic error에 크게 반응한다.

 

잘못 label된 데이터는 주로 dev/test set에서 다루게 된다. train set에 비해 데이터가 적어 잘못 label된 데이터의 비율이 높고 모델을 선정하는 성능을 평가하기 위한 기준이 되므로 정확성이 중요하기 때문이다. 만약 오분류 데이터를 살펴볼때 false negative와 false postivie 모두 잘 확인해야한다.

 

Training and Testing on different distributions

분포가 달라서 생기는 문제를 어떻게 해결할까?

  1. 다른 두 분포로부터 나온 데이터를 합치고 섞은뒤 다시 train/dev/test 분할
  2. 타겟하는 분포의 데이터를 반으로 쪼개 하나는 train set과 합치고 나머지는 dev/test로 활용

1번의 경우 타겟 분포의 데이터가 train set에 비교적 많이 들어가 좋을수도 있지만 모델을 선택하는 근거는 dev set에 있다. dev set의 비율은 타켓 분포보다 다른 분포의 데이터가 많아지므로 최종적으로 잘하고자 하는 분포에서는 성능이 떨어지는 모델이 선정될 수 있다.

 

2번의 1번과 반대로 train set에 타겟분포의 데이터가 많이 포함되지는 않지만 dev set을 모두 타겟 분포의 데이터로 사용하여 최대한 타겟에 잘 작동하는 모델을 선정 할 수 있다.

Bias and Variance with Mismatched Data Distributions

이전에 적용한 bias 와 variance를 통해 모델을 조정하는건 train/dev/test가 같은 분포에서 올때의 가정이였다. 하지만 위 경우는 train과 dev/test가 다른 분포이므로 그대로 적용해서는 안된다. 이를 위해서 같은 분포 training-dev set을 train set으로부터 추출해서 사용할 수 있다. 그렇게 하면 bias와 variance 분석을 그대로 적용할 수 있다.

 

training-dev set을 활용했을때 train과 training-dev set의 error는 작은데 dev와의 차이가 크다면 이 경우는 data mismatch problem에 해당한다.

 

Addressing data mismatch

  • manual error analysis to try to understand the difference between train and dev/test sets
  • make train data more similar; collect more data similar to dev/test sets
    • artificial data synthesis

인공 데이터 합성은 좋은 방법이지만 타켓 분포 데이터에 너무 과적합 되는것을 조심해야한다.


Transfer learning

When transfer learning makes sense

  • Task A and B have the same input X
  • Have a lot more data for Task A than Task B
  • Low level features from A could be helpful for learning B

Multi-task learning

ex) 하나의 이미지가 여러개의 label을 가진 경우

 

When multi-task learning makes sense

  • Training on a set of tasks that could benefit from having shared lower-level freatures
  • Usually: Amount of data you have for each task is quite similar
  • Can train a big enough neural network to do well on all the tasks

End-to-end deep learning

데이터가 많을 수록 잘된다. 적을 경우 기존의 전통적인 방식이 잘된다.

 

Pros:

  • Let the data speak
  • Less hand-designing of components needed

Cons:

  • Many need a large amount of data
  • Excludes potentially useful hand-designed components
728x90
Comments