k- 폴드 교차 검증에 대한 그리드 검색


16

10 배 교차 유효성 검사 설정에서 120 샘플의 데이터 세트가 있습니다. 현재 첫 번째 홀드 아웃의 교육 데이터를 선택하고 그리드 검색을 통해 감마 및 C의 값을 선택하기 위해 5 배 교차 검증을 수행합니다. RBF 커널과 함께 SVM을 사용하고 있습니다. 정밀도를보고하기 위해 10 개의 교차 검증을 수행하고 있으므로 각 홀드 아웃의 교육 데이터에서이 그리드 검색을 수행해야합니까 (각 10 %의 테스트 및 90 %의 교육 데이터가있는 홀드 아웃이 있음)? 너무 시간이 많이 걸리지 않습니까?

첫 번째 홀드 아웃의 감마와 C를 사용하고 k- 겹 교차 검증의 나머지 9 개 홀드 아웃에 사용하면 열차 데이터를 사용하여 감마와 C를 얻은 후 다시 사용하기 때문에 위반이 발생합니다. 두 번째 홀드 아웃에서 테스트 할 열차 데이터의 일부?


이 질문에는 더 많은 정보가 필요합니다. 어떤 모델에 적합합니까? 이 모델에서 감마와 C는 무엇입니까? 또한 주석이 아닌 질문을 편집하여이 정보를 제공 할 수 있습니까?
chanceislogic

답변:


14

그렇습니다. 외부 교차 검증의 2-10 번 접기에 대한 테스트 데이터가 커널 1과 정규화 매개 변수의 값을 결정하는 데 사용 된 접기 1에 대한 트레이닝 데이터의 일부이므로 위반이됩니다. 즉, 테스트 데이터에 대한 일부 정보가 모델 설계에 유출되어 잠재적으로 성능 평가에 대한 낙관적 편향이 생길 수 있습니다. 즉, 하이퍼 파라미터 설정에 매우 민감한 모델에 가장 낙관적입니다. 바람직하지 않은 기능을 가진 모델을 가장 선호합니다.)

이 선택은 모델 선택 기준의 분산이 작은 데이터 셋에 대해 가장 크기 때문에 모델 선택 기준의 과적 합을 촉진하므로 테스트 데이터에 대한 추가 정보가 누출 될 수 있으므로이 바이어스는이 데이터와 같은 작은 데이터 셋에 대해 가장 강할 수 있습니다. 을 통하여.

나는 1 년 또는 2 년 전에 전체 중첩 교차 유효성 검사에서 발생할 수있는 바이어스 편차의 크기로 인해 다소 놀라기 시작하면서 분류기 시스템 간의 성능 차이를 쉽게 극복 할 수있는 논문을 썼습니다. 이 논문은 "모델 선택에서의 과적 합과 성능 평가에서의 후속 선택 바이어스"Gavin C. Cawley, Nicola LC Talbot; JMLR 11 (Jul) : 2079-2107, 2010.

기본적으로 하이퍼 파라미터 조정은 모델 피팅의 필수 부분으로 간주되므로 새 데이터 샘플에서 SVM을 학습 할 때마다 해당 샘플에 대한 하이퍼 파라미터를 독립적으로 조정해야합니다. 당신이 그 규칙을 따르면, 당신은 아마 너무 잘못 갈 수 없습니다. 실험에서 잘못된 결론을 도출 할 위험이 있으므로 편견없는 성능 추정값을 얻는 것은 계산 비용이 충분합니다.


1
저의 개인적인 경험으로 인해 그러한 과적 응의 근원에 대해서도 매우 신중했습니다.
cbeleites는

6

각 대리 모델에 대해 그리드 검색을 수행 한 후 몇 가지 사항을 확인할 수 있습니다.

  • 최적화 된 변수의 변동 (여기서 C ). 최적의 파라미터는 안정적입니까? 그렇지 않은 경우 문제가 발생할 가능성이 큽니다.γ
  • 내부 및 외부 교차 검증의보고 된 성능을 비교하십시오.
    내부 (예 : 튜닝) 교차 검증이 외부 (최종 모델의 유효성 검사)보다 훨씬 나아 보인다면 문제가있는 것입니다. 튜닝 된 매개 변수가 전혀 최적이 아닐 수있는 상당한 위험이 있습니다. 그러나 외부 교차 검증이 올바르게 수행되면 (모든 테스트 세트가 각 대리 모델과 완전히 독립적 임) 최소한 모델 성능에 대한 편견이없는 (!) 추정치가 여전히 남아 있습니다. 그러나 그것이 최적인지 확신 할 수는 없습니다.
  • 최적은 얼마나 발음됩니까? 차 선형 매개 변수의 성능이 빠르게 저하됩니까? 최적의 성능은 얼마나 좋습니까?

