Визуализация влияния batch_size на качество модели wordchar2vector - ч.2

Mar 15, 2018 19:39

В комментарии к предыдущему посту коллега p2004r подсказал замечательную мысль по поводу того, что надо бы смотреть не на количество эпох, а на количество градиентов, которые увидела сетка при обучении. И получается вот такая замечательная картина.

1) Смотрим по-старому, динамика обучения в зависимости от числа эпох:
Read more... )

neural nets, нейросети, neuronet

Leave a comment

Comments 5

p2004r March 16 2018, 13:51:37 UTC
Пожалуй во фреймворках популярных вполне бы пригодился специальные методы обработки объекта с сохраненной историей обучения модели, которые могли бы осуществлять вот этот пересчет (и визуализацию) прозрачно для пользователя.

Можно автору keras в git такое предложение о развитии функций пакета добавить.

Reply

kelijah March 17 2018, 03:51:00 UTC
В Keras уже все есть, в частности fit* методы возвращают объект класса History с историей метрик при обучении. Подпихнуть данные из него в matplotlib тоже пустяшное дело.

При необходимости можно воспользоваться штатным механизмом колбэков https://keras.io/callbacks/ и добавить что-то свое, сохранять хоть в БД.

А переход от эпох к батчам в принципе делается тривиально.

Reply

p2004r March 17 2018, 05:48:50 UTC
Когда пользователь делает отображение результатов оптимизации значений гиперпараметров процесса обучения сети готовый метод следящий за тем, что по "оси Х" "не откладываются килограммы с секундами" не помешает.

Иначе зачем там вообще введен "объект", который не имеет "методов" учитывающих "его природу и размерность"? Генерик функция "нарисовать" должна принимать несколько объектов истории и учитывать ситуацию изменения размера batch.

PS Вообще все эти "эпохи" (которые то и "логичны" только когда не написан fit-генератор и сделана заглушка для простых случаев train), по сути имеем решение сделанное от рандомизации "в стиле складного ножа", и еще большой вопрос как оно соотносится по эффективности с простой "выборкой с возвращением"...

Обычно простой бутстреп лучше чем "складной нож".

Ну вот выкиньте из fit-генератора этой задачи условие "обходить все случаи в обучающей выборке каждую эпоху строго по одному разу"?

Reply

kelijah March 17 2018, 13:55:48 UTC
>Обычно простой бутстреп лучше чем "складной нож".

>Ну вот выкиньте из fit-генератора этой задачи условие "обходить все случаи в обучающей выборке каждую эпоху строго по одному разу"?

Вот насчет бутстрепа я действительно никогда не думал применительно к подаче датасета на сетку, спасибо за идею. Сразу возникает вопрос - а может ли это дать какой-то бонус на маленьких выборках? Надо бы попробовать на рабочей задаче, сравнить точность на валидации.

Reply


Leave a comment

Up