Обзор

Говорят, что нейронная сеть является универсальным аппроксиматором функций, как понимать это предложение? Давайте проведем несколько экспериментов, чтобы получить более интуитивное понимание.

Чтобы быть интуитивно понятным и простым для понимания, мы используем нейронную сеть для подбора одномерной функции, то есть y=f(x)

Эксперименты

  1. Функция y=x

обучающие образцы:

Как показано на рисунке:

  • Синие точки представляют обучающие выборки, все они взяты из функции y=x.
  • Оранжевая прямая представляет собой функцию, представленную нейронной сетью, которая в настоящее время не обучена и сильно отклоняется от выборки.

идеи

Какая структура нейронной сети нам нужна, чтобы соответствовать прямой линии? Чтобы понять полностью, нам нужно понять один нейрон.

Форма отдельного нейрона: y = σ(wx+b)

  • wиb — определяемые параметры.
  • σ– функция активации

Если вы удалите σ, форма будет y = wx+b, которая окажется прямой линией. Другими словами, мы можем подогнать функцию, используя нейрон без функции активации.

эксперимент

Как показано на рисунке выше, при использовании одного выходного нейрона после 20 шагов обучения нейронная сеть очень хорошо соответствует целевой функции. Полученные параметры представлены на рисунке ниже:

Соответствующая функция y=1.0x+0.1 очень близка к целевой функции, и еще несколько шагов обучения могут улучшить ее.

2. Функция y=|x|

обучающие образцы:

Функция является кусочной функцией

идеи

Поскольку это не прямая линия, необходима нелинейная функция активации, которая может искривлять прямую линию. Поскольку кривая не задействована, ReLU является более подходящей функцией активации:

эксперимент

Обратите внимание на кривую функции ReLU: одна сторона представляет собой горизонтальную прямую, а другая — наклонную линию. Если можно получить две кривые ReLU и наложить их друг на друга в обратном порядке, можно ли получить целевую кривую?

Окончательный результат выглядит следующим образом:

2 скрытых нейрона:

  • y1​ = ReLU(−x)
  • y2​ = ReLU(x)

Выходной нейрон: y = y1 + y2, просто получите целевую кривую.

(Приведенные выше результаты получены путем ручной настройки параметров без обучения параметров)

3. Функция

Количество требуемых скрытых нейронов возрастает до 4.

4. Функция y=1.8sin(3x)/x)

Сеть становится более сложной, и подобранная кривая уже не идеальна.

Сводка

По мере усложнения целевой функции:

  • Соответствующая нейронная сеть усложняется
  • Требуется больше обучающих данных
  • Тренировки становятся все сложнее
  • Более неинтуитивный и более сложный для объяснения

И наоборот, более сложные нейронные сети и больше данных могут использоваться для соответствия более сложным функциям.

Теоретически любую функцию можно установить. Конечно, сеть должна быть бесконечной, и количество данных должно быть бесконечным.

Справочное программное обеспечение