Você pode se aperfeiçoar treinando algoritmos de aprendizado de máquina usando CV / Bootstrap?


34

Essa questão pode ser muito aberta para obter uma resposta definitiva, mas espero que não.

Algoritmos de aprendizado de máquina, como SVM, GBM, Random Forest etc., geralmente possuem alguns parâmetros livres que, além de algumas orientações básicas, precisam ser ajustados para cada conjunto de dados. Isso geralmente é feito com algum tipo de técnica de re-amostragem (bootstrap, CV etc.) para ajustar o conjunto de parâmetros que fornecem o melhor erro de generalização.

Minha pergunta é: você pode ir longe demais aqui? As pessoas falam sobre fazer pesquisas na grade, mas por que simplesmente não tratar isso como um problema de otimização e detalhar o melhor conjunto de parâmetros possível? Eu perguntei sobre alguns mecanismos disso nesta pergunta, mas ele não recebeu muita atenção. Talvez a pergunta tenha sido mal feita, mas talvez a pergunta em si represente uma abordagem ruim que as pessoas geralmente não fazem?

O que me incomoda é a falta de regularização. Ao re-amostrar, posso descobrir que o melhor número de árvores a crescer em um GBM para este conjunto de dados é 647 com uma profundidade de interação de 4, mas como posso ter certeza de que isso será verdade para novos dados (assumindo a nova população é idêntico ao conjunto de treinamento)? Sem um valor razoável para "encolher" para (ou, se desejar, nenhuma informação prévia informativa) a re-amostragem parece ser o melhor que podemos fazer. Eu simplesmente não ouço nenhuma conversa sobre isso, então isso me faz pensar se há algo que estou perdendo.

Obviamente, há um grande custo computacional associado à realização de muitas e muitas iterações para extrair todo último poder preditivo de um modelo; portanto, isso é algo que você faria se tivesse tempo / esforço para fazer a otimização e tudo. de melhoria de desempenho é valioso.


O CV pode ser usado para coisas diferentes. Para ser claro, quando você diz 'pesquisa em grade' ou 'ajuste de hiperparâmetro', está falando sobre seleção de modelo , não sobre seleção de recurso ou apenas sobre a estimativa de erro de classificação.
smci 29/05

Respostas:


30

Existe uma resposta definitiva para essa pergunta que é "sim, certamente é possível superestimar um critério de seleção de modelo baseado na validação cruzada e acabar com um modelo que generaliza mal! ". Na minha opinião, isso parece não ser amplamente apreciado, mas é uma armadilha substancial na aplicação dos métodos de aprendizado de máquina e é o foco principal da minha pesquisa atual; Eu escrevi dois artigos sobre o assunto até agora

GC Cawley e NLC Talbot, excesso de ajuste na seleção de modelos e viés de seleção subsequente na avaliação de desempenho, Journal of Machine Learning Research, 2010. Research, vol. 11, pp. 2079-2107, julho de 2010. ( www )

que demonstra que o ajuste excessivo na seleção de modelos é um problema substancial no aprendizado de máquina (e você pode obter estimativas de desempenho bastante tendenciosas se cortar os cantos na seleção de modelos durante a avaliação de desempenho) e

GC Cawley e NLC Talbot, Prevenindo o ajuste excessivo na seleção de modelos via regularização bayesiana dos hiperparâmetros, Journal of Machine Learning Research, volume 8, páginas 841-861, abril de 2007. ( www )

em que o critério de seleção de modelo baseado na validação cruzada é regularizado para tentar uma adaptação excessiva na seleção de modelo (que é um problema importante se você usar um kernel com muitos hiperparâmetros).

Estou escrevendo um artigo sobre a seleção de modelos com base em pesquisa de grade no momento, o que mostra que certamente é possível usar uma grade muito boa onde você acaba com um modelo que é estatisticamente inferior a um modelo selecionado por muitos grade mais grossa (foi uma pergunta no StackExchange que me inspirou a pesquisar na pesquisa de grade).

Espero que isto ajude.

PS A avaliação imparcial do desempenho e a seleção confiável de modelos podem, de fato, ser computacionalmente caras, mas, na minha experiência, vale a pena. Validação cruzada aninhada, em que a validação cruzada externa é usada para estimativa de desempenho e a validação cruzada interna para seleção de modelo é uma boa abordagem básica.


Perfeito! Parece que esses papéis são exatamente o que eu estava procurando. Obrigado por isso.
Bogdanovist

Informe-me se você tiver alguma dúvida sobre os trabalhos (via e-mail - eu sou o primeiro autor e meu endereço de e-mail está no papel).
Dikran Marsupial

@DikranMarsupial Como você diferencia o sobreajuste devido à seleção do modelo e o devido à incompatibilidade de amostragem entre os conjuntos de trem e teste?
Image_doctor 29/05

11
Em princípio, o uso de um conjunto de dados sintético, onde a verdade básica está disponível, é direta, pois não há incompatibilidade de amostragem; o conjunto de treinamento é apenas uma amostra aleatória da distribuição subjacente e você pode estimar o erro da própria distribuição, em vez de uma amostra finita. Para conjuntos de dados com palavras reais, no entanto, o AFAICS, o melhor que você pode gerenciar é usar a reamostragem e determinar os efeitos do ajuste excessivo do critério de seleção do modelo em muitas divisões aleatórias de teste / treinamento.
Dikran Marsupial

