본 정리는 ML 모델을 구현하고 훈련하는데 있어 더 효과적인 방법을 선택하는 방법이다.
실제 성능을 높이기 위해서는 각 단계마다 정해진 메뉴얼을 파악하여 진행해야한다.
이 방법이 적용되는 이유는 각 단계에서의 문제를 해결하는 것이 orthgonal 하기 때문이다.
추상적인 4가지 단계
1. training set에서 잘 훈련해야한다.
- 더 복잡한 NN 에서 훈련하거나 optimizer에 변화를 준다.
2. Dev set에 대한 수치도 잘 측정되어야 한다.
- Regularization(variance 규제)를 적용하거나 training set을 더 크게 바꾼다.
3. test set에 대한 수치도 잘 측정되어야 한다.
- 더 큰 dev set으로 바꿔서 진행해야 한다.
4.실제 서비스에서 원하는 결과대로 도출되어야 한다.
- dev set을 바꾸거나 cost function을 바꾼다.
4 단계의 문제에 따른 메뉴얼을 진행해도 orthogonal하기에 분할해서 고려할 수 있다.
single number evaluation metric
실제로 빠르게 모델의 성능을 평가한다고 했을 때, 하나의 숫자로 평가하면 빠르다.
대표적인 평가 척도
- precision
- 정답이라고 예측한 것들 중, 진짜 정답인것에 대한 비율
- recall
- 실제 정답들 중, 실제로 정답이라고 예측한 것에 대한 비율
위 둘을 이용해 조화평균으로 표현할 걸 평가척도로 쓴다. (F1_score)

아니면 모든 수치들의 평균을 평가척도로 쓰는 방법도 있다.
위 2 용어는 강의를 통해 알게 되었는데,
satisficing은 용어 그대로, 해당 측정 element에 대해서 특정 기준을 만족하면 괜찮은 모델이라고 판단할 수 있게 해주고, optimizing은 해당 측정 element에 대해서 제일 나은 값을 구하는 것이다.
모델을 선택할 때 요소들이 있다면, 한 가지는 optimizing, 나머지는 satisficing으로 두고 모델을 비교하여 선택한다고 한다.
위 2가지로 좋은 모델을 선택할 수 있다.
그 이유는 dev set은 실제 모델이 도출해야할 결과를 측정하는 역할을 하고 있다. 그렇기 때문에 dev set에서 좋은 모델이라고 평가받은 모델은 test에서도 좋아야하고, 안 좋다면 같이 안 좋은 것이 정상이다.
dev set으로 모델이 맞춰야할 과녁을 정하고, train된 모델이 잘 맞추면 문제 없는 것이고 잘 맞추지 못하면 문제를 찾아서 수정해야한다. 이때 평가 기준은 앞서 언급한 metrics(ex) single number evaluation metrics)를 사용한다.
정리
1. dev set과 test set은 무조건 같은 distribution에서 추출해야한다. (training set은 wrong distribution이어도 된다.)
2. dataset 자체가 매우 크면, traditional한 train, dev, test의 비율 (7~~)을 이행하지 않아도 된다.
실제로 모델을 서비스로 사용할 때 유저들이 선호하는 모델과 dev&test set, metric를 통해 선택된 모델이 다른 경우, 바꿔줘야 한다.
metric을 바꾸는 방법 중 하나는 mislabel된 경우에 가중치를 상대적으로 더 높게 줘서 error의 값을 높이는 방법이 있다.
궁극적으로 메뉴얼을 말하자면 모델이 예측해야하는 값을 다시 조정하고나서 모델의 평가 척도를 다시금 조정하는 것으로 진행해야 한다.
실제로 human error와 train 후 error의 차이를 부르는 말로, 피할 수 있는 bias라고 한다. 모델을 변경하거나 training set을 바꾸는 방법 등 다른 방법을 해결할 수 있기에 이렇게 부른다.
Avoidable bias가 나타나는 경우
1. train bigger model
2. train longer or use other optimizations
3. Use new artitecture or hyperparameter
Variance 가 나타나는 경우
1. Increase training set
2. Regularization apply(L2, dropout, augmentation etc)
3. NN artitecture or hyparameter
