Discusión sobre el artículo "Neuroredes profundas (Parte IV). Creación, entrenamiento y simulación de un modelo de neurored" - página 3

 
elibrarius:

Hola,
otra pregunta.
¿Por qué se divide el entrenamiento en 2 etapas:
1 preentrenar y luego entrenar sólo la capa superior de la DNN
y
2 aprendizaje fino de toda la red?

¿No obtendríamos el mismo resultado sin la 2ª etapa si extendemos la 1ª etapa a
preentrenar + aprendizaje fino de toda la red al mismo tiempo
(es decir, establecer rbm.lastLayer = 0, bp.learnRate = 1, darch.trainLayers = T)

Actualización. Puse en marcha un experimento:(rojo muestra los cambios en el código)

evalq({
  require(darch)
  require(dplyr)
  require(magrittr)
  Ln <- c(0, 16, 8, 0)
  nEp_0 <- 25
  #------------------
  par_0 <- list(
    layers = Ln,
    seed = 54321,
    logLevel = 5,
    # params RBM========================
    rbm.consecutive = F, # each RBM is trained one epoch at a time
    rbm.numEpochs = nEp_0,
    rbm.batchSize = 50,
    rbm.allData = TRUE,
    rbm.lastLayer = 0,
    rbm.learnRate = 0.3,
    rbm.unitFunction = "tanhUnitRbm",
    # params NN ========================
    darch.batchSize = 50,
    darch.numEpochs = nEp_0,
    darch.trainLayers = T,
    darch.unitFunction = c("tanhUnit","maxoutUnit", "softmaxUnit"),
    bp.learnRate = 1,
    bp.learnRateScale = 1,
    darch.weightDecay = 0.0002,
    darch.dither = F,
    darch.dropout = c(0.1,0.2,0.1),
    darch.fineTuneFunction = backpropagation, #rpropagation
    normalizeWeights = T,
    normalizeWeightsBound = 1,
    darch.weightUpdateFunction = c("weightDecayWeightUpdate",
                                   "maxoutWeightUpdate",
                                   "weightDecayWeightUpdate"),
    darch.dropout.oneMaskPerEpoch = T,
    darch.maxout.poolSize = 2,
    darch.maxout.unitFunction = "linearUnit")
  #---------------------------
 
  DNN_default <- darch(darch = NULL,
                       paramsList = par_0,
                       x = DTcut$pretrain$woe %>% as.data.frame(),
                       y = DTcut$pretrain$raw$Class %>% as.data.frame(),
                        xValid = DTcut$val$woe %>% as.data.frame(),
                        yValid = DTcut$val$raw$Class %>% as.data.frame()
  )
}, env)

conseguido:

Usted tiene después de que el segundo paso.

Es decir, el error en la sección de validación es el mismo, es decir, 30%.

Antes probé con

xValid = DTcut$train$woe %>% as.data.frame(),

yValid = DTcut$train$raw$Class %>% as.data.frame()

como en el código del paso 1, y obtuve:

Pensé que no se puede obtener un error del 30% con un paso, pero después de la validación con el conjunto de validación del paso 2, todo se volvió tan bueno como el tuyo.
Es posible que sólo DTcut$val set sea mejor que DTcut$train set, por eso mostró los mismos buenos resultados en mi un paso como en tus 2 pasos.

Lee. Voy a responder un poco más tarde. Lo siento.
 

Apareció otra pregunta )
En el artículo de 2014 utilizabas diferentes puertos de conexión a R vía svSocket para ejecutar el Expert Advisor en diferentes ventanas.

Es necesario hacerlo ahora también?

En los últimos artículos no se utiliza. Ejecuté el Asesor Experto en diferentes ventanas (en el mismo símbolo, pero con diferentes parámetros de EA), llama a diferentes hilos RTerm, a juzgar por los resultados - parece dirigirse cada uno a lo suyo. Pero hay una duda - ¿y si es necesario separar por puertos?

 
elibrarius:

