Как мы можем научить нейронную сеть создавать произвольные ассоциации данных?

Aug 20 2020

Скажем, у меня есть пары ключей и значений формы $(x_1, y_1), \dots, (x_N, y_N)$. Затем я даю нейронной сети ключ и значение,$(x_i, y_i)$. Например,$x_i$ может быть $4$ и $y_i$ может быть $3$, но это не обязательно.

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

Кстати, а как наш мозг выполняет эту функцию?

Ответы

3 16Aghnar Aug 20 2020 at 15:11

В двух словах: запоминание - это не обучение

Итак, сначала давайте просто напомним классическое использование нейронной сети в контролируемом обучении :

  • У вас есть набор $(x_{train}, y_{train}) \in X \times Y$ пары, и вы хотите извлечь общий закон отображения из $X$ к $Y$
  • Вы используете функцию нейронной сети $f_{\theta} : x \rightarrow f_{\theta}(x)$, с участием $\theta$ вес (параметры) вашей сети.
  • Вы оптимизируете $f_{\theta}$ путем минимизации ошибки прогнозирования, представленной функцией потерь.

Может ли это решить ваш вопрос? Я так не думаю. По этой схеме ваша нейронная сеть изучит соответствующее отображение из набора$X$ к набору $Y$, но это сопоставление подходит для вашей функции потерь, а не для вашей $(x_{train}, y_{train})$ пары.

Представьте, что небольшая часть данных неправильно помечена. Правильно обученная сеть учится извлекать релевантные функции и, таким образом, правильно предсказывает метку, в отличие от вас. Таким образом, сеть не запоминает ваши пары, она выводит общий закон из данных, и этот закон может не соблюдать каждый$(x_{train}, y_{train})$. Итак, классическое контролируемое глубокое обучение не должно запоминать$(x_{train}, y_{train})$ пары.

Однако вы можете запомнить, используя сеть со слишком большим количеством параметров: это переоснащение !

  • В этом случае вы настроили сеть со слишком большим количеством параметров. Это дает вашей сети слишком много степеней свободы, и сеть будет использовать эти DoF, чтобы точно соответствовать каждому.$(x_{train}, y_{train})$ пара, которую вы кормите во время тренировки.
  • Однако для входа $x$ что никогда не видел во время тренировки, $f_{\theta}(x)$не имело бы смысла. Вот почему мы говорим, что переобученная сеть не обучалась, а многие практикующие ДО опасаются переобучения.

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

А что с мозгом?

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

Некоторые мысли для начала:

  1. Мозг имеет невероятно огромное количество параметров и обладает большой пластичностью. В этом смысле мы могли бы провести параллель с переоборудованными нейронными сетями: чтобы мозг также мог переобучаться и, таким образом, запоминать с помощью этого средства.
  2. Наш мозг вообще не является сетью с прямой связью, мы не можем ограничить какой-либо слой , а только некоторые грубые зоны, где мы знаем, что обрабатывается некоторая конкретная информация. Это затрудняет проведение каких-либо параллелей между нейронными сетями и мозгом.
  3. До сих пор неясно, как обновляется наш мозг. Например, нет обратного распространения. Наши переоборудованные сети также являются результатом процессов обновления (например, добавление регуляризации к потерям помогает избежать недостаточного соответствия), но мы понятия не имеем, как это работает в мозгу, так что это еще одно препятствие для проведения параллелей!
  4. Более личная мысль: мозг способен и учиться, и запоминать ( девиз «Исключение, подтверждающее правило» показывает, что я думаю), в то время как обучение и запоминание - антонимы нейронных сетей ...