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

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

Обзор

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

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

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

Моделирование унарных функций

прямая линия

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

f(x)=wx+bf(x) = wx+b

регулируяw,bw, bпараметры для имитации любой прямой линии.

Ступенчатая функция

Мы используем нейрон с сигмовидной функцией активации для моделирования.

вместе сwwПо мере увеличения параметров нейронная сеть будет постепенно приближать функцию.

Функция прямоугольного импульса

Разобьем моделирование на несколько шагов:

  1. Используйте 1 нейрон для имитации левой половины функции.

f1(x)=sigmoid(w1x+b1)f_1(x) = \text{sigmoid}(w_1x+b_1)

  1. Используйте 1 нейрон для имитации правой половины функции (в перевернутом виде).

f2(x)=sigmoid(w2x+b2)f_2(x) = \text{sigmoid}(w_2x+b_2)

  1. Затем используйте нейрон для синтеза изображений из первых двух шагов.

f3(x,y)=sigmoid(w31x+w32y+b3)f_3(x, y) = \text{sigmoid}(w_{31}x + w_{32}y + b_3)

Полученные результаты хорошо аппроксимируют целевую функцию.

Другие унарные функции

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

Моделирование бинарных функций

плоский

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

f(x,y)=w1x+w2y+bf(x, y) = w_1x + w_2y + b

регулируяw1,w2,bw_1, w_2, bпараметры для моделирования любой плоскости.

Двоичная ступенчатая функция Ступенчатая функция

Мы используем нейрон с сигмовидной функцией активации для моделирования.f(x)=sigmoid(w1x+w2y+b)f(x) = \text{sigmoid}(w_1x + w_2y + b)

Бинарная прямоугольная импульсная функция

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

  1. Используйте нейрон для имитации края функции

f1(x,y)=sigmoid(w11x+w12y+b1)f_1(x, y) = \text{sigmoid}(w_{11}x + w_{12}y + b_1)

  1. Тогда мы можем получить следующую функцию:

  1. Наконец, можно синтезировать следующую функцию

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

другие бинарные функции

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

Моделирование n-арной функции

Принцип тот же, представьте сами! ?

проблема

Зачем нам нейронные сети, если у нас уже есть цифровые схемы и программные алгоритмы?

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

Эталонное программное обеспечение

Для получения дополнительной информации и интерактивной версии, пожалуйста, обратитесь к приложению:

神经网络与深度学习Нейронные сети и глубокое обучение