회귀 분석에서 과적 합 방지 : 정규화의 대안


19

회귀 정규화 (선형, 로지스틱 등)는 과적 합을 줄이는 가장 보편적 인 방법입니다.

목표가 예측 정확도 (설명하지 않음) 인 경우 정규화에 대한 대안이 있습니까? 특히 빅 데이터 세트 (수십억 개의 관측치 및 수백만 개의 특징)에 적합합니까?


3
"큰 데이터 세트"는 많은 관측치, 많은 변수 또는 둘 다를 의미 할 수 있으며 답은 관측치 및 변수의 수에 따라 달라질 수 있습니다.
Pere

규범 정규화를 사용하지 않는 이유는 무엇입니까? 신경망의 경우, 드롭 아웃이 있습니다
seanv507

4
정규화의 장점은 계산 비용이 저렴하다는 것입니다. 모델 진단을위한 교차 검증 방법과 결합 된 배깅 및 부스팅 등의 앙상블 방법이 좋은 대안이지만 훨씬 더 비싼 솔루션이 될 것입니다.
Digio

1
이 관심의 대상이 될 수 있습니다 : stats.stackexchange.com/a/161592/40604

1
Digio의 의견에 덧붙여서 : 정규화는 bagging / boosting에 비해 저렴하지만 "정규화 없음"의 대안에 비해 여전히 비쌉니다 (예 : 정규화가 딥 러닝을 어렵게 만드는 방법에 대한 Ben Recht 의이 게시물 참조 ). 많은 수의 샘플이있는 경우 정규화가 훨씬 저렴하게 작동하지 않습니다. @ hxd1001이 지적한 것처럼이 모델은 여전히 ​​일반화 할 수있다 )
Berk U.

답변:


11

질문과 직접 ​​관련이없는 두 가지 중요한 사항 :

  • 첫째, 목표는 해석이 아닌 정확성이지만, 정규화는 여전히 많은 경우에 필요합니다. 모델링에 사용 된 데이터가 아니라 실제 테스트 / 생산 데이터 세트에서 "높은 정확도"를 보장하기 때문입니다.

  • 둘째, 10 억 개의 행과 백만 개의 열이 있으면 정규화가 필요하지 않을 수 있습니다. 이는 데이터가 방대하고 많은 계산 모델이 "제한된 힘"을 가지기 때문입니다. 즉, 과적 합이 거의 불가능합니다. 이것이 일부 심층 신경망에 수십억 개의 매개 변수가있는 이유입니다.


