← Вернуться к списку

Можно ли обучить модель, начиная с другой модели, обученной на подмножестве набора данных?

Краткое содержание

Я хочу создать нейронную сеть и обучить её на каких-то данных, однако я хочу иметь возможность создавать новую модель без переобучения с нуля. Например, у меня есть 1000 точек данных в моей обучающей выборке: – модель – обучена на 0-99 – модель – обучена на 1-100 – модель – обучена на 2-101 и так далее. Поэтому я задаюсь вопросом, могу ли я использовать первую модель для обучения второй модели, по сути, забывая первую точку данных. Можно рассматривать это как скользящее окно по 1000 точкам данных, сдвигающееся на одну точку вправо для каждой новой модели. Имеет ли это смысл? Существует ли какой-либо простой способ решить эту проблему?

Полный текст

Могу ли я обучить модель, начиная с другой модели, обученной на подмножестве набора данных? Задать вопрос

Задано 7 лет, 9 месяцев назад Изменено сегодня Просмотрено 201 раз

Задано 7 лет, 9 месяцев назад

3 $\begingroup$ Я хочу создать нейронную сеть и обучить ее на некоторых данных, однако я хочу иметь возможность создать новую модель, не переобучая ее с нуля. Например, у меня есть 1000 точек данных в моей обучающей модели - обучено на 0-99, модель - обучено на 1-100, модель - обучено на 2-101 и так далее. Поэтому я задаюсь вопросом, могу ли я использовать первую модель для обучения второй модели, по сути, "забывая" первую точку данных. Вы можете рассматривать это как скользящее окно по 1000 точкам данных, сдвигающееся на одну точку данных вправо для каждой новой модели. Это имеет смысл? Есть ли какой-либо простой способ решить эту проблему? нейронные-сети обучающие-наборы-данных Поделиться Улучшить этот вопрос Следить отредактировано 10 мая 2023 г. в 21:14 nbro 43,2 тыс. 14 14 золотых значков 121 121 серебряных значков 222 222 бронзовых значков задано 10 апреля 2018 г. в 21:30 norflow 41 1 1 бронзовый значок $\endgroup$ 9 2 $\begingroup$ Поскольку обычно основная цель обучения НС - это обобщение функции из примерных данных, не могли бы вы уточнить, что вы подразумеваете под "забыванием первой точки данных"? Вы хотите намеренно переобучить, чтобы прогнозы по первой точке данных не были лучше случайных? Если нет, у вас есть какие-либо критерии для того, когда обучение для любой конкретной модели, например, "модель 2, обученная на 1-100", будет завершено или будут ли ее результаты приемлемы для вас? Очевидно, что можно взять модель 1 и переобучить ее, но в вопросе отсутствует цель этого - и это влияет на ответ здесь. $\endgroup$ Neil Slater – Neil Slater 2018-04-10 22:00:12 +00:00 Прокомментировано 10 апреля 2018 г. в 22:00 $\begingroup$ Идея в том, что первая точка данных больше не актуальна. Я не хочу переобучения, поэтому представьте себе непрерывное добавление точек данных. Для данной ситуации актуальны только 100 последних точек данных. При добавлении точки данных последняя модель обучается на точке данных, которая (теоретически) больше не актуальна. $\endgroup$ norflow – norflow 2018-04-10 22:15:39 +00:00 Прокомментировано 10 апреля 2018 г. в 22:15 $\begingroup$ Дополняя свой комментарий, по сути, я спрашиваю, возможно ли для модели учитывать только последние точки данных, не переобучая модель с нуля на последних данных - а только частично обучая ее каким-то образом, заставляя ее "забывать" больше неактуальные данные из предыдущего набора обучения. $\endgroup$ norflow – norflow 2018-04-10 23:16:35 +00:00 Прокомментировано 10 апреля 2018 г. в 23:16 $\begingroup$ Если вы боитесь переобучения, есть гораздо лучшие способы, такие как dropout, l2 регуляризация и просто стохастическая пакетная обработка. $\endgroup$ Andreas Storvik Strauman – Andreas Storvik Strauman 2018-04-11 07:03:53 +00:00 Прокомментировано 11 апреля 2018 г. в 7:03 $\begingroup$ На самом деле, ваш метод очень похож на перекрестную проверку (не сайт SE, а сам алгоритм), которая исключает часть данных для каждой итерации. $\endgroup$ Andreas Storvik Strauman – Andreas Storvik Strauman 2018-04-11 07:06:04 +00:00 Прокомментировано 11 апреля 2018 г. в 7:06 | Показать еще 4 комментария 1 Ответ 1 Сортировка по: Сбросить по умолчанию Наивысший балл (по умолчанию) Дата изменения (сначала новые) Дата создания (сначала старые) 0 $\begingroup$ tl;dr Да. Вопрос: Могу ли я обучать, начиная с обученной сети, а не с сети, инициализированной с нуля? Ответ: Вы можете и должны сохранять веса сети после завершения обучения. Вы также можете сохранить ее в памяти после записи копии на диск. Затем, если вы продолжите обучение сети, вы сможете сохранить ее снова под другим именем файла. Вы можете повторить это для набора входных данных. В конце процесса у вас будет только одна сеть в памяти, у вас будет несколько файлов "снимков" весов, и каждый снимок будет результатом обучения на другом участке общих данных. Поделиться Улучшить этот ответ Следить ответил 29 мая 2022 г. в 0:23 EngrStudent 371 3 3 серебряных значка