모델 선택에 의한 오버 피팅에 대해 할 말이 많이 있습니다. 그러나 분산과 낙관적 편견 모두가 실제로 상처를 줄 수 있음을 명심하는 것이 좋습니다

  • 분산은 실수로 실제로 최적의 하이퍼 파라미터에서 멀리 떨어져있을 수 있음을 의미합니다.
  • 과도하게 피팅하는 경우 많은 모델이 내부 교차 검증에 완벽하게 보이는 상황에 처할 수 있지만 실제로는 그렇지 않습니다. 이 경우 모델 간의 차이를 인식하지 못하기 때문에 튜닝이 잘못 될 수 있습니다.
  • 바이어스가 하이퍼 파라미터에 의존하는 경우 큰 문제가 있습니다.

예제에 관심이 있고 독일어를 읽을 수 있다면, 나의 학위 논문을 온라인으로 만들 수 있습니다.

내 경험상 하이퍼 파라미터 튜닝은 과적 합에 매우 효과적인 아이디어입니다.

이제 과적 합을 알고 있다면 주로 두 가지 옵션이 있습니다.

  • 최적화에 과적 합에 문제가 있었지만 적절한 외부 검증을 수행하여 ... (외부 교차 검증 결과)가 발생했다고보고합니다.
  • 모델의 복잡성을 제한합니다. 이를 수행하는 한 가지 방법은 하이퍼 파라미터를 수정하는 것입니다.

하이퍼 파라미터를 각 트레이닝 세트에 맞게 조정하는 대신, (하이퍼) 파라미터를 미리 지정할 수 있습니다 (예 : 미리 수정). 나는 보통 당신보다 더 적은 수의 사례를 가지고있는 것처럼 내 모델에 대해 가능한 한 많이한다. 아래를 보라.
그러나이 수정은 사전에 실제로 정직하게 수행해야합니다. 예를 들어 동료에게 유사한 데이터 세트 (독립적 실험)에서 최적화 된 매개 변수를 요청하거나 매개 변수에 대한 그리드 검색을 포함하여 사전 실험을 수행했습니다. 그런 다음 첫 번째 실험은 실제 실험 및 데이터 분석을위한 일부 실험 매개 변수와 모델 매개 변수를 수정하는 데 사용됩니다. 자세한 설명은 아래를 참조하십시오.

물론 자동 최적화 모델 (이중 또는 내포 유효성 검사)에 대해 적절한 테스트를 수행 할 수 있지만 표본 크기로 인해 데이터를 두 번 분할하지 못할 수 있습니다 .
그 상황에서는 이럴가 훨씬 더 나은 자동으로 최적화 모델의 어떤 종류에 낙관적으로 견적을보고 이상의 매개 변수 모델링을 선택하는 방법에 대한 전문적인 경험을 사용하여 제작 된 모델에 대한 정직한 평가를보고.
상황에 대한 또 다른 관점은

  • 매개 변수 최적화를위한 또 다른 사례를 제외하여 성능이 저하됨 (작은 학습 표본 크기 => 더 나쁜 모델이지만 "최적의"매개 변수)
  • 전문가에 의한 차선의 매개 변수 수정으로 인해 성능이 저하됩니다 (그러나 더 큰 훈련 데이터에서).

비슷한 질문에 대한 비슷한 생각 : /stats//a/27761/4598


매개 변수 고정 및 Dikran Marsupial의 의견

Dikran Marsupial이 논문에서 사용하는 하이퍼 파라미터라는 용어를 사용하고 있습니다 (답변에 링크).

나는 분광 데이터로 작업합니다. 이것은 데이터 분석 및 모델링에 종종 많은 전처리가 포함되는 일종의 측정입니다. 이는 하이퍼 파라미터로 볼 수 있습니다 (예 : 기준선에 어떤 순서의 다항식을 사용해야합니까? 어떤 측정 채널을 포함해야합니까?). svm 매개 변수에 더 가까운 다른 결정이 있습니다. 예를 들어 "실제"모델을 교육하기 전에 PCA를 차원 축소를 위해 수행 할 경우 몇 개의 주요 구성 요소를 사용해야합니까? 때로는 SVM 분류도 사용하기 때문에 SVM 매개 변수를 결정해야합니다.

