Otimizando opções de validação cruzada em aprendizado de máquina

Video: XLA: TensorFlow, Compiled! (TensorFlow Dev Summit 2017)

Ser capaz de validar a hipótese de aprendizado de máquina efetivamente permite maior otimização do seu algoritmo escolhido. O algoritmo fornece a maior parte do desempenho preditivo em seus dados, dada a sua capacidade de detectar sinais de dados e apto a verdadeira forma funcional da função preditiva sem overfitting e gerando grande variação das estimativas. Não cada máquina algoritmo de aprendizagem é um melhor ajuste para seus dados, e nenhum algoritmo único pode atender todos os problemas. É até você para encontrar o caminho certo para um problema específico.

Video: PNL - Audiolibro El Secreto De Las Personas Exitosas

Uma segunda fonte de desempenho preditivo é os dados em si quando adequadamente transformado e selecionado para melhorar as capacidades de aprendizagem do algoritmo escolhido.

A última fonte de desempenho deriva de afinar o algoritmo de hiper-parâmetros, quais são os parâmetros que você decidir antes a aprendizagem acontece e que não são aprendidas a partir de dados. O seu papel é na definição a priori uma hipótese, enquanto outros parâmetros especificá-lo a posteriori, após o algoritmo interage com os dados e, usando um processo de otimização, descobre que certos valores dos parâmetros funcionam melhor na obtenção de bons prognósticos.

Video: DrupalCon Latin America 2015: Drupal 8 Console (scaffolding module generator)

Nem todos os algoritmos de aprendizado de máquina requer muita sintonia parâmetros hiper, mas alguns dos mais complexos fazer, e que tais algoritmos ainda trabalhar fora da caixa, puxando as alavancas certas podem fazer uma grande diferença na exactidão das previsões. Mesmo quando os hiper-parâmetros não são aprendidas a partir de dados, você deve considerar os dados que você está trabalhando no momento de decidir hiper-parâmetros, e você deve fazer a escolha com base na validação cruzada e uma avaliação cuidadosa de possibilidades.

Complexos algoritmos de aprendizado de máquina, os mais expostos à variação das estimativas, apresentam muitas escolhas expressas em um grande número de parâmetros. Girando com eles torna-se adaptar mais ou menos com os dados que estão aprendendo a partir. Às vezes demasiado twiddling hiper-parâmetro pode até mesmo fazer o algoritmo de detecção de falsos sinais a partir dos dados. Isso torna hiper-parâmetros próprios uma fonte sem ser detectado de variância se você começar a manipular-lhes muito baseado em alguma referência fixo como um teste ou um esquema de validação cruzada repetido.

Ambos R e Python oferecem funcionalidades que cortam que fatia de sua matriz de entrada em partes do trem, teste e validação. Em particular, por procedimentos de teste mais complexas, tais como a validação cruzada ou de bootstrapping, o scikit-learn pacote oferece um módulo inteiro, e R tem um pacote especializado, oferecendo funções para a separação de dados, o pré-processamento, e teste. Este pacote é chamado acento circunflexo.



As possíveis combinações de valores que o Hyper-parâmetros podem formar tornar decidir onde procurar otimizações duro. Tal como descrito quando se discute gradiente descendente, um espaço de optimização podem conter combinações de valores que melhor ou pior desempenho. Mesmo depois de encontrar uma boa combinação, você não está certo de que ele é a melhor opção. (Este é o problema de ficar preso em mínimos locais, quando minimizar o erro.)

Como uma maneira prática de resolver este problema, a melhor maneira de verificar hiper-parâmetros para um algoritmo aplicado a dados específicos seja para testá-los todos pela validação cruzada, e para escolher a melhor combinação. Esta abordagem simples, chamado grade de busca, oferece vantagens indiscutíveis, permitindo-lhe experimentar a gama de possíveis valores para entrada no algoritmo de forma sistemática e de detectar quando o mínimo geral acontece.

Por outro lado, grade de busca também tem graves inconvenientes porque é computacionalmente intensiva (você pode facilmente executar esta tarefa em paralelo em computadores multicore modernos) e bastante demorado. Além disso, os testes sistemáticos e intensivos aumentar a possibilidade de incorrer em erro porque alguns bons, mas falsos resultados de validação pode ser causada por ruído presente no conjunto de dados.

Video: Week 8, continued

Algumas alternativas a grade de busca estão disponíveis. Em vez de testar tudo, você pode tentar explorar o espaço de possíveis valores de parâmetros hiper guiados por técnicas de otimização não-linear computacionalmente pesados ​​e matematicamente complexos (como o método de Nelder-Mead), usando uma abordagem bayesiana (onde o número de testes é minimizada por tomar vantagem de resultados anteriores) ou usando busca aleatória.

Surpreendentemente, busca aleatória funciona incrivelmente bem, é simples de entender, e não é apenas baseada na sorte cega, embora possa inicialmente parecem ser. Na verdade, o ponto principal da técnica é que se você pegar testes aleatórios suficientes, você realmente tem possibilidades suficientes para detectar os parâmetros corretos, sem desperdício de energia em testar combinações ligeiramente diferentes de combinações semelhante espectáculo.

A representação gráfica abaixo explica porque busca aleatória funciona bem. A exploração sistemática, embora útil, tende a testar todas as combinações, que se transforma em um desperdício de energia se alguns parâmetros não influenciam o resultado. Uma pesquisa aleatória realmente testa menos combinações, mas mais na faixa de cada hiper-parâmetro, uma estratégia que comprova ganhar se, como muitas vezes acontece, certos parâmetros são mais importantes do que outros.

grade pesquisa vs. busca aleatória
Comparando grid-pesquisa para busca aleatória.

Para a busca randomizado para um bom desempenho, você deve fazer de 15 a um máximo de 60 testes. Faz sentido de recorrer a busca aleatória se numa rede de pesquisa requer um maior número de experimentos.


Publicações relacionadas