2015-04-01 13 views
0

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

подарил:

набор случайных чисел из нетривиального размера (скажем, по крайней мере, 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 (принимая наборы ввода и выполняя нечеткое сопоставление с статическим шаблоном, на котором он был подготовлен, чтобы искать) заключается в том, что они ограничены с точки зрения охвата того, что именно они могут быть обучены искать ,

У меня есть это право?

+0

Я не на 100% понимаю, что вы пытаетесь с ними сделать, но хорошая интуиция - думать о NN как о нечетких цифровых схемах. Если вы можете сделать цифровую схему, которая может выполнять вашу задачу, вы можете сделать NN, который также может это сделать. NN также могут принимать аналоговые значения в качестве входов, но они ограничены выполнением простых умножений на константы и суммы. Нелинейности можно использовать приближенно более сложные функции. – Houshalter

+0

@ Houshalter THX для возвращения ко мне! то, что я пытаюсь понять, является пределом способности NN распознавать шаблоны шаблонов шаблонов. Я знаю, что NN можно обучить распознавать конкретный образец, например x^2. Поэтому для каждого прогона, если существует последовательность, которая равна x^2 - NN, вероятно, сообщит об этом. Если каждый прогон имеет разные последовательности, скажем, x^2 для первого, 2x * 5 для второго, xlogx для третьего и т. Д., Тогда требуется более сложная NN, но его можно обучить тому, чтобы найти эти вещи. что я хочу подтвердить, я понимаю, что: –

+0

1) NN не сможет распознать шаблон, который явно не нужно было искать. 2) NN не может распознать более общую форму шаблона, которую обучили находить. Поэтому, хотя его можно обучить искать x^2, его никогда не научить искать x^y. –

ответ

1

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

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

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

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

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

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

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

+0

awesome. это именно то, что я искал - так много для вашей идеи! –