이제 IMHO 하이퍼 파라미터를 수정하는 가장 좋은 방법은 응용 프로그램에서 나온 이유가있는 경우입니다. 예를 들어, 나는 일반적으로 물리적 / 화학적 / 생물학적 이유로 어떤 기준선을 사용할 것인지 결정합니다 (즉, 표본과 그에 따른 분 광학적 거동에 대한 지식). 그러나 SVM 매개 변수에 도움이되는 인수에 대해서는 알지 못합니다 ...

위에서 언급 한 사전 실험의 경우는 다음과 같습니다.

  • 우리는 여러 셀의 데이터를 취합니다 (다른 셀 라인을 구별하고 싶습니다).
  • 스펙트럼이 분석되고, 반복 이중 교차 검증 SVM이 실행됩니다 (계산 서버에서 1 ~ 2 박 소요).

    • γ
    • 또한 외부 과잉 검증은 튜닝 결과만큼 좋지 않습니다. 예상대로입니다.
    • 여전히 하이퍼 파라미터의 튜닝 범위에서 성능 차이가 있으며 튜닝 그리드에서의 성능은 상당히 부드럽습니다. 좋은.
  • 내 결론은 : 최종 하이퍼 매개 변수가 최적인지 확신 할 수 없지만 외부 교차 검증은 대리 모델의 성능에 대한 적절한 추정치를 제공합니다.

  • 실험 부분에서 실험 설정의 일부 변경 사항을 결정했습니다 (데이터의 신호 대 잡음에 영향을 미치지 않지만 계측기 자동화에서 한 단계 더 진행된 것).

  • 실험 설정을 개선하고 새로운 스펙트럼을 얻습니다. 세포는 신선하게 성장해야합니다. 즉, 새로운 데이터 세트는 심지어 독립적 인 배양 배치입니다.

이제 결정에 직면합니다. 내부 교차 검증을 "건너 뛰어야"하고 이전 데이터로 결정한 하이퍼 파라미터 만 사용해야합니까?

  • 위에서 언급했듯이 이러한 사전 결정된 하이퍼 매개 변수가 최적이 아닐 위험이 있습니다.
  • 그러나 내부 (튜닝) 교차 검증을 수행하여 실제로 최적의 하이퍼 파라미터를 얻을 수는 없습니다.
  • 그러나 이전 데이터의 튜닝은 안정적이었습니다.
  • 최적화를 수행하면 더 적은 수의 샘플에 대해 학습 할 것입니다. 어쨌든 너무 많은 샘플 (TM)이 있으므로 2 차 교차 검증을 위해 더 많은 샘플을 따로 설정하면 더 나쁜 모델을 얻을 것으로 예상됩니다.

따라서이 경우 고정 된 매개 변수를 사용하기로 결정했습니다 (유사한 데이터에 대한 경험과 향후 큰 데이터로 이러한 결정을 다시 확인하는 것을 포함하여 "숙제"를 수행해야 함을 알고 있음).

중요한 것은 외부가 아닌 내부 ( 튜닝 교차 유효성 검사)를 건너 뛰는 것입니다 . 고정 하이퍼 파라미터를 사용하면 최적이 아닌 모델의 성능에 대한 편견 추정치를 얻습니다. 이 추정치에는 높은 분산이 적용되는 것이 사실이지만,이 변동은 내부 튜닝 수행 여부에 관계없이 기본적으로 동일합니다.
외부 교차 분석을 건너 뛰고 튜닝 된 모델에 대해 낙관적으로 편향된 추정치를 얻습니다. 응용 프로그램 및 데이터에 따라 가치가 없을 수 있고 (매우 지나치게 낙관적이라면) 낙관적 편견은 명백히 용납 될 수 없습니다.


이 답변을 공감해야하는 것은 유감이지만, 최적의 일반화는 이러한 매개 변수에 대한 적절한 설정에 따라 달라 지므로 (하위 매개 변수에 미리 지정된 값을 사용하는 것은 좋지 않습니다) 샘플). 실험 전 그리드 검색은 내 논문에서 논의 된 것과 똑같은 형태의 편견을 초래하기 때문에 훨씬 더 나쁩니다. SVM의 경우 데이터를 두 번 분할하는 문제는 거의 무상으로 내부 CV의 모델 선택 기준으로 가상 휴가 일회용 교차 검증을 사용할 수 있으므로 적용되지 않습니다.
Dikran Marsupial

그러나 최적화 된 매개 변수의 변동을 확인하는 것이 좋습니다. 매개 변수와 하이퍼 매개 변수를 데이터에서 안정적으로 추정 할 수있는 충분한 데이터가 있다면 필자가 논문에서 언급 한 편향의 종류는 그리 큰 문제가되지 않을 것입니다. 그러나 작은 데이터 세트로 인해 최적화 된 하이퍼 파라미터 값에 많은 변동성이있는 경우, 이는 성능 추정에서 상당한 편견을 피하기 위해 중첩 교차 검증 및 기타 엄격한 접근 방식이 실제로 필요한 상황입니다.
Dikran Marsupial

