Как тренировать большие наборы с помощью Encog Java?

У меня есть огромный набор данных для обучения (гигабайты данных).

Есть ли способ загрузить и разгрузить по мере необходимости?

Было бы лучше разделить на небольшие части, скажем, по 100 МБ каждый, и тренировать каждое подмножество, пока ошибка не исчезнет. И когда это будет сделано, начать все сначала, пока все ошибки не будут достаточно хороши?

Спасибо


person rtmc    schedule 31.10.2015    source источник
comment
Я бы попробовал каждый метод и посмотрел, какой из них дает наилучшие результаты.   -  person Bill    schedule 31.10.2015


Ответы (1)


Итак, вы пробовали, что происходит, когда вы тренируетесь со всеми данными?

Должно быть возможно с encogs BufferedNeuralDataSet

Этот класс не основан на памяти, поэтому можно использовать очень длинные файлы без нехватки памяти. Этот набор данных использует двоичный обучающий файл Encog в качестве буфера. При использовании с набором данных с более медленным доступом, таким как CSV, XML или SQL, где должен выполняться синтаксический анализ, этот набор данных можно использовать для загрузки из более медленного набора данных и обучения на гораздо более высоких скоростях.

Кроме того, я не думаю, что вы получите хорошие результаты при обучении только с небольшими подмножествами, потому что вы уменьшаете ошибку с 1-м подмножеством, а затем переобучаетесь со вторым подмножеством, которое потенциально содержит очень разные данные, тем самым обучая сеть к ошибке, которая не будет хорошо для первого сета и так далее ...

person tom    schedule 31.10.2015