머신 러닝에서 과적 합이란 무엇이며이를 방지하는 방법은 무엇입니까?



이 문서에서는 기계 학습 모델에서 과적 합을 방지하고 감지하는 몇 가지 기술과 예제를 통해 기계 학습의 과적 합을 다룹니다.

기계 학습 모델을 구축하는 것은 데이터를 제공하는 것뿐만 아니라 모든 모델의 정확성에 영향을 미치는 많은 결함이 있습니다. 과적 합 모델의 정확성과 성능을 저해하는 머신 러닝의 결함 중 하나입니다. 이 문서에서는 다음 항목을 다룹니다.

기계 학습에서 과적 합이란 무엇입니까?

통계 모델은 우리가 필요 이상으로 많은 데이터를 공급할 때 과적 합된다고합니다. 공감할 수 있도록 대형 의류에 맞추려고한다고 상상해보십시오.





모델이 실제로 필요한 것보다 더 많은 데이터에 적합하면 데이터에서 노이즈가 많은 데이터와 부정확 한 값을 포착하기 시작합니다. 결과적으로 모델의 효율성과 정확성이 감소합니다. 실제로 어떻게 발생하는지 이해하기 위해 과적 합의 몇 가지 예를 살펴 보겠습니다.



과적 합의 예

예 1

간단한 예를 들어 보면 선형 회귀 , 데이터 훈련은 최적 선과 데이터 포인트 사이의 최소 비용을 찾는 것입니다. 최적의 최적 적합성을 찾기 위해 여러 번 반복하여 비용을 최소화합니다. 이것이 과적 합이 그림에 나오는 곳입니다.



위 이미지에 표시된 선은 새 데이터 포인트에 대해 매우 효율적인 결과를 제공 할 수 있습니다. 과적 합의 경우 데이터 세트에 대해 훈련 알고리즘을 실행할 때 각 반복 횟수로 비용을 줄일 수 있습니다.

이것을 실행 너무 오래 지속되면 비용이 절감되지만 데이터 세트의 노이즈 데이터에도 적합합니다. 결과는 아래 그래프와 같습니다.

효율적으로 보일 수 있지만 실제로는 아닙니다. 다음과 같은 알고리즘의 주요 목표 선형 회귀 지배적 인 추세를 찾고 그에 따라 데이터 포인트를 맞추는 것입니다. 그러나이 경우 선은 모든 데이터 포인트에 적합하며, 이는 새로운 진입 데이터 포인트에 대한 최적의 결과를 예측하는 모델의 효율성과는 무관합니다.

이제 문제 설명의 도움으로 더 설명적인 예를 고려해 보겠습니다.

예 2

문제 설명: 축구 선수가 티어 2 리그에서의 현재 성과를 기반으로 티어 1 축구 클럽에 슬롯을 넣을지 예측하고 싶다고 생각해 보겠습니다.

이제 우리는 결과가있는 10,000 명의 플레이어를 대상으로 모델을 훈련하고 피팅합니다. 원래 데이터 세트의 결과를 예측하려고 할 때 정확도가 99 %라고 가정 해 보겠습니다. 그러나 다른 데이터 세트의 정확도는 약 50 %입니다. 이는 모델이 학습 데이터와 보이지 않는 데이터에서 잘 일반화되지 않음을 의미합니다.

이것이 과적 합의 모습입니다. 기계 학습 및 데이터 과학에서 매우 일반적인 문제입니다. 이제 신호와 잡음을 이해합시다.

신호 대 잡음

예측 모델링에서 신호는 모델이 데이터를 학습하는 데 도움이되는 실제 기본 패턴을 나타냅니다. 반면에 노이즈는 데이터 세트에서 무관하고 임의의 데이터입니다. 노이즈와 신호의 개념을 이해하기 위해 실제 예를 들어 보겠습니다.

성인의 연령 대 문해력을 모델화하고 싶다고 가정 해 보겠습니다. 인구의 매우 많은 부분을 샘플링하면 명확한 관계를 찾을 수 있습니다. 이것은 신호이고 노이즈는 신호를 방해합니다. 우리가 지역 주민들에게 똑같이하면 관계가 흐려질 것입니다. 예를 들어 한 성인이 일찍 학교에 다녔거나 일부 성인이 교육을받을 여유가없는 등 특이 치 및 무작위성의 영향을받습니다.

머신 러닝 측면에서 노이즈와 신호에 대해 이야기하면 좋은 머신 러닝 알고리즘은 신호를 노이즈와 자동으로 분리합니다. 알고리즘이 너무 복잡하거나 비효율적이면 노이즈도 학습 할 수 있습니다. 따라서 모델을 과적 합합니다. 머신 러닝의 과소 적합도 이해하겠습니다.

과소 적합이란 무엇입니까?

과적 합을 피하기 위해 초기 단계에서 훈련을 중단 할 수 있습니다. 그러나 모델이 훈련 데이터에서 충분히 학습하지 못하여 지배적 인 추세를 포착하기 어려울 수도 있습니다. 이를 과소 적합이라고합니다. 결과는 과적 합, 결과 예측의 비효율 성과 동일합니다.