자, 당신의 질문에 대해. Ben과 Andrey가 언급했듯이 정규화의 대안으로 몇 가지 옵션이 있습니다. 더 많은 예제를 추가하고 싶습니다.

  • 더 간단한 모델을 사용하십시오 (예 : 신경망에서 숨겨진 단위 수를 줄입니다. SVM에서는 하위 다항식 커널을 사용합니다. 가우시안 등의 가우시안 수를 줄이십시오.)

  • 최적화 초기에 중지하십시오. (예를 들어, 신경망 훈련에서 신기원을 줄이고, 최적화에서 반복 횟수를 줄입니다 (CG, BFGS 등)

  • 많은 모델에서 평균 (예 : 임의 포리스트 등)


고마워 두 번째 옵션 (초기 중지)은 현재 SGD로 시도하는 것입니다. 오히려 잘 작동합니다. 곧 정규화와 비교하고 싶습니다. 이 방법이 언급 된 기사를 알고 있습니까?
Benoit Sanchez

1
그라디언트 하강을 통한 조기 정지와 정규화 사이에는 기하학적 관계가 있습니다. 예를 들어, 원초 형태의 능선 회귀는 원점을 중심으로 한 단단한 타원 안에있는 손실 함수를 최소화하는 매개 변수를 요구하며 타원의 크기는 정규화 강도의 함수입니다. 융기 매개 변수는 타원의 표면에 규칙 화되지 않은 솔루션과 다른 경우 타원의 표면에 놓입니다. 원점에서 시작하여 상승을 시작한 다음 일찍 멈 추면이 타원 중 하나의 경계에있게됩니다.
Matthew Drury

그라디언트를 따랐기 때문에 실제 최소값으로가는 경로를 따라 갔기 때문에 거의 리지 솔루션 주위에 많은 시간이 걸립니다. 나는 당신 이이 생각의 기차를 얼마나 엄격하게 만들 수 있는지 잘 모르겠지만 관계가있을 수 있습니다.
Matthew Drury

@BenoitSanchez 이 문서 는 관련 있을 수 있습니다. 저자들은 다른 문제를 해결하지만 (고유 벡터 계산에서 과적 합) 과적 합을 다루는 전략은 동일합니다 (즉, 계산을 줄임으로써 암시적인 정규화). 전략은 대략적인 솔루션을 생성하는 저렴한 문제를 해결하는 것입니다 (제 생각에 최적화 초기에 중지하는 것과 같습니다).
Berk U.

@BenoitSanchez 나는 이것을 추천합니다. 로렌조의 강의는 YouTube에서 사용할 수 있지만이 페이지에는 몇 가지 서류에 대한 링크가 mit.edu/~9.520/fall17/Classes/early_stopping.html
데이비드 코 자크

14

정규화에 대한 두 가지 대안 :

  1. 많은 관찰이있다
  2. 더 간단한 모델 사용

역 전파의 공동 발명자 인 Geoff Hinton은 한때 엔지니어에게 다음과 같이 말했습니다. "무거운 데이터를 가지고 있기 때문에 깊은 그물에 드롭 아웃 할 필요가 없습니다." 그리고 그의 대답은 "글쎄, 당신은 당신 과적 합할 때까지 더 깊은 그물을 구축하고 드롭 아웃을 사용해야합니다." 좋은 조언을 제외하고는 충분한 데이터가있는 한 깊은 그물로도 정규화를 피할 수 있습니다.

고정 된 수의 관측치로 더 간단한 모형을 선택할 수도 있습니다. 간단한 선형 회귀 분석에서 절편, 기울기 및 오차 분산을 추정하기 위해 정규화 할 필요는 없습니다.


3

과적 합을 피할 수있는 몇 가지 추가 가능성

  • 차원 축소

    ml<<m

  • 기능 선택 (치수 축소)

    보다 낮은 차원의 피쳐 공간을 얻기 위해 라운드의 피쳐 선택 (예 : LASSO 사용)을 수행 할 수 있습니다. LASSO를 사용한 기능 선택과 같은 기능은 크지 만 알려지지 않은 기능 중 일부가 관련이없는 경우 유용 할 수 있습니다.

  • 임의 포리스트와 같이 과적 합하기 쉬운 알고리즘을 사용하십시오. (설정, 기능 수 등에 따라 일반 최소 제곱보다 계산 비용이 많이들 수 있습니다.)

    다른 답변 중 일부는 부스팅 및 배깅 기술 / 알고리즘의 장점도 언급했습니다.

  • 베이지안 방법

    계수 벡터에 사전을 추가하면 과적 합이 줄어 듭니다. 이것은 개념적으로 정규화와 관련이 있습니다. 능선 회귀는 사후 추정을 극대화하는 특별한 경우입니다.


2

반복 / 에포크 수를 정의 할 수있는 솔버가있는 모델을 사용하는 경우 유효성 검사 오류를 추적하고 조기 중지를 적용 할 수 있습니다. 유효성 검사 오류가 증가하면 알고리즘을 중지하십시오.


1
이 질문은 회귀 (선형, 로지스틱) 모형에 대해 명확하게 묻습니다.
Matthew Drury

2
기술적으로 선형 및 로지스틱 회귀 분석은 매우 간단한 신경망입니다.
Andrey Lukyanenko

2
나는 이것이 요청 된 질문에 대답하지 않는다는 내 믿음을 바꾸지 않는다고 생각합니다. "일부 형태의 구배 하강으로 회귀를 맞추고 조기 정지를 적용한 경우"라고 말하기 위해 재 작업 한 것이 더 좋습니다.
Matthew Drury

sklearn조차도 매개 변수 제한 반복 횟수를 지원하는 여러 모델이 있습니다. 정확도를 추적하는 데 사용될 수 있습니다. 그러나 나는 당신이 그 말이 정확하지 않다고 옳다고 생각합니다.
Andrey Lukyanenko

1

두 가지 생각 :

  1. 나는 Ben Ogorek이 제안한 "더 간단한 모델 사용"전략에 이어 두 번째 이다.

    작은 정수 계수 (예 : -5와 5 사이의 정수 계수를 가진 최대 5 개의 변수)를 가진 희소 선형 분류 모델을 작업합니다. 모델은 정확성과 까다로운 성능 지표 (예 : 교정) 측면에서 잘 일반화됩니다.

    백서 의이 방법은 로지스틱 회귀 분석을 위해 큰 표본 크기로 확장되며 볼록 손실 함수가있는 다른 선형 분류기에 적합하도록 확장 될 수 있습니다. 기능이 많은 경우를 처리하지 않습니다 (n/d

  2. 모형에 대한 추가 구속 조건 (예 : 단조 구속 조건, 부가 정보)을 지정할 수 있으면 가설 공간을 줄임으로써 일반화에 도움이 될 수 있습니다 (예 : 이 백서 참조 ).

    이 작업은주의해서 수행해야합니다 (예 : 제약 조건없이 모델을 기준선과 비교하고 체리 따기 제약 조건이되지 않도록 훈련 프로세스를 설계하려는 경우).

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.