2
Infelizmente, ele foi rejeitado, mas vou revisá-lo para levar em conta os comentários dos revisores (muito úteis) e reenviá-lo para outro periódico.
Dikran Marsupial

7

Foi demonstrado que a validação cruzada e a autoinicialização fornecem estimativas da taxa de erro quase imparciais e, em alguns casos, mais precisamente pela autoinicialização sobre a validação cruzada. O problema com outros métodos, como a re-substituição, é que, ao estimar o erro no mesmo conjunto de dados que você ajusta ao classificador, você pode subestimar a taxa de erro e pode ser levado a algoritmos que incluem muitos parâmetros e não prevêem valores futuros com a mesma precisão. um algoritmo ajustado a um pequeno conjunto de parâmetros. A chave para o uso de métodos estatísticos é que os dados que você treinou para o classificador são típicos dos dados que você verá no futuro em que as classes estão ausentes e devem ser previstos pelo classificador. Se você acha que os dados futuros podem ser muito diferentes, os métodos estatísticos não podem ajudar e eu não


Obrigado pela resposta. Editei a pergunta para deixar claro que não estou perguntando sobre mudanças na população entre os conjuntos de trens e testes. Percebo que é uma questão totalmente diferente em que não estou interessada nessa questão.
Bogdanovist

11
+1 Neste caso, a imparcialidade é essencialmente irrelevante. A variação da estimativa de validação cruzada pode ser muito mais problemática. Para um critério de selecção do modelo é necessário o mínimo de critério para ser confiável perto do mínimo de erro generalização (em função dos hiper-parâmetros). É inútil se, em média, estiver no lugar certo, mas a difusão dos mínimos para diferentes amostras finitas de dados está por todo o lugar.
Dikran Marsupial

11
Obviamente, a precisão é uma combinação de desvio e variação, e uma estimativa imparcial com uma variação grande não é tão boa quanto um estimador levemente inclinado com uma variação pequena. A estimativa niave da taxa de erro é de re-substituição e apresenta um grande viés. O bootstrap 632 e 632+ funciona tão bem porque eles fazem um bom trabalho ajustando o viés sem aumentar muito a variação. É por isso que, para funções discriminantes lineares e funções discriminantes quadráticas, elas funcionam muito melhor do que a versão de exclusão única da validação cruzada.
Michael R. Chernick

Com conjuntos de árvores de classificação, o bootstrap não demonstrou ter um desempenho melhor.
Michael R. Chernick

11
Talvez uma das dificuldades seja que o excesso de ajuste geralmente significa coisas diferentes no aprendizado de máquina e nas estatísticas. Parece-me que os estatísticos às vezes usam excesso de ajuste para significar que um modelo com mais parâmetros do que o necessário está sendo usado, em vez de estar muito próximo das observações (conforme medido pelo critério de treinamento). Normalmente, eu usaria "excesso de parametrização" nessa situação e usaria "excesso de ajuste" para significar que um modelo foi ajustado muito próximo das observações em detrimento do desempenho da generalização. Talvez seja aqui que possamos estar falando com propósitos diferentes?
Dikran Marsupial

4

Eu suspeito que uma resposta aqui é que, no contexto da otimização, o que você está tentando encontrar é um mínimo global em uma noisyfunção de custo. Portanto, você tem todos os desafios de uma otimização global multidimensional, além de um componente estocástico adicionado à função de custo.

Muitas das abordagens para lidar com os desafios dos mínimos locais e um espaço de pesquisa caro possuem parâmetros que podem precisar de ajuste, como métodos de recozimento simulado ou monte carlo.

Em um universo ideal, computacionalmente ilimitado, suspeito que você possa tentar encontrar um mínimo global de seu espaço de parâmetros com limites adequadamente rigorosos no viés e na variação de sua estimativa da função de erro. Nesse cenário, a regularização não seria um problema, pois você poderia obter novamente uma amostra ad infinitum.

No mundo real, suspeito que você possa se encontrar facilmente em um local mínimo.

Como você mencionou, é um problema separado, mas isso ainda deixa você em aberto devido a problemas de amostragem associados aos dados disponíveis e sua relação com a distribuição subjacente real do espaço de amostra.


4

Depende fortemente do algoritmo, mas você certamente pode - embora na maioria dos casos seja apenas um desperdício de esforço benigno.

f(x)xxoptarf(x)+ϵϵxfXoptarxoptarf+ϵ

xoptarXoptarXoptarf

f

Portanto, bem, (com base nas práticas presentes em bons periódicos), a validação externa da seleção de parâmetros não é algo que você precisa fazer rigorosamente (diferente da validação da seleção de recursos), mas apenas se a otimização for superficial e o classificador for insensível a os parametros.


4

Sim, os parâmetros podem ser "super ajustados" no conjunto de treinamento e teste durante a validação cruzada ou a inicialização. No entanto, existem alguns métodos para evitar isso. O primeiro método simples é dividir seu conjunto de dados em 3 partições, uma para teste (~ 20%), uma para testar parâmetros otimizados (~ 20%) e outra para ajustar o classificador com parâmetros definidos. Só é possível se você tiver um conjunto de dados muito grande. Noutros casos, é sugerida uma dupla validação cruzada.

Romain François e Florent Langrognet, "Validação cruzada dupla para classificação baseada em modelo", 2006

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.