머신 러닝에서 과소 적합과 과적 합이 실제로 무엇인지 이해 했으므로 이제 머신 러닝에서 과적 합을 감지하는 방법을 이해해 보겠습니다.

과적 합을 감지하는 방법?

과적 합의 주요 과제는 새 데이터로 모델 성능의 정확성을 추정하는 것입니다. 실제로 테스트 할 때까지 정확도를 추정 할 수 없습니다.

이 문제를 해결하기 위해 초기 데이터 세트를 별도의 학습 및 테스트 데이터 세트로 분할 할 수 있습니다. 이 기술을 사용하면 실제로 모델이 새 데이터로 얼마나 잘 수행되는지 대략적으로 추정 할 수 있습니다.

초보자를위한 mysql 튜토리얼 (예제 포함)

예를 들어 이것을 이해하고 훈련 세트에서 90 % 이상의 정확도를 얻고 테스트 세트에서 50 %의 정확도를 얻는다고 가정 해 보겠습니다. 그러면 자동으로 모델에 대한 적신호가됩니다.

과적 합을 감지하는 또 다른 방법 벤치 마크가 될 단순한 모델로 시작하는 것입니다.

이 접근 방식을 사용하면 더 복잡한 알고리즘을 시도하면 추가 복잡성이 모델에 가치가 있는지 여부를 이해할 수 있습니다. 그것은 또한 알려져 있습니다 Occam의 면도기 테스트 , 기본적으로 두 모델의 경우 비슷한 성능의 경우 단순한 모델을 선택합니다. 과적 합을 감지하는 것이 좋은 방법이지만그러나 과적 합을 방지 할 수있는 몇 가지 기술이 있습니다. 머신 러닝에서 과적 합을 방지 할 수있는 방법을 살펴 보겠습니다.

머신 러닝에서 과적 합을 피하는 방법?

아래 나열된 머신 러닝에서 과적 합을 방지하는 몇 가지 기술이 있습니다.

  1. 교차 검증

  2. 더 많은 데이터로 훈련

  3. 기능 제거

  4. 조기 중지

  5. 정규화

  6. 조립

1. 교차 유효성 검사

과적 합을 방지 / 방지하는 가장 강력한 기능 중 하나는 교차 검증입니다. 그이면의 아이디어는 초기 훈련 데이터를 사용하여 미니 훈련 테스트 분할을 생성 한 다음 이러한 분할을 사용하여 모델을 조정하는 것입니다.

표준 k- 폴드 검증에서 데이터는 폴드라고도하는 k- 하위 집합으로 분할됩니다. 그 후 알고리즘은 k-1 폴드에서 반복적으로 훈련되고 나머지 폴드는 홀드 아웃 폴드라고도하는 테스트 세트로 사용됩니다.

교차 검증은 원래 훈련 세트만으로 하이퍼 파라미터를 조정하는 데 도움이됩니다. 기본적으로 최종 모델을 선택하기 위해 테스트 세트를 실제로 보이지 않는 데이터 세트로 별도로 유지합니다. 따라서 과적 합을 완전히 피하십시오.

2. 더 많은 데이터로 훈련

이 기술은 매번 작동하지 않을 수 있습니다. 위의 예에서도 설명했듯이 상당한 양의 모집단을 사용한 훈련이 모델에 도움이됩니다. 기본적으로 모델이 신호를 더 잘 식별하는 데 도움이됩니다.

그러나 경우에 따라 데이터 증가는 모델에 더 많은 노이즈를 공급함을 의미 할 수도 있습니다. 더 많은 데이터로 모델을 훈련 할 때 데이터가 깨끗하고 무작위성과 불일치가 없는지 확인해야합니다.

3. 기능 제거

일부 알고리즘에는 기능이 자동으로 선택되지만 내장 된 기능 선택이없는 상당수의 사용자를 위해 입력 기능에서 관련없는 몇 가지 기능을 수동으로 제거하여 일반화를 개선 할 수 있습니다.

이를 수행하는 한 가지 방법은 기능이 모델에 어떻게 맞는지에 대한 결론을 도출하는 것입니다. 코드를 한 줄씩 디버깅하는 것과 매우 유사합니다.

기능이 모델의 관련성을 설명 할 수없는 경우 해당 기능을 간단히 식별 할 수 있습니다. 좋은 시작점을 위해 몇 가지 기능 선택 휴리스틱을 사용할 수도 있습니다.

4. 조기 중지

모델이 학습 중일 때 각 반복을 기반으로 모델의 성능을 실제로 측정 할 수 있습니다. 반복을 통해 모델의 성능이 향상 될 때까지이 작업을 수행 할 수 있습니다. 그 후, 모델은 각 반복 후에 일반화가 약화됨에 따라 훈련 데이터를 과적 합합니다.

이 키워드를 사용하는 6 가지 방법은 무엇입니까?

따라서 기본적으로 조기 중지는 모델이 학습 데이터에 과적 합되기 시작하는 지점을 모델이 통과하기 전에 학습 프로세스를 중지하는 것을 의미합니다. 이 기술은 주로 딥 러닝 .

