반복 횟수를 통해 목적 함수를 최소화하려고한다고 가정하십시오. 그리고 현재 값은 입니다. 주어진 데이터 세트에는 "돌이킬 수없는 오류"가 없으며 훈련 데이터 의 손실을 0.0으로 최소화 할 수 있습니다 . 이제 두 가지 방법이 있습니다.100.00.0
첫 번째 방법은 "큰 학습 속도"와 적은 반복입니다. 각 반복에서 손실을 씩 줄이고 10 회 반복에서 손실을 0.0으로 줄일 수 있다고 가정하십시오 .10.0100.0
두 번째 방법은 "느린 학습 속도"이지만 더 많은 반복입니다. 각 반복에서 손실을 씩 줄일 수 있고 100 이 필요하다고 가정하십시오.1.0100 있고 훈련 데이터에서 0.0 손실을 갖기 위해 반복 하십시오.
이제 이것에 대해 생각해보십시오. 두 접근법이 동등합니까? 그렇지 않은 경우 최적화 컨텍스트 에서 더 낫습니다. 와 머신 러닝 컨텍스트 습니까?
에 최적화 문학 , 두 가지 방법은 동일합니다. 둘 다 최적의 솔루션으로 수렴합니다 . 반면에 머신 러닝 에서는 동일하지 않습니다. 대부분의 경우 훈련 손실을 설정하지 않기 때문에 과적 합 이 발생할 수 있습니다.0
첫 번째 접근법은 "거친 레벨 그리드 검색"으로, 두 번째 접근법은 "미세 레벨 그리드 검색"으로 생각할 수 있습니다. 두 번째 접근법은 일반적으로 더 잘 작동하지만 더 많은 반복을 위해서는 더 많은 계산 능력이 필요합니다.
과적 합을 막기 위해 우리는 다른 일을 할 수 있습니다. 첫 번째 방법은 반복 횟수를 제한하는 것입니다. 첫 번째 접근 방식을 사용한다고 가정하고 반복 횟수를 5로 제한합니다. 결국 훈련 데이터의 손실은 . (BTW, 이것은 매우 이상한 것입니다50 최적화 관점에서 볼 . 이는 미래에 솔루션을 개선 할 수 있음을 의미합니다 / 수렴되지 않았지만 그렇지 않은 것으로 선택했습니다. 최적화에서는 일반적으로 목적 함수에 제약 조건 또는 처벌 조건을 명시 적으로 추가합니다. 일반적으로 반복 횟수를 제한하지는 않습니다.)
반면에, 우리는 또한 두 번째 접근 방식을 사용할 수 있습니다. 학습 속도를 작게 설정하면 반복마다 손실을 줄 이십시오. 반복 횟수가 500 회라는 많은 반복 횟수가 있지만 손실을 0.0으로 최소화하지 못했습니다 .0.15000.0
이것이 작은 학습률이 "더 많은 정규화"와 같은 이유입니다.
를 사용하여 실험 데이터에 대해 다른 학습 속도를 사용하는 예는 다음과 같습니다 xgboost
. 무엇을 의미 하는지 eta
또는 n_iterations
의미 를 알아 보려면 다음 두 링크를 확인하십시오 .
트리 부스터 파라미터
XGBoost Control 오버 피팅
동일한 반복 횟수에 대해 이라고 말합니다 . 작은 학습률은 "부적합"(또는 모델에 "높은 편향"이 있음)이고 큰 학습률은 "과적 합"(또는 모델에 "고 분산")입니다.50
추신. 부족한 피팅의 증거는 훈련과 테스트 세트 모두 오류가 크며 훈련과 테스트의 오차 곡선은 서로 가깝습니다. 과적 합의 징후는 훈련 세트의 오차가 매우 낮고 시험 세트가 매우 높으며 두 곡선이 서로 멀리 떨어져 있다는 것입니다.