Discussão do artigo "Redes Neurais Profundas (Parte V). Otimização Bayesiana de hiperparâmetros de uma DNN" - página 3
Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
No caso do Bayesian, você precisa jogar não apenas com o número de passes, mas também com o número de pontos. Você precisa procurar uma opção mais rápida. Isso é muito tedioso
Para acelerar o processo, adicione os parâmetros ao chamar BayesianOptimisation
maxit = 1 #1 em vez de 100 - número de repetições para GP_fit para previsão de hiperplano
Não notei nenhuma melhoria com 100 repetições em comparação com 1, então agora uso 1.
Ie.
maxit=1 via ... será passado para GPfit:: GP_fit e a otimização será executada 1 vez em vez de 100.
Você também pode passar:
control = c(20*d, 10*d, 2*d);#default - control = c(200*d, 80*d, 2*d) - de 200*d selecione 80*d melhores e construa 2*d clusters - onde d é o número de parâmetros a serem otimizados.
Descrição desses parâmetros aqui https://github.com/cran/GPfit/blob/master/R/GP_fit.R
PS. Você não está mudando para o TensorFlow? É apenas um nível mais alto.
Embora o Darch tenha pouco suporte, eles corrigiram e melhoraram algumas coisas, mas em janeiro ele foi enviado do CRAN para o arquivo por não corrigir erros (havia um com avaliação de erros no modo de treinamento com validação). Em maio, eles lançaram a versão 13, mas depois voltaram para a versão 12. Agora, a 13ª versão apareceu novamente - aparentemente, ela foi concluída.
Para acelerar o processo, adicione os parâmetros ao chamar o BayesianOptimisation
maxit = 1 #1 em vez de 100 - número de repetições para GP_fit para previsão de hiperplano
maxit=1 via ... será passado para o GPfit:: GP_fit e a otimização será executada 1 vez em vez de 100.Não notei nenhuma melhoria com 100 repetições em comparação com 1, então usei 1.
Ie.
Você também pode passar:
control = c(20*d, 10*d, 2*d);#default - control = c(200*d, 80*d, 2*d) - escolhe 80*d melhores de 200*d e constrói 2*d clusters - onde d é o número de parâmetros a serem otimizados
Sim, parece funcionar com Darch 30% no treinamento e 36% no teste. Vou terminar o EA, colocá-lo para funcionar e, então, talvez eu o faça.
Embora o Darch tenha um suporte insuficiente, eles corrigiram e melhoraram algumas coisas, mas em janeiro ele foi enviado do CRAN para o arquivo por falha na correção de erros (havia um com estimativa de erro no modo de treinamento com validação). Em maio, eles lançaram a versão 13, mas depois voltaram para a versão 12. Agora a 13ª versão apareceu novamente - aparentemente, eles a concluíram.
Obrigado pela informação. Vou tentar com seus parâmetros.
Faz muito tempo que não os visito no Github. Terei que escrever uma proposta. O pacote darch fornece o uso da GPU, mas eles removeram o pacote que usam para isso do CRAN (para a versão 3.4.4). E seria interessante saber como a GPU afetaria a velocidade e a qualidade.
Boa sorte
Há outro freio aqui
https://github.com/yanyachen/rBayesianOptimization/blob/master/R/Utility_Max.R
Também configurei maxit = 1 em vez de 100.
Por ... não pode ser passado, você pode simplesmente carregar sua função Utility_Max no R e usar a versão corrigida.
Outro retardado aqui
https://github.com/yanyachen/rBayesianOptimization/blob/master/R/Utility_Max.R
Também configurei maxit = 1 em vez de 100.
Por ... não pode ser passado, você pode simplesmente carregar sua função Utility_Max no R e usar a versão corrigida.
Eu a verifiquei na otimização do conjunto de redes neurais do artigo da Parte VI. Nem o maxit nem o controle têm um efeito visível no tempo de computação. A maior influência é o número de neurônios na camada oculta. Deixei assim
OPT_Res <- BayesianOptimization(fitnes, bounds = bonds, init_grid_dt = NULL, init_points = 20, n_iter = 20, acq = "ucb", kappa = 2.576, eps = 0.0, verbose = TRUE, maxit = 100, control = c(100, 50, 8)) elapsed = 14.42 Round = 1 numFeature = 9.0000 r = 7.0000 nh = 36.0000 fact = 9.0000 Value = 0.7530 elapsed = 42.94 Round = 2 numFeature = 4.0000 r = 8.0000 nh = 46.0000 fact = 6.0000 Value = 0.7450 elapsed = 9.50 Round = 3 numFeature = 11.0000 r = 5.0000 nh = 19.0000 fact = 5.0000 Value = 0.7580 elapsed = 14.17 Round = 4 numFeature = 10.0000 r = 4.0000 nh = 35.0000 fact = 4.0000 Value = 0.7480 elapsed = 12.36 Round = 5 numFeature = 8.0000 r = 4.0000 nh = 23.0000 fact = 6.0000 Value = 0.7450 elapsed = 25.61 Round = 6 numFeature = 12.0000 r = 8.0000 nh = 44.0000 fact = 7.0000 Value = 0.7490 elapsed = 8.03 Round = 7 numFeature = 12.0000 r = 9.0000 nh = 9.0000 fact = 2.0000 Value = 0.7470 elapsed = 14.24 Round = 8 numFeature = 8.0000 r = 4.0000 nh = 45.0000 fact = 2.0000 Value = 0.7620 elapsed = 9.05 Round = 9 numFeature = 7.0000 r = 8.0000 nh = 20.0000 fact = 10.0000 Value = 0.7390 elapsed = 17.53 Round = 10 numFeature = 12.0000 r = 9.0000 nh = 20.0000 fact = 6.0000 Value = 0.7410 elapsed = 4.77 Round = 11 numFeature = 9.0000 r = 2.0000 nh = 7.0000 fact = 2.0000 Value = 0.7570 elapsed = 8.87 Round = 12 numFeature = 6.0000 r = 1.0000 nh = 40.0000 fact = 8.0000 Value = 0.7730 elapsed = 14.16 Round = 13 numFeature = 8.0000 r = 6.0000 nh = 41.0000 fact = 10.0000 Value = 0.7390 elapsed = 21.61 Round = 14 numFeature = 9.0000 r = 6.0000 nh = 47.0000 fact = 7.0000 Value = 0.7620 elapsed = 5.14 Round = 15 numFeature = 13.0000 r = 3.0000 nh = 3.0000 fact = 5.0000 Value = 0.7260 elapsed = 5.66 Round = 16 numFeature = 6.0000 r = 9.0000 nh = 1.0000 fact = 9.0000 Value = 0.7090 elapsed = 7.26 Round = 17 numFeature = 9.0000 r = 2.0000 nh = 25.0000 fact = 1.0000 Value = 0.7550 elapsed = 32.09 Round = 18 numFeature = 11.0000 r = 7.0000 nh = 38.0000 fact = 6.0000 Value = 0.7600 elapsed = 17.18 Round = 19 numFeature = 5.0000 r = 3.0000 nh = 46.0000 fact = 6.0000 Value = 0.7500 elapsed = 11.08 Round = 20 numFeature = 6.0000 r = 4.0000 nh = 20.0000 fact = 6.0000 Value = 0.7590 elapsed = 4.47 Round = 21 numFeature = 6.0000 r = 2.0000 nh = 4.0000 fact = 2.0000 Value = 0.7390 elapsed = 5.27 Round = 22 numFeature = 6.0000 r = 2.0000 nh = 21.0000 fact = 10.0000 Value = 0.7520 elapsed = 7.96 Round = 23 numFeature = 7.0000 r = 1.0000 nh = 41.0000 fact = 7.0000 Value = 0.7730 elapsed = 12.31 Round = 24 numFeature = 7.0000 r = 3.0000 nh = 41.0000 fact = 3.0000 Value = 0.7730 elapsed = 7.64 Round = 25 numFeature = 8.0000 r = 4.0000 nh = 16.0000 fact = 7.0000 Value = 0.7420 elapsed = 6.24 Round = 26 numFeature = 13.0000 r = 5.0000 nh = 6.0000 fact = 1.0000 Value = 0.7600 elapsed = 8.41 Round = 27 numFeature = 11.0000 r = 8.0000 nh = 8.0000 fact = 7.0000 Value = 0.7420 elapsed = 8.48 Round = 28 numFeature = 6.0000 r = 7.0000 nh = 15.0000 fact = 2.0000 Value = 0.7580 elapsed = 10.11 Round = 29 numFeature = 12.0000 r = 6.0000 nh = 17.0000 fact = 4.0000 Value = 0.7310 elapsed = 6.03 Round = 30 numFeature = 8.0000 r = 3.0000 nh = 12.0000 fact = 1.0000 Value = 0.7540 elapsed = 8.58 Round = 31 numFeature = 13.0000 r = 5.0000 nh = 18.0000 fact = 2.0000 Value = 0.7300 elapsed = 6.78 Round = 32 numFeature = 13.0000 r = 2.0000 nh = 15.0000 fact = 8.0000 Value = 0.7320 elapsed = 9.54 Round = 33 numFeature = 10.0000 r = 3.0000 nh = 37.0000 fact = 9.0000 Value = 0.7420 elapsed = 8.19 Round = 34 numFeature = 6.0000 r = 1.0000 nh = 42.0000 fact = 3.0000 Value = 0.7630 elapsed = 12.34 Round = 35 numFeature = 7.0000 r = 2.0000 nh = 43.0000 fact = 8.0000 Value = 0.7570 elapsed = 20.47 Round = 36 numFeature = 7.0000 r = 8.0000 nh = 39.0000 fact = 2.0000 Value = 0.7670 elapsed = 11.51 Round = 37 numFeature = 5.0000 r = 9.0000 nh = 18.0000 fact = 3.0000 Value = 0.7540 elapsed = 32.71 Round = 38 numFeature = 7.0000 r = 7.0000 nh = 40.0000 fact = 6.0000 Value = 0.7540 elapsed = 28.33 Round = 39 numFeature = 7.0000 r = 9.0000 nh = 38.0000 fact = 5.0000 Value = 0.7550 elapsed = 22.87 Round = 40 numFeature = 12.0000 r = 6.0000 nh = 48.0000 fact = 3.0000 Value = 0.7580 Best Parameters Found: Round = 12 numFeature = 6.0000 r = 1.0000 nh = 40.0000 fact = 8.0000 Value = 0.7730 maxit = 100, control = c(100, 50, 8))Melhor 10
Valor - F1 médio. Não é um desempenho ruim.
Para acelerar os cálculos, precisamos reescrever algumas funções do pacote. A primeira coisa é substituir todos os ncol(), nrow(), que são muitos, por dim()[1], dim()[2]. Elas são executadas dezenas de vezes mais rápido. E provavelmente, como há apenas operações de matriz, usar GPU (pacote gpuR). Não poderei fazer isso sozinho, posso sugerir ao desenvolvedor?
Boa sorte
Verifiquei a otimização do conjunto de redes neurais do documento PartVI. Nem o maxit nem o controle têm um tempo de execução visível. A maior influência é o número de neurônios na camada oculta. Deixei assim
Melhor 10
Valor - F1 médio. Não é um desempenho ruim.
Para acelerar os cálculos, precisamos reescrever algumas funções do pacote. A primeira coisa é substituir todas as funções ncol(), nrow() por dim()[1], dim()[2]. Elas são executadas dezenas de vezes mais rápido. E provavelmente, como há apenas operações de matriz, usar GPU (pacote gpuR). Não poderei fazer isso sozinho, posso sugerir isso ao desenvolvedor?
Boa sorte
Otimize apenas alguns parâmetros. Eu otimizei 20 partes e, quando os pontos conhecidos se tornaram 20-40 partes, o cálculo apenas do GPfit levou dezenas de minutos; nessas condições, você verá a aceleração.
E o número de neurônios afeta apenas o tempo de cálculo do próprio NS.
Basta otimizar alguns parâmetros. Eu otimizei 20 peças e, quando os pontos conhecidos se tornaram 20-40 peças, o cálculo apenas do GPfit levou dezenas de minutos.
E o número de neurônios afeta apenas o tempo de cálculo do próprio NS.
Acho que sim.
Novo artigo Redes Neurais Profundas (Parte V). Otimização bayesiana de hiperparâmetros de DNN foi publicado:
Autor: Vladimir Perervenko