csrss Ответов: 1

Какую нейронную сеть выбрать


Привет, привет! Есть ли здесь какие-нибудь эксперты по ИИ? :)
Так что это общий вопрос, какую нейронную сеть я должен выбрать.
1. Что у меня есть.
Существует поток данных, который происходит один раз за раз, и данные имеют формат массива двойников:
{0.67, 0.70, 0.71, 0.70, 0.72}
{0.70, 0.71, 0.70, 0.69, 0.71}
{0.76, 0.74, 0.77, 0.73, 0.71}
{0.79, 0.74, 0.77, 0.71, 0.75}

Эти массивы появляются один за другим один раз за раз и имеют значение класса 1 (например). Их категория такова: один. В качестве потоков данных используются следующие массивы (или блоки данных: каждый массив представляет собой отдельный блок данных)::
{0.71, 0.70, 0.69, 0.67, 0.60}
{0.70, 0.69, 0.67, 0.60, 0.50}
{0.69, 0.67, 0.60, 0.50, 0.40}
{0.67, 0.60, 0.50, 0.40, 0.39}

И эти данные, каждый из этих массивов (или блоков данных) имеет категорию: два.
Как вы можете видеть, данные очень похожи, каждый массив почти одинаков. Но как человек - вы можете видеть, что есть падение во второй части блоков данных. Вот почему существуют категории: "один" и "два". Категория "один" означает, что существует постоянный поток данных. Категория "два" означает, что есть падение.

2. Что мне нужно.
Мне нужен ИИ, чтобы уметь различать эти блоки данных, когда данные постоянны, а когда есть падение. Не предсказывать, что произойдет дальше, а классифицировать то, что происходит прямо сейчас, когда поступает новый блок данных. И иметь возможность учиться по каждому новому блоку данных, не кэшируя предыдущие входные данные и не переучивая все накопленные входные данные как полный растущий обучающий набор.

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

Знаете ли вы какие-нибудь решения, которые могут это сделать? Я не пробовал сверточные сети - но, насколько я знаю, они учатся одинаково - им нужны все данные, чтобы присутствовать, или я ошибаюсь?

Спасибо.

Что я уже пробовал:

Многослойный персептрон - будучи в состоянии учиться так, как я требую, он имеет много проблем с различением данных. Он делает слишком много ошибок, один раз он может правильно различать данные, а другой раз он просто не знает, что происходит. Однако он имеет наименьшую скорость забывания старых данных.
Адаптивная Многогиперплоскостная машина (разновидность СВМ) - он учится здорово, но только если все данные уже присутствуют. Он не может учиться на каждый новый блок данных. Если я тренирую его на новых данных - он полностью забывает предыдущие данные.
Длительная кратковременная память - отличный классификатор, но опять же - только если все (обучающие) данные присутствуют. Таким образом, мне придется накапливать все входы и переобучать сеть каждый раз, когда поступает новый вход со всеми накопленными предыдущими входами. В какой-то момент у меня, конечно, кончится память.

1 Ответов

Рейтинг:
1

Gerry Schmitz

Это простая байесовская классификация.

Вы "обучаете" модель; затем запускаете ее с (случайными) выборками из обучающих данных, чтобы проверить ее; затем запускаете ее против фактических данных.

Не существует процедуры обучения "на лету".

(И ваша "классификация" отсутствует в ваших тренировочных данных).

Наивная байесовская классификация с C# | James D. McCaffrey[^]


csrss

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

CodeWraith

Это не совсем "на лету", но сочетание обычных методов обучения с эволюционным алгоритмом может сделать трюк.

csrss

Спасибо, но нет. Я имею в виду, что нейроэволюция не учится "на лету", как предполагает ее название. Эволюционная сеть развивается в контексте конечных данных. Таким образом, на самом деле он действует точно так же, как, скажем, базовый MLP. Единственное различие здесь-топология. Поэтому любое сочетание с "регулярным" обучением бессмысленно. Ну, похоже, что нейронные сети ограничены в обработке конечных данных. Вот и все. NN-это не намного больше, чем обычный алгоритм.