Можно ли научить нейронную сеть распознавать формы абстрактных паттернов?

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

дано:

набор случайных целых чисел нетривиального размера (скажем, не менее 500)

искусно созданная / обученная нейронная сеть.

задача:

числовая анаграмма: создайте наибольшее представление бесконечной последовательности целых чисел, возможной в данном временном интервале, где последовательность может быть представлена ​​в закрытой форме (то есть - n^2, 2x+5 и т. д.) или зарегистрирована в OEIS ( http://oeis.org/). числа, используемые для создания последовательности, могут быть взяты из входного набора в любом порядке. поэтому, если сеть запитана (3, 5, 1, 7...), возвращение (1, 3, 5, 7 ...) будет приемлемым результатом.

Насколько я понимаю, ANN можно научить искать конкретный шаблон последовательности (опять же - n^2, 2x+5 и т. д.). что мне интересно, так это то, можно ли сделать так, чтобы он распознавал более общий паттерн, такой как n^y или xy+z. я думаю, что это не удастся, потому что n^y может создавать последовательности, которые выглядят достаточно отличающимися друг от друга, что невозможно установить стабильный "базовый шаблон". это - неотъемлемая часть того, как работает сеть ANN (принимая наборы входных данных и проводя нечеткое сопоставление со статическим шаблоном, который он обучен искать), заключается в том, что они ограничены с точки зрения того, к чему их можно обучить, чтобы искать,

я правильно понял?

1 ответ

Решение

Продолжая разговор, который я имел с вами в комментариях:

Нейронные сети все еще могут быть полезны. Вместо обучения нейронной сети для поиска единого шаблона, нейронная сеть может быть обучена для прогнозирования данных. Если данные содержат предсказуемый шаблон, NN может его изучить, и веса NN будут представлять шаблон, который он изучил. Я думаю, что это может быть то, что вы намеревались сделать.

Некоторые вещи, которые могут быть полезны для вас, если вы сделаете это:

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

Рекуррентные нейронные сети могут моделировать последовательности данных, а не только отдельные точки данных. Это больше похоже на то, что вы ищете.

Композиционная сеть создания паттернов (CPPN) - это действительно модное слово для нейронной сети с математическими функциями в качестве функций активации. Это позволит вам моделировать функции, которые нелегко аппроксимируют NN, с помощью простых функций активации, таких как сигмоиды или ReLU. Но обычно в этом нет необходимости, поэтому не беспокойтесь об этом до тех пор, пока у вас не заработает простая NN.

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

Другие вопросы по тегам