Обсуждение статьи "Глубокие нейросети (Часть IV). Создание, обучение и тестирование модели нейросети" - страница 3

 
elibrarius:

Здравствуйте,
еще вопрос.
Зачем обучение разбивается на 2 этапа:
1 pretrain и последующее обучение только верхнего слоя DNN
и
2 тонкое обучение всей сети?

Не получим ли мы тот же результат без 2-го этапа, если расширим 1-й этап до
pretrain + тонкое обучение всей сети одновременно
(т.е. установим   rbm.lastLayer = 0, bp.learnRate = 1, darch.trainLayers = T)

Обновление. Поставил эксперимент: (красным показаны изменения в коде)

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)

получил:

У вас после второго этапа

Т.е. ошибка на валидационном участке такая же, т.е. 30%

Перед этим пробовал с

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

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

как в коде этапа 1, и получил:

Подумал, что одним этапом ошибку в 30% не получить, но после валидации набором из этапа 2 все стало так же хорошо, как у вас.
Возможно, что просто DTcut$val набор лучше  DTcut$train набора, потому он и в моем одном этапе показал такие же хорошие результаты, что и в ваших 2-х этапах.

Прочел. Отвечу чуть позже. Извините.
 

Еще вопрос появился )
В статье от 2014 года вы использовали для запуска эксперта на разных окнах разные порты подключения к R, через svSocket.

Сейчас это нужно тоже делать?

С последних статьях это не используется. Запускал эксперта на разных окнах (на одном символе, но с разными параметрами эксперта), он вызывает разные потоки RTerm, судя по результатам - вроде бы обращается каждый к своему. Но есть сомнение - вдруг надо все таки разделить по портам?

 
elibrarius:

Еще вопрос появился )
В статье от 2014 года вы использовали для запуска эксперта на разных окнах разные порты подключения к R, через svSocket.

Сейчас это нужно тоже делать?

С последних статьях это не используется. Запускал эксперта на разных окнах (на одном символе, но с разными параметрами эксперта), он вызывает разные потоки RTerm, судя по результатам - вроде бы обращается каждый к своему. Но есть сомнение - вдруг надо все таки разделить по портам?

Добрый день.

Я в дороге, поэтому коротко.

В первых статьях я использовал вариант клиент-сервер. Интересный вариант, но сейчас появились новые решения. Поэтому ничего разделять не нужно. Каждый процесс Rterm работает в своей песочнице.

Удачи

 
Vladimir Perervenko:

Добрый день.

Я в дороге, поэтому коротко.

В первых статьях я использовал вариант клиент-сервер. Интересный вариант, но сейчас появились новые решения. Поэтому ничего разделять не нужно. Каждый процесс Rterm работает в своей песочнице.

Удачи


Уважаемый добрый день, интересна статья новая ваша 4, у меня есть вопрос, реализовать советник можете по этой статье которая описана, естественно оплата будет, тех задание все дам, щас ищу именно нейронку обучения под цели, если да отпишите в ЛС там поговорим. Если Вы таким не занимаетесь то может подскажите к кому обратится для реализации советника под МТ5 нужна

 

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

 
А результат торговый у Вас получился?
 
Anton Ohmat:
А результат торговый у Вас получился?

Все вернулись к машкам. А это уже другая тема.