Deeplearning4j: итерации, эпохи и ScoreIterationListener

Добрый день всем.

Я новичок в библиотеке Deepleaning4j, и есть несколько вещей, которые мне до сих пор неясны. Понятие «эпоха» не ново, поэтому ясно, что оно представляет собой полный цикл на обучающей выборке. Мое первое сомнение связано с понятием «итерация». Что такое итерация по обучающему набору? Соответствует ли это анализу мини-пакетного количества обучающих экземпляров или чему-то еще?

В моем коде я установил ".iterations(1)"; однако, когда я запускаю свой код, я вижу много:

... ScoreIterationListener - Оценка на итерации XX равна yy.yyyyyy"

Итак, если я установил ".iterations(1)", почему я продолжаю видеть значения XX больше 1? Может быть, есть какие-то различия между идеей «итерации» как параметра конфигурации сети и тем, что «итерация» означает для класса ScoreIterationListener?

Спасибо всем за любой ответ или ссылку на полезную информацию.

Лучший, Мауро.


person Mauro    schedule 13.01.2017    source источник


Ответы (1)


В документации DeepLearning4J содержится хорошее понимание, особенно в отношении разницы между эпохами и итерация.

Согласно документации DL4J:

«Итерация — это просто одно обновление параметров модели нейронной сети. Не путать с эпохой, которая представляет собой один полный проход через набор данных. Многие итерации могут происходят до окончания эпохи. Эпоха и итерация являются синонимами только в том случае, если вы обновляете свои параметры один раз для каждого прохода через весь набор данных; если вы обновляете с помощью мини-пакетов, они означают разные вещи. Скажем, ваши данные имеют 2 мини-пакета: A и B . .numIterations(3) выполняет обучение как AAABBB, в то время как 3 эпохи выглядят как ABABAB."

Что касается вашего вопроса и как указано в этом отрывке, если вы установили .iterations(1) и имели только одну партию, итерация была бы синонимом 1 эпохи или одного прохода через полный набор данных. Однако, если вы обновляете с помощью мини-пакетов, эпоха и итерация будут немного отличаться — итерация приведет к AAABBB, а не к эпохе, которая даст ABABAB (см. пример выше).

Надеюсь, этот ответ и связанная документация ответят на ваш вопрос!

P.S. Я прошу прощения за поздний ответ; Я наткнулся на этот вопрос совсем недавно!

person aces_full    schedule 21.04.2017