Метод радиальных базисных функций

Материал из MachineLearning.

Версия от 10:55, 17 июня 2026; Artem Abdulmanov (Обсуждение | вклад)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск
Статья написана с использованием LLM Gemini 3.1 Pro и проверена участником Artem Abdulmanov 14:55, 17 июня 2026 (MSD)

Промпт приводится полностью в Обсуждение:Метод радиальных базисных функций


Содержание

Введение

Метод радиальных базисных функций (англ. Radial Basis Function Network, RBF) — это архитектура искусственных нейронных сетей, использующая радиально-симметричные функции в качестве функций активации. С геометрической точки зрения метод осуществляет нелинейное отображение входного пространства признаков в скрытое пространство более высокой размерности, где задача аппроксимации функций или разделения классов может быть решена линейными методами. Суть решаемой проблемы заключается в построении гладкой гиперповерхности в многомерном пространстве, которая интерполирует или аппроксимирует заданный набор обучающих данных, рассматривая каждый нейрон как локальный рецептор, реагирующий на близость входного вектора к определённому центру.

Мотивировка и историческая справка

Исторически RBF-сети возникли как решение задачи многомерной интерполяции. Предпосылкой к созданию метода стала необходимость преодолеть ограничения многослойных перцептронов (MLP), в частности, проблемы затухающего градиента и длительной сходимости.

Фундаментальное обоснование метода было заложено в работе D. Broomhead и D. Lowe (1988)[1], которые первыми предложили использовать радиальные базисные функции в контексте проектирования нейронных сетей, опираясь на теорию регуляризации. Важнейшую математическую базу обеспечила теорема Миккелли (1986)[1], строго доказавшая, что для широкого класса радиальных функций (включая гауссианы и мультиквадрики) интерполяционная матрица является невырожденной при условии уникальности точек данных. Это математически гарантирует существование точного решения задачи строгой интерполяции.

Математический аппарат и Архитектура

Архитектура RBF-сети строго структурирована и состоит из трёх слоёв:

  • Входной слой: передаёт входной вектор \mathbf{x} \in \mathbb{R}^n на скрытый слой без преобразований.
  • Скрытый слой: состоит из нелинейных нейронов, каждый из которых параметризован вектором центра \mathbf{c}_i \in \mathbb{R}^n и параметром ширины \sigma_i.
  • Выходной слой: линейно комбинирует отклики скрытого слоя.

Математически отклик сети вычисляется как линейная комбинация радиальных функций:

 f(\mathbf{x}) = \sum_{i=1}^{N} w_i \phi(||\mathbf{x} - \mathbf{c}_i||)

где:

  • f(\mathbf{x}) — выход сети;
  • N — количество нейронов скрытого слоя;
  • w_i — весовой коэффициент связи между i-м нейроном скрытого слоя и выходным узлом;
  • \phi(\cdot) — радиальная базисная функция;
  • ||\cdot|| — евклидова норма (расстояние).

Наиболее распространённым выбором функции \phi является функция Гаусса (гауссиана):

 \phi(r) = \exp\left(-\frac{r^2}{2\sigma_i^2}\right)

где r = ||\mathbf{x} - \mathbf{c}_i|| — расстояние от входа до центра, а \sigma_i — ширина окна, определяющая радиус влияния нейрона. Чем ближе входной вектор \mathbf{x} к центру \mathbf{c}_i, тем сильнее отклик активации (максимум равен 1 при \mathbf{x} = \mathbf{c}_i).

Практика на PyTorch

Эффективная реализация RBF-слоя в PyTorch строится на векторизованном вычислении матрицы попарных расстояний между входным батчем и центрами. Ниже представлена архитектура пользовательского модуля с подробным документированием выполняемых тензорных преобразований.

import torch
import torch.nn as nn
 
