Вопросы
42

Вопрос по нейросетям

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

Есть ли методы непрерывного обучения, где в нейросеть постоянно подаются новые примеры без повторов?

0
30 комментариев
Популярные
По порядку
Написать комментарий...
42

Похоже на то что нужно. Но эта статься задавила формулами..

Ответить
0
Развернуть ветку
Zhenia

статься задавила формулами
Сам же в нейронки полез)

Ответить
5
Развернуть ветку
42

Это пока самое сложное, что я читал по этой теме
http://nn.cs.utexas.edu/downloads/papers/stanley.ec02.pdf

Ответить
0
Развернуть ветку
Роман Величкин

Формулы несложные, с наскока тяжело понять,но если почитать и вникнуть, то проблем не должно возникнуть.

Ответить
0
Развернуть ветку
Роман Величкин

Отличная тема! Выглядит многообещающе, надо будет углубиться.

Ответить
0
Развернуть ветку
Роман Величкин

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

Можно автоматизировать процесс так, что текущая версия нейронки используется, а новая параллельно обучается. И если у новой нейронки получается результат лучше, то старая версия обновляется до новой.

Ответить
1
Развернуть ветку
42

Я хотел сделать именно так)

Ответить
0
Развернуть ветку
Ярослав Голубев

Есть - это наши мозги :)

А нейросетки трясут пока узлы не начнут выдавать что то удаленно похожее на подаваемый на выход результат

Ответить
–3
Развернуть ветку
42

Не обязательно. Например можно обучать нейросеть без примеров, но с поощрением за приближенный к правильному результату вывод. Или "обучать" их через генетические алгоритмы.

Ответить
0
Развернуть ветку
Военный меч

Ну сам и ответил на свой вопрос

Ответить
0
Развернуть ветку
42

Отчасти сам. Спасибо, утята)

Ответить
0
Развернуть ветку
Alexander Mikhaylov

а откуда у тебя "правильные результаты" без примеров возьмутся

Ответить
0
Развернуть ветку
42

Из фитнес функции, через которую ты вводишь оценку результата нейросетки. Выживают нейросети с наиюолее успешными (по определению фитнес функции) генами. Собственно в данном методе правильное определение критериев правильность - самое сожное.

Ответить
0
Развернуть ветку
Alexander Mikhaylov

ну так
как ты будешь оценивать правильность результатов без примеров с известным тебе правильным результатом

Ответить
0
Развернуть ветку
42

Естественно у тебя будут примеры.
Только их может быть недостаточно для обучения. По этому методу можно лить в нейронку реальные данные для обучения без их разметки и подготовки (насколько я понял).

Ответить
0
Развернуть ветку
Alexander Mikhaylov

и как тогда оценивать правильность предсказаний, если тебе самому не известны результаты

Ответить
0
Развернуть ветку
42

предсказаний
Будто нейросети только предсказывают)

Ответить
0
Развернуть ветку
Alexander Mikhaylov

в общем случае да

так и как оценивать правильность, если ты сам не знаешь правильных результатов

Ответить
0
Развернуть ветку
42

Подать на вход имеющиеся данные, получить результат и сравнить с тем что ты считаешь правильным. Ты определяешь что правильно при инициализации нейросети, она пытается подстроиться под это.

Тот момент, когда пытаешься своими словами описать reinforcement learning, но получается не очень.

Ответить
0
Развернуть ветку
Alexander Mikhaylov

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

Ответить
0
Развернуть ветку
Военный меч

Просто это, как я понимаю, гораздо более ресурсоёмкая задача

Ответить
0
Развернуть ветку
Роман Величкин

В GANах обучаются две соперничающие сети - одна генерирует результат, другая его проверяет. Обе за время обучения становятся лучше в своём деле.

Ответить
0
Развернуть ветку
Рома Макара

Ну смотри. Самая обычная нейронка (ну, среднестатистическая стартовая) это та, где ты всовываешь ей кучу размеченых примеров и радуешься. Однако в этой же базе говорится про деление на батчи.
Так вот один из простейших подходов - всовывать нейронке одно текущее значение и сразу же обучать (размер датасета = 1). Но это не совсем хороший подход.
Усовершенствование - в реал-тайме собираешь батч, условно ждешь пока накопится 100 примеров и запускаешь обучение, снова ждешь и копишь, снова обучаешь, повторить.
Ну, это самые базовые и максимально близкие к основе подходы.

Ответить
0
Развернуть ветку
42

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

Ответить
0
Развернуть ветку
Рома Макара

Ну да. Кстати, можно ускорить набор батча засчет создания нескольких инстансов. Хз как объяснить нормальнее, но в общем вот видео, тут флаппи берд обучают. И вместо одной птички одновременно запускают десять (хз применимо ли это в твоем алгоритме, но вдруг). Правда тут метод обучения немного сложнее чем то что я описал, но может подойти.
https://www.youtube.com/watch?v=aeWmdojEJf0

Ответить
0
Развернуть ветку
42

Это другой метод обучения, основанный на генетических алгоритмах. Для ускорения обучения создается поколение с некоторым количеством особей с некоторыми мутациями в базовом геноме поколения.

Ответить
0
Развернуть ветку
Александр Валиулин

Вообще, я бы порекомендовал тогда погрузиться во few-shot learning, но конкретно ты спрашиваешь про reinforcement learning.

Ответить
0
Развернуть ветку
Читать все 30 комментариев
null