ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Week 6] Evaluating a Learning Algorithm
    Courses/Andrew Ng - Machine Learning 2022. 1. 14. 00:32

    Deciding What to Try Next

     이번에는 지금까지 배운 알고리즘을 평가하는 방법을 배우려고 합니다.

     

     주택 가격을 예측하는 선형 회귀 모델의 성능을 개선하려고 합니다. 시도해볼 수 있는 여러가지 방법들이 있습니다.

    1. 더 많은 학습 셋을 구한다
    2. 더 작은 변수 셋을 만든다
    3. 새로운 변수들을 추가한다
    4. 고차 다항 변수들을 추가한다
    5. 정규화 파라미터를 감소시킨다
    6. 정규화 파라미터를 증가시킨다

     보통 더 많은 학습 셋을 구하는 방법을 시도하는 경우가 많지만 실제로는 알고리즘을 향상시키는데 도움이 되지 않는 경우가 많습니다. 이런 작업들을 하기 전에 알고리즘이 제대로 작동하는지 테스트를 걸쳐 성능을 향상시킬 수 있습니다.

    Evaluating a Hypothesis

     

     주어진 데이터 셋을 모두 알고리즘 학습에 적용하면 과적합이 나타날 수 있습니다. 이를 방지하기 위해 전체 데이터 셋의 70%는 트레이닝 셋으로 , 나머지 30%는 테스트 셋으로 분류합니다. 분류시 무작위로 나누어야 신뢰도가 높아집니다.

    트레이닝 셋으로 알고리즘을 학습시킵니다. 즉 파라미터 theta를 구합니다. 그리고 해당 파라미터로 테스트 세트에서 오차를 계산합니다.

     

    Model Selection and Train/Validation/Test Sets

    위처럼 트레이닝 셋에서 가설 파라미터를 구하고 테스트 돌렸을 때 결과가 좋다고 해도 일반적으로 좋은 알고리즘이라고 하기 어렵습니다. 그저 트레이닝 셋에서 잘 작동하는 알고리즘일 가능성이 높습니다. 좋은 알고리즘은 새로운 입력에도 잘 작동해야 합니다. 

     

     위 그림처럼 다항식으로 이루어진 10가지 가설이 있습니다. 최고차항의 차수에 따라 새로운 파라미터 d를 매깁니다. 각 가설들을 트레이닝 셋에 대입하여 파라미터 theta들을 얻습니다. 그 후 테스트 셋에 파라미터를 적용하여 각각의 오차를 얻고 최소 오차를 낸 알고리즘을 선택합니다. 이렇게 최적의 알고리즘을 고르는 것을 사실 공정하지 않습니다. 왜냐하면 이 알고리즘은 그저 테스트셋에 최적화 된 알고리즘이기 때문입니다. 새로운 데이터 셋에는 적합하지 않을 확률이 높습니다. 이러한 문제를 해결하기 위해 데이터 셋을 세 부분으로 분할합니다.

     

     60%는 트레이닝 셋, 20%는 교차 검증 셋, 나머지 20%는 테스트 셋으로 분류합니다.

     이제 다시 해봅시다. 방금처럼 트레이닝 셋에 10가지 가설을 학습시킵니다. 도출된 파라미터를 교차 검증 셋의 오차를 측정합니다. 교차 검증 셋에 가장 잘 작동하는, 오차가 제일 작은 가설을 고릅니다. 이 가설은 아직 테스트 셋에 적용하 지 않았기 때문에 가설의 일반화 오류나 오차 측정 비교를 하기에 공정한 가설이 됩니다.

     트레이닝 셋으로 알고리즘을 학습하고, 교차 검증 셋으로 모델을 선택하고 테스트 셋으로 알고리즘을 평가합니다.


    혼자서 강의를 듣고 정리한 것이니 틀린 점이 있다면 언제든지 지적 부탁드립니다 :)

    댓글

Designed by Tistory.