class RBFNetwork(nn.Module):
    """
    Реализация слоя радиальных базисных функций (RBF) на PyTorch.
    """
    def __init__(self, in_features, num_centers, out_features):
        super(RBFNetwork, self).__init__()
        self.in_features = in_features
        self.num_centers = num_centers
        self.out_features = out_features
 
        # Центры RBF: обучаемые параметры, форма (num_centers, in_features)
        self.centers = nn.Parameter(torch.empty(num_centers, in_features))
 
        # Ширины (сигмы) для каждого центра: форма (num_centers,)
        self.sigmas = nn.Parameter(torch.empty(num_centers))
 
        # Выходной слой: линейная комбинация без свободного члена (обычно bias не нужен)
        self.linear = nn.Linear(num_centers, out_features, bias=False)
 
        self._reset_parameters()
 
    def _reset_parameters(self):
        # Инициализация центров из стандартного нормального распределения
        nn.init.normal_(self.centers, mean=0.0, std=1.0)
        # Инициализация ширин строго положительной константой
        nn.init.constant_(self.sigmas, val=1.0)
        # Инициализация весов выходного слоя
        nn.init.xavier_uniform_(self.linear.weight)
 
    def forward(self, x):
        # x имеет форму (batch_size, in_features)
        # Вычисляем попарные евклидовы расстояния
        # Функция cdist оптимизирована и работает быстрее кастомных реализаций
        # distances форма: (batch_size, num_centers)
        distances = torch.cdist(x, self.centers, p=2.0)
 
        # Применяем Гауссову функцию активации
        # rbf_out форма: (batch_size, num_centers)
        rbf_out = torch.exp(-(distances ** 2) / (2 * self.sigmas ** 2))
 
        # Возвращаем линейную взвешенную сумму откликов
        # Выходная форма: (batch_size, out_features)
        return self.linear(rbf_out)

Схема обучения и рекомендации

В отличие от классического сквозного обратного распространения ошибки, для RBF-сетей предпочтителен гибридный двухэтапный подход (two-stage training):

  1. Обучение без учителя для скрытого слоя: Расположение центров \mathbf{c}_i обычно подбирается методами кластеризации (чаще всего K-Means). Ширины \sigma_i задаются эвристически, например, равными среднему расстоянию до k ближайших центров, что обеспечивает адекватное перекрытие базисных функций.
  2. Обучение с учителем для выходного слоя: Поскольку выход сети линейно зависит от весов w_i, после фиксации параметров скрытого слоя оптимальные веса можно вычислить аналитически в один шаг с помощью псевдообратной матрицы Мура-Пенроуза (решение задачи наименьших квадратов) или обучить стандартным градиентным спуском, что займёт минимальное количество эпох из-за выпуклости функции потерь по отношению к этим весам.

Частые ошибки инженеров:

  • Проклятие размерности: В пространствах высокой размерности (сотни признаков) евклидово расстояние между любыми двумя точками стремится к одной и той же величине. В результате отклики всех Гауссиан становятся неразличимы (либо все равны нулю, либо константе), и сеть теряет выразительную способность.
  • Неоптимальный выбор ширины окна: Слишком малые значения \sigma приводят к катастрофическому переобучению (нейроны реагируют только на точечные попадания из обучающей выборки), а слишком большие — к сильному сглаживанию и недообучению, так как сеть вырождается в глобальную константу.
  • Избыточное количество центров: Размещение центра для каждого объекта обучающей выборки делает матрицу интерполяции громоздкой и вычислительно неэффективной (ошибка строгой интерполяции вместо сглаживающей аппроксимации).

Современные подходы и State-of-the-Art (SOTA)

Хотя классические RBF-сети уступили место глубоким MLP и трансформерам в задачах компьютерного зрения и NLP, они переживают мощный ренессанс в специфических научно-инженерных доменах:

  • Физико-информированные нейросети (PINNs): При решении дифференциальных уравнений в частных производных (PDE) RBF обеспечивают аналитическую гладкость производных старших порядков, в отличие от ReLU-сетей. Использование RBF-активаций позволяет существенно повысить точность аппроксимации физических процессов локально в вычислительной сетке.
  • Суррогатное моделирование: RBF остаются индустриальным SOTA-стандартом в задачах оптимизации дорогостоящих функций (Black-box optimization), где вычислительный бюджет ограничен десятками симуляций, и требуется построить предельно точную поверхность отклика (Response Surface Methodology).

См. также

Примечания


Литература

  • Broomhead D. S., Lowe D. Multivariable functional interpolation and adaptive networks // Complex Systems. — 1988. — Т. 2. — С. 321–355.
  • Micchelli C. A. Interpolation of scattered data: distance matrices and conditionally positive definite functions // Constructive Approximation. — 1986. — Т. 2. — С. 11–22.
  • Хайкин С. Нейронные сети: полный курс. — Вильямс, 2006. — С. 1104.