Quão ruim é o ajuste do hiperparâmetro fora da validação cruzada?

20

Sei que executar o ajuste de hiperparâmetros fora da validação cruzada pode levar a estimativas enviesadas de validade externa, porque o conjunto de dados que você usa para medir o desempenho é o mesmo usado para ajustar os recursos.

O que eu quero saber é o quão ruim é esse problema . Eu posso entender como seria muito ruim para a seleção de recursos, pois isso oferece um grande número de parâmetros para ajustar. Mas e se você estiver usando algo como LASSO (que possui apenas um parâmetro, a força da regularização) ou uma floresta aleatória sem seleção de recurso (que pode ter alguns parâmetros, mas nada tão dramático quanto adicionar / soltar recursos de ruído)?

Nesses cenários, quão otimista você poderia esperar que sua estimativa de erro de treinamento fosse?

Eu apreciaria qualquer informação sobre isso - estudos de caso, documentos, anedotas, etc. Obrigado!

EDIT: Para esclarecer, eu estou não falar de estimar o desempenho do modelo em dados de treinamento (ou seja, não usar validação cruzada em tudo). Por "ajuste do hiperparâmetro fora da validação cruzada", quero dizer o uso da validação cruzada apenas para estimar o desempenho de cada modelo individual, mas não incluindo um segundo loop externo de validação cruzada para corrigir a sobreajuste no procedimento de ajuste do hiperparâmetro (distinto de sobreajuste durante o procedimento de treinamento). Veja, por exemplo, a resposta aqui .

Ben Kuhn
fonte

Respostas:

17

Os efeitos desse viés podem ser muito grandes. Uma boa demonstração disso é dada pelas competições abertas de aprendizado de máquina que aparecem em algumas conferências de aprendizado de máquina. Geralmente, eles têm um conjunto de treinamento, um conjunto de validação e um conjunto de testes. Os concorrentes não conseguem ver os rótulos do conjunto de validação ou do conjunto de testes (obviamente). O conjunto de validação é usado para determinar a classificação dos concorrentes em uma tabela de classificação que todos podem ver enquanto a competição está em andamento. É muito comum que aqueles que estão no topo da tabela de classificação no final da competição sejam muito baixos na classificação final com base nos dados do teste. Isso ocorre porque eles ajustaram os hiperparâmetros em seus sistemas de aprendizado para maximizar seu desempenho na tabela de classificação e, ao fazer isso, ajustaram demais os dados de validaçãoajustando o modelo deles. Usuários mais experientes prestam pouca ou nenhuma atenção à tabela de classificação e adotam estimativas de desempenho imparciais mais rigorosas para orientar sua metodologia.

O exemplo do meu artigo (mencionado por Jacques) mostra que os efeitos desse tipo de viés podem ter o mesmo tamanho de diferença da diferença entre os algoritmos de aprendizado; portanto, a resposta curta é não usar protocolos de avaliação de desempenho tendencioso se você estiver genuinamente interessado em descobrir o que funciona e o que não funciona. A regra básica é "tratar a seleção do modelo (por exemplo, ajuste de hiperparâmetros) como parte integrante do procedimento de ajuste do modelo e incluir isso em cada dobra da validação cruzada usada para avaliação de desempenho.

O fato de que a regularização é menos propensa a ajustes excessivos do que a seleção de recursos é precisamente o motivo pelo qual o LASSO etc. são boas maneiras de executar a seleção de recursos. No entanto, o tamanho do viés depende do número de recursos, tamanho do conjunto de dados e da natureza da tarefa de aprendizagem (ou seja, existe um elemento que depende de um determinado conjunto de dados e varia de aplicativo para aplicativo). A natureza dependente dos dados significa que é melhor estimar o tamanho do viés usando um protocolo imparcial e comparar a diferença (relatar que o método é robusto para se ajustar demais na seleção de modelos nesse caso específico pode ser interessante nele mesmo).

GC Cawley e NLC Talbot (2010), "Ajuste excessivo na seleção de modelos e viés de seleção subsequente na avaliação de desempenho", Journal of Machine Learning Research, 11, p.2079, seção 5.2.)

