Discussão do artigo "Redes Neurais Profundas (Parte VI). Ensemble de classificadores de redes neurais: bagging" - página 2

 
elibrarius:

Versão

Funciona. Ela fornece os mesmos pesos de rede toda vez que é executada. Comparei a segunda rede. Gerei env$Ens[2] e, em seguida, comparei-a por plug-in no notepad++.

Não funcionou com multithreading:

Erro em setMKLthreads(2): não é possível encontrar a função "setMKLthreads"

O que é essa função? Ela não está no código dos artigos 4 e 6. Como conectá-la?

PS: Teria sido mais conveniente se você tivesse postado a sessão do R com todas as funções e dados de origem.

Publiquei as citações, todas as funções e os scripts executáveis. Execute-os sequencialmente, copiando-os do artigo ou do GIThub.

Você pode ver a função "setMKLthreads"

 
Esqueci de perguntar se você tem o MRO 3.4.3 instalado?
 
Vladimir Perervenko:
Esqueci de perguntar se você tem o MRO 3.4.3 instalado?
Eu tenho o (R-3.4.3 para Windows) instalado a partir daqui https://cloud.r-project.org/
 
elibrarius:
Tenho o (R-3.4.3 para Windows) instalado a partir daqui https://cloud.r-project.org/

Basta comentar as linhas com a configuração da contagem de threads. A biblioteca Intel MKL não é fornecida com o R puro.

 
Vladimir Perervenko:

Basta comentar as linhas que definem o número de threads. A biblioteca Intel MKL não funciona com o R puro.

Foi isso que eu fiz. Executei a otimização duas vezes para verificar e obtive o mesmo resultado

numFeature r nh fact Value
1 11 8 19 4 0.768
2 8 8 18 4 0.754
3 11 8 15 4 0.753
4 11 9 13 8 0.750
5 12 8 15 4 0.750
6 9 8 39 4 0.748
7 10 8 6 3 0.745
8 11 8 20 6 0.743
9 10 8 14 3 0.743
10 8 9 40 7 0,743

Um pouco pior que o seu, mas acho que é apenas uma combinação menos bem-sucedida do HGC.

 
Vladimir Perervenko:

A biblioteca Intel MKL não funciona com o R puro.

Eu queria fazer o download da MKL. Eles me pediram para me registrar, - eu o fiz e eles exibiram a seguinte mensagem:
Obrigado por se registrar nas bibliotecas de desempenho Intel®.
Verifique seu e-mail para obter instruções sobre o download do produto.Observe que isso pode levar até dois dias úteis.

Em 20 minutos, ainda não recebi um link para download. Eles estão falando sério sobre 2 dias?

 
elibrarius:

Então eu fiz isso. Executei a otimização duas vezes para verificar e obtive o mesmo resultado

numFeature r nh fact Value
1 11 8 19 4 4 0.768
2 8 8 18 4 0.754
3 11 8 15 4 0.753
4 11 9 13 8 0.750
5 12 8 15 4 0.750
6 9 8 39 4 0.748
7 10 8 6 3 0.745
8 11 8 20 6 0.743
9 10 8 14 3 0.743
10 8 9 40 7 0,743

Um pouco pior que o seu, mas acho que é apenas uma combinação menos bem-sucedida de DSTs.

Eu sempre uso o pacote doRNG ao usar o foreach (DST muito estável).

Esse não deveria ser o caso. Cada nova execução da otimização deve produzir resultados diferentes!

 

Executei a otimização agora e obtive

 Best Parameters Found: 
Round = 18      numFeature = 8.0000     r = 1.0000      nh = 34.0000    fact = 10.0000  Value = 0.7700 
> evalq({
+   OPT_Res %$% History %>% dplyr::arrange(desc(Value)) %>% head(10) %>%
+     dplyr::select(-Round) -> best.init
+   best.init
+ }, env)
   numFeature  r nh fact Value
1           8  1 34   10 0.770
2           7  1 15   10 0.766
3          11  2 15   10 0.765
4           9  1 36   10 0.765
5           3  7 13    5 0.761
6           7  8  8   10 0.748
7          11  6 29   10 0.748
8           3 10 49    1 0.748
9           7  7 23   10 0.746
10          3  1  1   10 0.745

Se você executar a otimização com os 10 principais parâmetros resultantes, terá mais opções. Assim

#---Optim  Ensemble-----
evalq(
  OPT_Res <- BayesianOptimization(fitnes, bounds = bonds,
                                  init_grid_dt = best.init, init_points = 10, 
                                  n_iter = 20, acq = "ucb", kappa = 2.576, 
                                  eps = 0.0, verbose = TRUE)
  , envir = env)

Você pode continuar quantas vezes quiser.

Boa sorte

 
Vladimir Perervenko:

Eu sempre aplico o pacote doRNG ao usar o foreach (GCH muito estável).

Esse não deveria ser o caso. Cada nova execução da otimização deve produzir resultados diferentes!

Tentei sua variante duas vezes e obtive resultados diferentes.
Parece-me que a reprodutibilidade/repetição com reinicializações é ainda melhor.

 
elibrarius:

Tentei sua variante duas vezes e obtive resultados diferentes.
Parece-me que a reprodutibilidade/repetibilidade com reinicializações é ainda melhor.

Você consegue sentir a diferença agora? Basta ler o artigo com atenção. Eu destaquei especificamente esse recurso da otimização bayesiana.

Boa sorte com seus experimentos