[ML] 딥러닝의 깊이 있는 이해를 위한 머신러닝 2-2 (K-MOOC)

daeungdaeung·2021년 6월 19일
0

Machine-Learning

목록 보기
4/25

지도 학습의 일반화 성능을 올릴 수 있는 방법

Decision Tree에서 일반화 성능을 결정하는 부분

Split Node를 언제까지 나눌 것인가?

  • 현재 주어진 데이터를 최대한 나눌 때까지 Split Node를 설정

    • Depth를 너무 크게 하면? -> 학습 데이터에 대한 성능은 100% 일지라도, 계산량이 상당히 클 것입니다. (하지만 테스트 데이터에 대한 성능은 낮을 수 있습니다. -> Overfitting)
  • Split Node의 개수에 제한을 거는 방법

Memorization과 Learning의 차이

  • Memorization: 주어진 학습 데이터를 기억하는 것

  • Learning:

    • 어떤 특징을 배우는 것

    • 다양한 상황(기존에 주어지지 않는 테스트 데이터)에 대해서 일반화시킬 수 있는 최적의 학습 방법을 찾는 것

학습 데이터 & 테스트 데이터

  1. 학습 데이터와 테스트 데이터는 서로 비슷한 상황이라는 가정

  2. Independent and Identically Distributed (IID)

    • 학습 데이터 / 테스트 데이터 -> 동일한 분포에서 왔다는 것

    • 각 샘플들의 순서는 상관 없음 (Independent)

    • 학습 데이터와 테스트 데이터는 상당히 유사하다는 가정 (Identically)

Overfitting

  • 테스트 데이터에 의한 정확도 & 학습 데이터에 의한 정확도의 차이를 활용해서 Overfitting의 척도를 계산합니다.

  • 학습 데이터가 너무 적을 경우 쉽게 발생합니다.

  • Decision Tree의 경우 Depth가 깊어질 수록 Overfitting 일 확률이 높아진다.

Validation

  • 학습 데이터 중 일부를 선택하여 Validation data set으로 설정합니다.

  • Validation data set을 테스트 데이터 셋과 비슷하다고 생각하고 일반화 성능을 예측할 수 있습니다.

  • N-fold Cross Validation

    • ex) 3-fold Cross Validation

      • 주어진 학습 데이터를 세 등분합니다.

      • 총 세 번의 머신러닝 모델을 학습합니다.

      • 학습 데이터를 3 등분했을 때, Validation set을 3등 분 중 하나 선택한다면, 총 3가지 경우(fold)가 나올 수 있습니다.

    • 서로 다른 Validation 오류 값들의 평균이 가장 작게 하는 모델을 찾아나가는 것

    • 가장 일반적으로 사용

    • 테스트 데이터에서의 성능과 가장 유사한 성능을 볼 수 있으며 직관적으로 사용할 수 있는 방법입니다.

    • Cross Validation Error가 작다면 테스트 데이터에 대한 Error 역시 작을 확률이 높습니다. (일반화 성능이 높아질 수 있다는 의미입니다.)

Parameter & Hyper-parameter

Parameter: 머신러닝 알고리즘을 통해서 얻어진 값

Hyper-parameter: 사용자가 정해줄 수 있는 값

Decision Tree 예시:

  • Parameter: Feature 타입, Threshold

  • Hyper-parameter: Split Node 개수

Hyper-parameter 값을 바꿔가면서 Validation Error를 확인하고, Validation Error가 작다면 일반화 성능이 향상되었다고 볼 수 있습니다.

profile
개발자가 되고싶읍니다...

0개의 댓글