Dikran Marsupial
fonte
7
  • O viés de que você está falando ainda está principalmente relacionado ao sobreajuste.
  • Você pode manter o risco baixo avaliando apenas muito poucos modelos para corrigir o hiperparâmetro de regularização e optar por uma baixa complexidade dentro da opção plausível.

  • Como o @MarcClaesen aponta, você tem a curva de aprendizado trabalhando para você, o que mitigará um pouco o viés. Mas a curva de aprendizado é tipicamente acentuada apenas em pouquíssimos casos e, em seguida, também a super adaptação é muito mais um problema.

No final, eu esperaria que o viés dependesse muito de

  • os dados (é difícil superestimar um problema univariado ...) e
  • sua experiência e comportamento de modelagem: acho possível que você decida sobre uma complexidade aproximadamente apropriada para o seu modelo se tiver experiência suficiente com o tipo de modelo e o aplicativo e se for extremamente bem comportado e não ceder a a tentação por modelos mais complexos. Mas é claro que não o conhecemos e, portanto, não podemos julgar o quão conservadora é sua modelagem.
    Além disso, admitir que seu modelo estatístico sofisticado é altamente subjetivo e você não tem mais casos para validar normalmente não é o que deseja. (Nem mesmo em situações em que se espera que o resultado geral seja melhor.)

Não uso o LASSO (como a seleção de variáveis não faz muito sentido para meus dados por razões físicas), mas o PCA ou o PLS geralmente funcionam bem. Uma crista seria uma alternativa próxima ao LASSO e mais apropriada para o tipo de dados. Com esses dados, vi uma ordem de grandeza de mais classificações errôneas na "validação de atalho" versus validação cruzada independente (externa) adequada. Nessas situações extremas, no entanto, minha experiência diz que a validação de atalho parecia suspeita- mente boa, por exemplo, 2% de classificações erradas => 20% com validação cruzada adequada.

Não posso fornecer números reais que se aplicam diretamente à sua pergunta:

  • Até agora, eu me importava mais com outros tipos de "atalhos" que aconteciam no meu campo e levavam a vazamentos de dados, por exemplo, espectros de validação cruzada em vez de pacientes (grande viés! Posso mostrar 10% de erros de classificação -> 70% = adivinhar entre 3 classes), ou não incluindo o PCA na validação cruzada (2 - 5% -> 20 - 30%).
  • Nas situações em que tenho que decidir se a única validação cruzada que posso pagar deve ser gasta na otimização do modelo ou na validação, eu sempre decido pela validação e fixo o parâmetro de complexidade pela experiência. O PCA e o PLS funcionam bem como técnicas de regularização, porque esse parâmetro de complexidade (# componentes) está diretamente relacionado às propriedades físicas / químicas do problema (por exemplo, eu posso ter um bom palpite sobre quantos grupos de substâncias quimicamente diferentes espero ter importância). Além disso, por razões físico-químicas, eu sei que os componentes devem parecer um pouco com espectros e, se forem barulhentos, estou me adaptando demais. Porém, a experiência também pode otimizar a complexidade do modelo em um conjunto de dados antigo de um experimento anterior que é semelhante o suficiente em geral para justificar a transferência de hiperparâmetros e depois usaro parâmetro de regularização para os novos dados.
    Dessa forma, não posso afirmar que tenho o modelo ideal, mas posso afirmar que tenho uma estimativa razoável do desempenho que posso obter.
    E com o número de pacientes que tenho, é impossível fazer comparações de modelos estatisticamente significativas (lembre-se, meu número total de pacientes está abaixo do tamanho de amostra recomendado para estimar uma única proporção [de acordo com a regra geral que @FrankHarrell fornece aqui]).

Por que você não executa algumas simulações o mais próximo possível dos seus dados e nos informa o que acontece?


Sobre meus dados: trabalho com dados espectroscópicos. Os conjuntos de dados são geralmente amplos: algumas dezenas de casos independentes (pacientes; apesar de muitas medições por caso. Ca. 10³ varia nos dados brutos, que eu posso reduzir para dizer 250 aplicando conhecimentos de domínio para cortar áreas não informativas) fora dos meus espectros e reduzir a resolução espectral.

cbeleites suporta Monica
fonte
5

Se você estiver apenas selecionando o hiperparâmetro para o LASSO, não há necessidade de um CV aninhado. A seleção de hiper parâmetros é feita em uma interação CV simples / plana.

λ

LiTiλTiLi

λ

(Este não é o único método para selecionar hiperparâmetros, mas é o mais comum - há também o procedimento "mediano" discutido e criticado por GC Cawley e NLC Talbot (2010), "Ajuste excessivo na seleção de modelos e viés de seleção subsequente em avaliação de desempenho ", Journal of Machine Learning Research, 11 , p.2079 , seção 5.2.)

λλ

Conheço dois resultados experimentais para medir o viés dessa estimativa (em comparação com um verdadeiro erro de generalização para conjuntos de dados sintéticos)

ambos de acesso aberto.

Você precisa de um currículo aninhado se:

a) você deseja escolher entre um LASSO e outros algoritmos, especialmente se eles também tiverem hiperparâmetros