@ DikranMarsupial : 나는 내 배경을 좀 더 명확하게 설명했다. 또한, 나는 당신의 논문을 더 자세히 읽습니다. 나는 우리의 요점이 그렇게 멀지 않다고 생각합니다. 당신이 좋아한다면, 채팅에서 만나자-나는 당신의 논문에 대해 많은 질문이 있습니다 ...
cbeleites는

@DikranMarsupial : (불행히도 대부분의 데이터에 대해 중첩 / 계층 적 데이터 구조를 가지고 있기 때문에 분석 휴가를 사용할 수 없습니다). 또한 k-fold 또는 out-of-bootstrap 유효성 검사를 반복하여 leave-one-out으로 추악한 놀라움을 만났습니다. 그러나 그것은이 질문에 대한 주제가 아닙니다.
cbeleites는

@DikranMarsupial : 최적화 된 매개 변수가 안정적이지 않으면 어쨌든 문제가 있습니다. 물론 새 데이터에 이러한 매개 변수를 사용할 수 있다고 결론을 내릴 수 없습니다. 또한 최종 모델에 대해 최적의 매개 변수 집합을 호출하지는 않았습니다. 최적화가 완전히 진행되는 것을 보았지만 항상 내부 (튜닝) 유효성 검사의 매우 지나치게 낙관적 인 결과와 함께 나타났습니다 . 그리고 외부 교차 검증을 최적 모델의 내부 교차 검증 추정치와 비교하여 측정 할 수 있습니다. 이에 따라 답변을 업데이트했습니다.
cbeleites는

5

고쳐야 해 γ처음에. 그런 다음케이단일 테스트 오류 추정치를 얻기위한 교차 검증 이자형아르 자형아르 자형(γ,). 그런 다음 다양한 2 차원 그리드 검색을 수행하십시오.γ테스트 오류 매트릭스를 생성하기 위해 별도로. 사람들의 속도를 높이기 위해 일반적으로 로그 그리드를 사용합니다.γ,{2,2+1,,2} (보통 γ 더 작은 규모입니다).

내가 생각하는 핵심은 전체 최소값을 취하는 것이 아니라 로컬 최소값 (또는 각 1 차원 투영) 주위의 표면에서 약간의 부드러움을 찾는 것입니다.

가우스 커널 SVM을 기억하십시오 γ 처럼 (σ)1 다변량 정규 데이터에 대한 모수 independent components. So if you have an understanding of the variability of predictor distances it can help determine a grid for γ, especially if feature correlation is not too strong. C is how much slack you get if there is no perfect separating plane so the weaker the relationship between the predictors and class labels the smaller in theory C should be (less penalization for missclassification).


So, let's say I've a dataset with 120 samples. Should I find gamma and C initially using 120 samples. Then do 10-fold cross validation using the same gamma and C for the k holdouts when using 90% of the data to train and 10% of the data to test ? Wouldn't it mean that I used the same training set to get gamma and C and part of the samples are also on test set ?
user13420

I don't understand what you mean by find gamma and C, these are tuning parameters. With Gaussian kernel SVMs you need to specify γ and C then solve for the weights. If you want to do 10-fold CV you should sample a 108 sample training set and 12 sample test set. Get your matrix of test errors then repeat with new train/test sets. This will result in 10 error estimates for each matrix value which you can average.
muratoa

You have a choice in varying (γ,C) per fixed train/test split, or varying the train/test splits per fixed (γ,C). I suggest you vary (γ,C) over fixed data because that will be computationally more efficient. Then you can just average the 10 matrices to get a final test error matrix.
muratoa

2
There is a distinction; tuning parameters are reserved for data that must be input for a model to be fit. The "weights" are what the fitting procedure produces. In lasso/ridge for example λ is a tuning parameter and β are the weights. You are correct that all values are data derived, but the distinction is important for CV purposes. Tuning parameters are not random, weights are. That is the statistical reasoning behind test error for their selection.
muratoa

2
In lasso/ridge λ governs the variance of the prior distribution on β. For fixed λ you hone in on the possible distribution for β. Each CV train set for fixed tuning parameter yields a point estimate of that β(λ). By the end of the CV procedure you have an estimate of test error given that prior. You then vary the tuning parameters selecting the one with best test error properties.
muratoa
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.