Введение
Радиально-базовые функциональные сети (RBFN) предлагают уникальный подход к нейронным сетям, который вызвал интерес как у исследователей, так и у практиков.
Сети радиальных функций смещения, известные своими уникальными свойствами и преимуществами, становятся все более популярными в таких приложениях, как распознавание образов, аппроксимация функций и прогнозирование временных рядов. Мы подробно изучим архитектуру RBFN, ее основные концепции и процесс обучения. Чтобы еще больше углубить ваше понимание, мы обсудим практические примеры, ответим на часто задаваемые вопросы и рассмотрим преимущества использования RBFN в различных сценариях.
Что такое радиальные базисные функции?
Радиальные базисные функции (РБФ) — это математические функции, используемые для аппроксимации сложных непрерывных функций. Они характеризуются своей радиальной симметрией, что означает, что их значение зависит только от евклидова расстояния между входными точками и центральной точкой.
Проще говоря, радиальная базисная функция (RBF) — это функция, выходные данные которой изменяются в зависимости от того, насколько далеко находятся входные данные от центральной точки. RBF симметричны относительно своего центра, что означает, что выход остается неизменным, если расстояние от центра одинаково, независимо от направления.
Мультиквадратичные, обратные мультиквадратичные и гауссовские функции представляют собой различные типы радиальных базисных функций, используемых в различных приложениях. Кратко опишем каждый из них:
Мультиквадратичная функция
Мультиквадратичная функция определяется выражением:
φ(x) = √(‖x – c‖^2 + R^2)
где x — входной вектор, c — центр функции, а R — постоянный параметр.
Обратная мультиквадратичная функция
Обратная мультиквадратичная функция определяется выражением:
φ(x) = 1 / √(‖x – c‖^2 + R^2)
Гауссова функция
Примером RBF является функция Гаусса, которая характеризуется параметром ширины или масштаба (a). Этот параметр определяет, насколько «широкой» является функция, влияя на то, как быстро изменяется выходной сигнал по мере увеличения расстояния от центра.
RBF может быть записан как:
Φc(x) = Φ(||x – µc||; а) (1)
Здесь Φc(x) — РБФ, x — вход, µc — центр, || · || — векторная норма (например, евклидова норма), а — параметр ширины.
Сети радиальных базисных функций (RBFN) включают несколько ключевых уравнений в их формулировку, обучение и работу. Здесь мы шаг за шагом изложим основные уравнения:
RBF можно комбинировать для представления более сложных функций, используя их в качестве основы для линейных комбинаций:
y(x) = Σ(wjΦ(||x – µj||)) (2)
В этом уравнении y(x) — выходная функция, wj — веса для каждого RBF, а суммирование идет от 1 до M, где M — общее количество используемых RBF.
Читайте также: Что такое трансферное обучение и как оно используется в машинном обучении?
Что такое радиальные базисные функциональные сети и как они работают?
Сеть радиальных базовых функций (RBFN) — это тип нейронной сети с прямой связью, которая использует RBF в своем скрытом слое. Сеть состоит из трех слоев: входного слоя, скрытого/ядерного слоя и выходного слоя.
Входной слой получает n-мерный входной вектор, и каждый узел в скрытом слое представляет нейроны RBF, центр которых находится в определенной точке входного пространства. Выходной слой объединяет выходные данные узлов скрытого слоя посредством линейной комбинации весов для создания окончательных выходных значений.
Сетевая архитектура РБФ
Блок-схема, иллюстрирующая процесс обучения сети RBF, включая инициализацию параметров, вычисление выходных данных скрытого слоя и выходных данных сети, оценку среднеквадратичной ошибки (MSE), обновления веса с использованием градиентного спуска и проверки сходимости.
Входной слой
Входной слой состоит из входных нейронов, которые получают входные значения и передают их скрытому слою. Количество входных нейронов соответствует размерности входного вектора.
Скрытый слой
Скрытый слой состоит из скрытых блоков или вычислительных блоков, которые применяют радиальную базисную функцию (RBF), такую как функция Гаусса, к входным значениям. Каждая скрытая единица вычисляет евклидово расстояние между входным вектором и его центром и применяет RBF к этому расстоянию. Количество скрытых узлов определяет способность сети к аппроксимации функции:
h_j(x) = φ(‖x – c_j‖)
где h_j(x) — результат j-го скрытого блока, c_j — центральный вектор, связанный с j-м скрытым блоком, а φ(‖x — c_j‖) — RBF.
Выходной слой
Выходной слой содержит выходные нейроны, которые генерируют выходные значения посредством линейной комбинации выходов скрытого слоя и матрицы выходных весов. Количество выходных нейронов зависит от желаемой размерности выходного вектора.
y_k(x) = Σ_j w_jk * h_j(x)
где y_k(x) — k-й выход сети, w_jk — вес, соединяющий j-й скрытый элемент с k-м выходным нейроном, а h_j(x) — выход j-го скрытого элемента.
Теперь давайте обсудим уравнение сетевого отображения радиальной базисной функции (RBF), которое можно представить как:
y(x) = Σ_j w_j * φ(||x – µ_j||)
Для упрощения уравнения можно ввести дополнительную базисную функцию φ0(x) = 1:
y(x) = w_0 + Σ_j w_j * φ(||x – µ_j||)
Здесь мы имеем M базисных центров (µj) и M ширин (σj). В следующем разделе мы обсудим, как определить все параметры сети (wkj, µj и σj).
Обучение сетей радиальной функции смещения
Среднеквадратическая ошибка (MSE)
Во время обучения цель состоит в том, чтобы минимизировать среднеквадратичную ошибку между выходом сети и целевым выходом для заданного набора обучающих примеров:
MSE = (1/N) Σ_n (t_kn – y_k(x_n))^2
где N — количество обучающих примеров, t_kn — целевой выход для k-го выходного нейрона и n-го примера, а y_k(x_n) — выход сети для k-го выходного нейрона и n-го примера .
Правило обновления веса (градиентный спуск)
При использовании градиентного спуска для изучения выходных весов правило обновления весов выглядит следующим образом:
w_jk(t+1) = w_jk
import matplotlib.pyplot as plt
from sklearn.datasets import make_moons
from sklearn.neural_network import MLPClassifier
from sklearn.pipeline import make_pipeline
from sklearn.preprocessing import StandardScaler
from sklearn.svm import SVC
from matplotlib.colors import ListedColormap
# Generate toy dataset
X, y = make_moons(n_samples=300, noise=0.05, random_state=42)
# Create ANN and RBFN models
ann = make_pipeline(StandardScaler(), MLPClassifier(hidden_layer_sizes=(100,), max_iter=500, random_state=42))
rbfn = make_pipeline(StandardScaler(), SVC(kernel=’rbf’, C=1, gamma=1))
models = ((‘ANN’, ann), (‘RBFN’, rbfn))
# Plot the dataset and decision boundaries
fig, axes = plt.subplots(1, 3, figsize=(15, 5))
cm = plt.cm.RdBu
cm_bright = ListedColormap((‘#FF0000’, ‘#0000FF’))
titles = (‘Moon Dataset’, ‘ANN Decision Boundary’, ‘RBFN Decision Boundary’)
# Plot the dataset
axes(0).scatter(X(:, 0), X(:, 1), c=y, cmap=cm_bright, edgecolors=’k’, s=50)
axes(0).set_xlim(X(:, 0).min() – .5, X(:, 0).max() + .5)
axes(0).set_ylim(X(:, 1).min() – .5, X(:, 1).max() + .5)
axes(0).set_xticks(())
axes(0).set_yticks(())
axes(0).set_title(titles(0))
# Train and plot decision boundaries for ANN and RBFN
for (name, model), ax, title in zip(models, axes(1:), titles(1:)):
model.fit(X, y)
x_min, x_max = X(:, 0).min() – .5, X(:, 0).max() + .5
y_min, y_max = X(:, 1).min() – .5, X(:, 1).max() + .5
xx, yy = np.meshgrid(np.arange(x_min, x_max, 0.02), np.arange(y_min, y_max, 0.02))
Z = model.predict(np.c_(xx.ravel(), yy.ravel()))
Z = Z.reshape(xx.shape)
ax.contourf(xx, yy, Z, cmap=cm, alpha=.8)
ax.scatter(X(:, 0), X(:, 1), c=y, cmap=cm_bright, edgecolors=’k’, s=50)
ax.set_xlim(x_min, x_max)
ax.set_ylim(y_min, y_max)
ax.set_xticks(())
ax.set_yticks(())
ax.set_title(title)
plt.tight_layout()
plt.savefig(‘ANN_RBFN_comparison.png’, dpi=300)
plt.show()
Сравнение искусственных нейронных сетей (ANN) и сетей радиальных функций (RBFN) для нелинейной классификации: наглядная демонстрация на наборе данных о Луне»
Преимущества РБФН
Более высокая скорость обучения: RBFN обычно требуют меньшего количества итераций во время обучения, так как процесс обучения разделен на отдельные этапы для изучения центров RBF и выходных весов. Это также требует менее обширной настройки гиперпараметров, чем другие сети MLP.
Возможность универсального приближения: Сети радиальных функций смещения известны как универсальные аппроксиматоры, что означает, что они могут аппроксимировать любую непрерывную функцию с произвольной точностью при наличии достаточного количества скрытых единиц.
Локализованная обработка: в сетях с функцией радиального смещения используются локально настроенные блоки обработки, что может привести к повышению производительности обобщения, особенно в задачах, где входные данные демонстрируют локальную структуру или закономерности.
Читайте также: Введение в функции PyTorch Loss и машинное обучение
Часто задаваемые вопросы
Какова роль радиального базиса?
Функция радиального базиса служит функцией активации для блоков скрытого слоя в RBFN, определяя выходные данные каждого скрытого блока на основе евклидова расстояния входного вектора от центра RBF.
Что такое радиальная базисная функция в ML?
В ML радиальные базисные функции используются в качестве базисных функций для аппроксимации функций, методов ядра и в качестве функций активации в RBFN, что позволяет сети изучать сложные нелинейные отношения между входными и выходными данными.
В чем разница между РБФ и МЛП?
RBFN предлагают несколько преимуществ, в том числе более высокую скорость обучения, возможность универсальной аппроксимации и локализованную обработку, что может привести к повышению производительности обобщения в задачах, включающих локальные закономерности или структуры во входных данных.
В чем разница между РБФ и МЛП?
A: RBFN и MLP являются нейронными сетями с прямой связью, но они различаются по своим функциям активации и процессам обучения. RBFN используют радиальные базисные функции в качестве функций активации на скрытом уровне и обычно имеют двухэтапный процесс обучения, в то время как MLP используют другие типы функций активации (например, сигмовидную или ReLU) и применяют обратное распространение для обучения.
Читайте также: Rectified Linear Unit (ReLU): введение и использование в машинном обучении
Заключение
В заключение, сети радиальных базисных функций (RBFN) занимают особую нишу в области нейронных сетей, используя радиальные базисные функции в качестве функций активации в своих скрытых слоях. Их архитектура с упором на локальную структуру и шаблоны дает RBFN конкурентное преимущество в таких областях, как аппроксимация функций, распознавание образов и прогнозирование временных рядов. В этой статье представлен всесторонний обзор RBFN, их основных концепций и процесса обучения, а также практические примеры для дальнейшего улучшения понимания этих сетей.
Рекомендации
Гоша и Наг. «Обзор функциональных сетей радиального базиса». Physica-Verlag HD1 января 2001 г., https://link.springer.com/chapter/10.1007/978-3-7908-1826-0_1. По состоянию на 20 апреля 2023 г.
Рамадан, Лутфи. «Упрощенная нейронная сеть с радиальной базисной функцией». На пути к науке о данных10 ноября 2021 г., https://towardsdatascience.com/radial-basis-function-neural-network-simplified-6f26e3d5e04d. По состоянию на 20 апреля 2023 г.
Просто узнать. «Что такое радиальные базисные функции нейронных сетей? Все, что Вам нужно знать.” Упрощенное обучение5 сентября 2022 г., https://www.simplilearn.com/tutorials/machine-learning-tutorial/what-are-radial-basis-functions-neural-networks. По состоянию на 20 апреля 2023 г.