5. 정규화

기본적으로 더 넓은 범위의 기술을 사용하여 모델을 인위적으로 더 단순하게 만듭니다. 그것은 전적으로 우리가 사용하는 학습자의 유형에 달려 있습니다. 예를 들어, 우리는 , 드롭 아웃 사용 신경망 또는 회귀에서 비용 함수에 페널티 매개 변수를 추가합니다.

종종 정규화는 하이퍼 파라미터이기도합니다. 이는 교차 검증을 통해 조정할 수도 있음을 의미합니다.

6. 조립

이 기술은 기본적으로 다른 기계 학습 모델의 예측을 결합합니다. 가장 일반적인 앙상블 방법 두 가지는 다음과 같습니다.

  • 배깅은 모델의 과적 합 가능성을 줄이려는 시도

  • 더 단순한 모델의 예측 유연성을 향상시키기위한 시도 강화

둘 다 앙상블 방법이지만 접근 방식은 완전히 반대 방향에서 시작됩니다. Bagging은 복잡한 기본 모델을 사용하고 예측을 매끄럽게 처리하는 반면 boosting은 단순 기본 모델을 사용하여 집계 복잡성을 높이려고합니다.

적합 함이란 무엇입니까?

통계 모델링에서 적합도는 결과 또는 예측 값이 관찰 또는 실제 값과 얼마나 가깝게 일치 하는지를 나타냅니다.신호 대신 노이즈를 학습 한 모델은 학습 데이터 세트에는 적합하지만 새 데이터 세트에서는 효율성이 떨어지기 때문에 과적 합됩니다.

편향과 분산 사이의 균형

분산과 편향은 모두 예측 오류의 한 형태입니다. . 높은 분산과 높은 편향 사이의 균형은 통계 및 기계 학습에서 매우 중요한 개념입니다. 이것은 모든지도 머신 러닝 알고리즘에 영향을 미치는 하나의 개념입니다.

편향-분산 절충은 기계 학습 모델의 복잡성, 과소 적합 및 과적 합을 결정하는 데 매우 중요한 영향을 미칩니다.

편견

모델의 예측 값과 실제 또는 실제 값의 차이 일뿐입니다. 모델이 다소 복잡한 신호에서 학습하는 것이 항상 쉬운 것은 아닙니다.

피팅을 상상해 봅시다 선형 회귀 비선형 데이터가있는 모델에. 모델이 관측치를 얼마나 효율적으로 학습하더라도 곡선을 효율적으로 모델링하지 않습니다. 과소 적합이라고합니다.

변화

학습 데이터의 특정 세트에 대한 모델의 민감도를 나타냅니다. 고 분산 알고리즘은 학습 세트와 크게 다른 기괴한 모델을 생성합니다.

제약이없고 매우 유연한 모델에 맞는 알고리즘을 상상해보십시오. 또한 과적 합을 유발하는 훈련 세트의 잡음으로부터 학습 할 것입니다.

편향-분산 트레이드 오프

기계 학습 알고리즘은 모델 학습을위한 일회성 방법으로 인식 될 수 없으며 대신 반복적 인 프로세스입니다.

낮은 분산-높은 바이어스 알고리즘은 단순하고 견고한 구조로 덜 복잡합니다.

  • 일관되지만 평균적으로 부정확 한 모델을 훈련시킵니다.

  • 여기에는 회귀와 같은 선형 또는 매개 변수 알고리즘이 포함됩니다. 등

높은 분산-낮은 바이어스 알고리즘은 유연한 구조로 더 복잡 해지는 경향이 있습니다.

  • 그들은 일관성이 없지만 평균적으로 정확한 모델을 훈련시킬 것입니다.

  • 여기에는 다음과 같은 비선형 또는 비모수 알고리즘이 포함됩니다. , 등

이것은 우리가 머신 러닝에서 Overfitting을 배웠고이를 방지하기위한 다양한 기술에 대해 배운이 기사의 끝으로 이동합니다. 이 튜토리얼에서 여러분과 공유 한 모든 내용이 명확하기를 바랍니다.

'머신 러닝에서 과적 합'에 대한이 기사를 찾았다면 다음을 확인하십시오. 전 세계에 250,000 명 이상의 만족 한 학습자 네트워크를 보유한 신뢰할 수있는 온라인 학습 회사입니다.

우리는 당신의 여정의 모든 단계에서 당신을 돕고 싶어하는 학생과 전문가를 위해 설계된 커리큘럼을 마련하기 위해 여기 있습니다. . 이 과정은 Python 프로그래밍을 먼저 시작하고 다양한 Python 개념과 함께 핵심 및 고급 Python 개념을 교육하도록 설계되었습니다. 처럼 , 등

문자열 자바에서 날짜 가져 오기

질문이있는 경우 '머신 러닝에 과적 합'의 댓글 섹션에있는 모든 질문을 자유롭게 물어 보시면 저희 팀이 기꺼이 답변 해 드리겠습니다.