Эффективный размер набора данных для обучения нейронной сети корм

StackOverflow https://stackoverflow.com/questions/4100785

Вопрос


Я использую нейронную сеть Feed-Foward в Python, используя Pybrain реализация. Для тренировки я буду использовать алгоритм заднего распространения. Я знаю, что с нейронными сетянами нам нужно иметь правильное количество данных, чтобы не под / переусердствовать сети. Я мог бы получить около 1200 различных шаблонов обучения данных для наборов данных.
Итак, вот вопрос:
Как я могу рассчитать оптимальное количество данных для моего обучения?

Поскольку я попробовал с 500 предметами в наборе данных, и для сходимости потребовалось много часов, я бы предпочел не пробовать слишком много размеров. Результаты, которые мы довольно хороши с этим последним размером, но я хотел бы найти оптимальное количество. Нейронная сеть имеет около 7 входов, 3 скрытых узлов и один вывод.

Это было полезно?

Решение

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

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

Результаты были довольно хороши с этим последним размером, но я хотел бы найти оптимальное количество.

«Оптимальный» не обязательно возможно; Это также зависит от вашего определения. Как вообще вы ищете высокую степень уверенности в том, что заданный набор весов будет работать «хорошо» на невидимых данных. Это идея, стоящая за набором проверки.

Другие советы

Разнообразие набора данных гораздо важнее, чем количество образцов, которые вы подарите в сеть.

Вы должны настроить ваш набор данных, чтобы включить и усилить данные, которые вы хотите, чтобы сеть училась.

После того, как вы создали этот пользовательский набор данных, вы должны начать играть с количеством образцов, так как он полностью зависит от вашей проблемы.

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

Технически говоря, в общем случае, и предполагая, что все примеры верны, то большее количество примеров всегда лучше. Вопрос действительно есть, каково предельное улучшение (первое производное качества ответа)?

Вы можете проверить это, обучая его 10 примерами, проверяя качество (скажем, 95%), затем 20, и так далее, чтобы получить таблицу, как:

10 95%
20 96%
30 96.5%
40 96.55%
50 96.56%

Затем вы можете четко видеть ваши предельные природы и соответствующим образом принять решение.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top