Apareció otra pregunta )
En el artículo de 2014 utilizabas diferentes puertos de conexión a R vía svSocket para ejecutar el Expert Advisor en diferentes ventanas.

Es necesario hacerlo ahora también?

En los últimos artículos no se utiliza. Ejecuté el Asesor Experto en diferentes ventanas (en el mismo símbolo, pero con diferentes parámetros de EA), llama a diferentes hilos RTerm, a juzgar por los resultados - parece dirigirse cada uno a lo suyo. Pero hay una duda - ¿y si es necesario separar por puertos?

Buenas tardes.

Estoy de viaje, así que seré breve.

En los primeros artículos utilicé la variante cliente-servidor. Es una opción interesante, pero ahora hay nuevas soluciones. Así que no es necesario separar nada. Cada proceso Rterm trabaja en su propio sandbox.

Suerte

 
Vladimir Perervenko:

Buenas tardes.

Estoy de viaje, así que seré breve.

En los primeros artículos utilicé la variante cliente-servidor. Es una opción interesante, pero ahora hay nuevas soluciones. Así que no hay necesidad de separar nada. Cada proceso Rterm trabaja en su propia caja de arena.

Buena suerte


Estimado buen día, interesante artículo es su nuevo 4, tengo una pregunta, se puede implementar un asesor de acuerdo con este artículo, que se describe, por supuesto, el pago será, tarea técnica todo va a dar, estoy buscando neuronka formación en virtud de los objetivos, si es así, escribir a LS allí vamos a hablar. Si usted no está involucrado en este tipo de trabajo, entonces tal vez usted me puede decir a quién recurrir para la implementación de un Asesor de Expertos bajo MT5 necesidad de

 

Gracias Vladimir! la serie es genial, las herramientas introducidas son realmente útiles. He estado experimentando en algunos índices, el resultado es más o menos, en general ligeramente mejor. He probado la entrada "bin" para darch, es similar a "woe", mientras que el "dum" es malo. tal vez demasiada entrada no es una buena cosa.

¡"Tensorflow" paquete suena prometedor. no puedo esperar a que el artículo!

 
isaacctk :

¡Спасибо, Владимир! серия отличная, инструменты, представленные, действительно полезны. Я экспериментировал по некоторым показателям, результат более или менее, в целом немного лучше. Я попробовал вход "bin" для darch, он похож на "горький", в то время как "dum" плохой. возможно, слишком много ввода не очень хорошо.

Пакет "Tensorflow" звучит многообещающе. ¡не могу дождаться статьи!

Oh. Las tres últimas partes del artículo están casi listas. Tal vez antes del Año Nuevo voy a tener tiempo para pasar para su verificación.

Buena suerte

 

非常感谢你的系列文章,我一直在跟踪学习,可是因为我知识结构的局限,理解这些文章不是件容易的事情。即使这样,还是希望能不断看到您的新文章,期待您发表新文章!谢谢!

 
Gracias por utilizar mi paquete OneR. ¡De nuevo es fascinante ver que incluso un DNN sofisticado no es mucho mejor que el modelo OneR!
OneR - Establishing a New Baseline for Machine Learning Classification Models
  • An R package by Holger K. von Jouanne-Diedrich
  • cran.r-project.org
OneR is the main function of the package. It builds a model according to the One Rule machine learning algorithm for categorical data. All numerical data is automatically converted into five categorical bins of equal length. When verbose is TRUE it gives the predictive accuracy of the attributes in decreasing order. bin bin discretizes all...
 
vonjd :
Благодарим вас за использование моего пакета OneR. ¡Еще раз увлекательно видеть, что даже сложный DNN не намного лучше, чем модель OneR!

Esto sólo es cierto para DNN con parámetros por defecto. Con hiperparámetros optimizados, DNN muestra resultados mucho mejores. Véase la Parte V.

Suerte

 
Vladimir Perervenko:

Esto sólo es cierto para DNN con los parámetros por defecto. Con hiperparámetros optimizados, DNN muestra resultados mucho mejores. Véase la Parte V.

Buena suerte

¿Cuándo veremos la Parte V ? Muy esperada.