λ

λ

Finalmente, o CV aninhado não é a única maneira de calcular uma estimativa razoável e imparcial do erro de generalização e esperado. Houve pelo menos três outras propostas

Jacques Wainer
fonte
2
Você pode explicar o que quer dizer com "não há CV para seleção de hiperparâmetros"? Pelo que você escreve, não consigo entender se você deseja avisar o OP de que ele não fez o aninhamento ou se você afirma que, em geral, tal coisa não existe.
Cbeleites suporta Monica
(+1) para uma explicação concisa do problema e boas referências. Mas, como @cbeleites aponta, a primeira frase é bastante confusa: parece ter a intenção de corrigir um mal-entendido que o OP não tem.
Scortchi - Restabelece Monica
@cbeleites (e Scortchi) - estou respondendo ao OP "EDIT:" onde (acredito) ele afirma que está usando o CV para selecionar parâmetros ("validação cruzada apenas para estimar o desempenho de cada modelo individual") e ele está preocupado por não ter usado um CV aninhado ("mas não incluindo um segundo loop externo de validação cruzada para corrigir a sobreajuste no procedimento de ajuste do hiperparâmetro"). Eu estava tentando lhe dizer que não havia um CV externo na seleção de parâmetros.
Jacques Wainer
@ JacquesWainer: Acredito que ele deseja "corrigir a sobreajuste dentro do procedimento de ajuste do hiperparâmetro" ao estimar o desempenho fora da amostra do procedimento (sua situação b ), em vez de corrigir de alguma forma o valor selecionado do hiperparâmetro usando CV aninhado. De qualquer forma, sua edição torna o início de sua resposta mais claro.
Scortchi - Restabelecer Monica
Sim, eu pretendia "corrigir [a ingênua estimativa de desempenho] ​​por sobreajuste dentro do procedimento de ajuste dos hiperparâmetros", não "corrigir [os hiperparâmetros ajustados] por sobreajuste" ou algo assim. Sinto muito pela confusão; Eu deveria ter declarado mais explicitamente que estava preocupado com a estimativa de erros, não com a seleção de parâmetros.
Ben Kuhn
2

Qualquer algoritmo de aprendizado complexo, como SVM, redes neurais, floresta aleatória, ... pode atingir 100% de precisão do treinamento se você permitir (por exemplo, com fraca / nenhuma regularização), com um desempenho de generalização absolutamente horrível como resultado.

κ(xi,xj)=exp(γxixj2)γ=100%

Em resumo, você pode facilmente terminar com um classificador perfeito em seu conjunto de treinamento que aprendeu absolutamente nada de útil em um conjunto de teste independente. É assim que é ruim.

Marc Claesen
fonte
Não estou falando sobre o treinamento do modelo fora da validação cruzada. Estou falando sobre o ajuste dos hiperparâmetros (e ainda usando a validação cruzada para estimar o desempenho de cada conjunto de hiperparâmetros). Vou editar a postagem para esclarecer isso.
Ben Kuhn
100%
Por que você acha que estou pensando em não usar a validação cruzada? Eu disse especificamente: "... e ainda usando a validação cruzada para estimar o desempenho de cada conjunto de hiperparâmetros".
Ben Kuhn
1
γ=γγ
2
Eu entendi completamente sua pergunta. Antes da edição, era altamente confuso. O viés em que você parece estar interessado não é necessariamente positivo, a propósito; pois muitas abordagens produzem modelos drasticamente melhores quando recebem mais dados de treinamento, o que é particularmente relevante para pequenos conjuntos de treinamento + validação cruzada.
Marc Claesen