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

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

(Различия между версиями)
Перейти к: навигация, поиск
(Версия 1.0)
(В текст добавлены ссылки на ключевые термины)
 
Строка 1: Строка 1:
-
{{well|Статья написана с использованием LLM ''Gemini 3.1 Pro'' и проверена участником [[Участник:Artem Abdulmanov|Artem Abdulmanov]] 14:55, 17 июня 2026 (MSD)
+
{{well|Статья написана с использованием LLM ''Gemini 3.1 Pro'' и проверена участником [[Участник:Artem Abdulmanov|Artem Abdulmanov]] 16:49, 17 июня 2026 (MSD)
 +
 
Промпт приводится полностью в [[Обсуждение:Метод радиальных базисных функций]]}}
Промпт приводится полностью в [[Обсуждение:Метод радиальных базисных функций]]}}
{{TOCright}}
{{TOCright}}
== Введение ==
== Введение ==
-
'''Метод радиальных базисных функций''' (англ. ''Radial Basis Function Network, RBF'') — это архитектура искусственных нейронных сетей, использующая радиально-симметричные функции в качестве функций активации. С геометрической точки зрения метод осуществляет нелинейное отображение входного пространства признаков в скрытое пространство более высокой размерности, где задача аппроксимации функций или разделения классов может быть решена линейными методами. Суть решаемой проблемы заключается в построении гладкой гиперповерхности в многомерном пространстве, которая интерполирует или аппроксимирует заданный набор обучающих данных, рассматривая каждый нейрон как локальный рецептор, реагирующий на близость входного вектора к определённому центру.
+
'''Метод радиальных базисных функций''' (англ. ''Radial Basis Function Network, RBF'') — это архитектура [[Искусственная нейронная сеть|искусственных нейронных сетей]], использующая радиально-симметричные функции в качестве [[Функция активации|функций активации]]. С геометрической точки зрения метод осуществляет нелинейное отображение входного [[Пространство признаков|пространства признаков]] в скрытое пространство более высокой [[Размерность пространства|размерности]], где задача [[Аппроксимация|аппроксимации функций]] или [[Линейная классификация|разделения классов]] может быть решена линейными методами. Суть решаемой проблемы заключается в построении гладкой гиперповерхности в многомерном пространстве, которая [[Интерполяция|интерполирует]] или аппроксимирует заданный набор [[Обучающая выборка|обучающих данных]], рассматривая каждый нейрон как локальный рецептор, реагирующий на близость входного вектора к определённому центру.
== Мотивировка и историческая справка ==
== Мотивировка и историческая справка ==
-
Исторически RBF-сети возникли как решение задачи многомерной интерполяции. Предпосылкой к созданию метода стала необходимость преодолеть ограничения многослойных перцептронов (MLP), в частности, проблемы затухающего градиента и длительной сходимости.
+
Исторически RBF-сети возникли как решение задачи многомерной интерполяции. Предпосылкой к созданию метода стала необходимость преодолеть ограничения [[Многослойный перцептрон|многослойных перцептронов]] (MLP), в частности, проблемы [[Затухание градиента|затухающего градиента]] и длительной [[Сходимость|сходимости]].
-
Фундаментальное обоснование метода было заложено в работе D. Broomhead и D. Lowe (1988)<ref>Broomhead D. S., Lowe D., 1988</ref>, которые первыми предложили использовать радиальные базисные функции в контексте проектирования нейронных сетей, опираясь на теорию регуляризации. Важнейшую математическую базу обеспечила теорема Миккелли (1986)<ref>Micchelli C. A., 1986</ref>, строго доказавшая, что для широкого класса радиальных функций (включая гауссианы и мультиквадрики) интерполяционная матрица является невырожденной при условии уникальности точек данных. Это математически гарантирует существование точного решения задачи строгой интерполяции.
+
Фундаментальное обоснование метода было заложено в работе D. Broomhead и D. Lowe (1988)<ref>Broomhead D. S., Lowe D., 1988</ref>, которые первыми предложили использовать радиальные базисные функции в контексте проектирования нейронных сетей, опираясь на [[Теория регуляризации|теорию регуляризации]]. Важнейшую математическую базу обеспечила теорема Миккелли (1986)<ref>Micchelli C. A., 1986</ref>, строго доказавшая, что для широкого класса радиальных функций (включая [[Функция Гаусса|гауссианы]] и мультиквадрики) интерполяционная матрица является [[Обратимая матрица|невырожденной]] при условии уникальности точек данных. Это математически гарантирует существование точного решения задачи строгой интерполяции.
== Математический аппарат и Архитектура ==
== Математический аппарат и Архитектура ==
Строка 17: Строка 18:
* '''Выходной слой''': линейно комбинирует отклики скрытого слоя.
* '''Выходной слой''': линейно комбинирует отклики скрытого слоя.
-
Математически отклик сети вычисляется как линейная комбинация радиальных функций:
+
Математически отклик сети вычисляется как [[Линейная комбинация|линейная комбинация]] радиальных функций:
-
::<tex> f(\mathbf{x}) = \sum_{i=1}^{N} w_i \phi(||\mathbf{x} - \mathbf{c}_i||) </tex>
+
::<tex> f(\mathbf{x}) = \sum_{i=1}^{N} w_i \phi(||\mathbf{x} - \mathbf{c}_i||) </ </tex>
где:
где:
Строка 25: Строка 26:
* <tex>w_i</tex> — весовой коэффициент связи между <tex>i</tex>-м нейроном скрытого слоя и выходным узлом;
* <tex>w_i</tex> — весовой коэффициент связи между <tex>i</tex>-м нейроном скрытого слоя и выходным узлом;
* <tex>\phi(\cdot)</tex> — радиальная базисная функция;
* <tex>\phi(\cdot)</tex> — радиальная базисная функция;
-
* <tex>||\cdot||</tex> — евклидова норма (расстояние).
+
* <tex>||\cdot||</tex> — [[Евклидова метрика|евклидова норма (расстояние)]].
Наиболее распространённым выбором функции <tex>\phi</tex> является функция Гаусса (гауссиана):
Наиболее распространённым выбором функции <tex>\phi</tex> является функция Гаусса (гауссиана):
-
::<tex> \phi(r) = \exp\left(-\frac{r^2}{2\sigma_i^2}\right) </tex>
+
::<tex> \phi(r) = \exp\left(-\frac{r^2}{2\sigma_i^2}\right) </ </tex>
где <tex>r = ||\mathbf{x} - \mathbf{c}_i||</tex> — расстояние от входа до центра, а <tex>\sigma_i</tex> — ширина окна, определяющая радиус влияния нейрона. Чем ближе входной вектор <tex>\mathbf{x}</tex> к центру <tex>\mathbf{c}_i</tex>, тем сильнее отклик активации (максимум равен 1 при <tex>\mathbf{x} = \mathbf{c}_i</tex>).
где <tex>r = ||\mathbf{x} - \mathbf{c}_i||</tex> — расстояние от входа до центра, а <tex>\sigma_i</tex> — ширина окна, определяющая радиус влияния нейрона. Чем ближе входной вектор <tex>\mathbf{x}</tex> к центру <tex>\mathbf{c}_i</tex>, тем сильнее отклик активации (максимум равен 1 при <tex>\mathbf{x} = \mathbf{c}_i</tex>).
== Практика на PyTorch ==
== Практика на PyTorch ==
-
Эффективная реализация RBF-слоя в PyTorch строится на векторизованном вычислении матрицы попарных расстояний между входным батчем и центрами. Ниже представлена архитектура пользовательского модуля с подробным документированием выполняемых тензорных преобразований.
+
Эффективная реализация RBF-слоя в [[PyTorch]] строится на векторизованном вычислении матрицы попарных расстояний между входным [[Батч|батчем]] и центрами. Ниже представлена архитектура пользовательского модуля с подробным документированием выполняемых тензорных преобразований.
<source lang="python">
<source lang="python">
Строка 85: Строка 86:
== Схема обучения и рекомендации ==
== Схема обучения и рекомендации ==
-
В отличие от классического сквозного обратного распространения ошибки, для RBF-сетей предпочтителен гибридный двухэтапный подход (two-stage training):
+
В отличие от классического сквозного [[Обратное распространение ошибки|обратного распространения ошибки]], для RBF-сетей предпочтителен гибридный двухэтапный подход (two-stage training):
-
# Обучение без учителя для скрытого слоя: Расположение центров <tex>\mathbf{c}_i</tex> обычно подбирается методами кластеризации (чаще всего K-Means). Ширины <tex>\sigma_i</tex> задаются эвристически, например, равными среднему расстоянию до <tex>k</tex> ближайших центров, что обеспечивает адекватное перекрытие базисных функций.
+
# [[Обучение без учителя]] для скрытого слоя: Расположение центров <tex>\mathbf{c}_i</tex> обычно подбирается методами [[Кластеризация|кластеризации]] (чаще всего [[Кластеризация методом k-средних|K-Means]]). Ширины <tex>\sigma_i</tex> задаются [[Эвристика (информатика)|эвристически]], например, равными среднему расстоянию до <tex>k</tex> ближайших центров, что обеспечивает адекватное перекрытие базисных функций.
-
# Обучение с учителем для выходного слоя: Поскольку выход сети линейно зависит от весов <tex>w_i</tex>, после фиксации параметров скрытого слоя оптимальные веса можно вычислить аналитически в один шаг с помощью псевдообратной матрицы Мура-Пенроуза (решение задачи наименьших квадратов) или обучить стандартным градиентным спуском, что займёт минимальное количество эпох из-за выпуклости функции потерь по отношению к этим весам.
+
# [[Обучение с учителем]] для выходного слоя: Поскольку выход сети линейно зависит от весов <tex>w_i</tex>, после фиксации параметров скрытого слоя оптимальные веса можно вычислить аналитически в один шаг с помощью [[Псевдообратная матрица|псевдообратной матрицы Мура-Пенроуза]] (решение [[Метод наименьших квадратов|задачи наименьших квадратов]]) или обучить стандартным [[Градиентный спуск|градиентным спуском]], что займёт минимальное количество эпох из-за [[Выпуклая функция|выпуклости]] функции потерь по отношению к этим весам.
'''Частые ошибки инженеров:'''
'''Частые ошибки инженеров:'''
-
* '''Проклятие размерности:''' В пространствах высокой размерности (сотни признаков) евклидово расстояние между любыми двумя точками стремится к одной и той же величине. В результате отклики всех Гауссиан становятся неразличимы (либо все равны нулю, либо константе), и сеть теряет выразительную способность.
+
* '''[[Проклятие размерности]]:''' В пространствах высокой размерности (сотни признаков) евклидово расстояние между любыми двумя точками стремится к одной и той же величине. В результате отклики всех Гауссиан становятся неразличимы (либо все равны нулю, либо константе), и сеть теряет выразительную способность.
-
* '''Неоптимальный выбор ширины окна:''' Слишком малые значения <tex>\sigma</tex> приводят к катастрофическому переобучению (нейроны реагируют только на точечные попадания из обучающей выборки), а слишком большие — к сильному сглаживанию и недообучению, так как сеть вырождается в глобальную константу.
+
* '''[[Переобучение|Неоптимальный выбор ширины окна]]:''' Слишком малые значения <tex>\sigma</tex> приводят к катастрофическому переобучению (нейроны реагируют только на точечные попадания из обучающей выборки), а слишком большие — к сильному сглаживанию и недообучению, так как сеть вырождается в глобальную константу.
* '''Избыточное количество центров:''' Размещение центра для каждого объекта обучающей выборки делает матрицу интерполяции громоздкой и вычислительно неэффективной (ошибка строгой интерполяции вместо сглаживающей аппроксимации).
* '''Избыточное количество центров:''' Размещение центра для каждого объекта обучающей выборки делает матрицу интерполяции громоздкой и вычислительно неэффективной (ошибка строгой интерполяции вместо сглаживающей аппроксимации).
== Современные подходы и State-of-the-Art (SOTA) ==
== Современные подходы и State-of-the-Art (SOTA) ==
-
Хотя классические RBF-сети уступили место глубоким MLP и трансформерам в задачах компьютерного зрения и NLP, они переживают мощный ренессанс в специфических научно-инженерных доменах:
+
Хотя классические RBF-сети уступили место глубоким MLP и [[Трансформер (архитектура нейросетей)|трансформерам]] в задачах [[Компьютерное зрение|компьютерного зрения]] и [[Обработка естественного языка|NLP]], они переживают мощный ренессанс в специфических научно-инженерных доменах:
-
* '''Физико-информированные нейросети (PINNs):''' При решении дифференциальных уравнений в частных производных (PDE) RBF обеспечивают аналитическую гладкость производных старших порядков, в отличие от ReLU-сетей. Использование RBF-активаций позволяет существенно повысить точность аппроксимации физических процессов локально в вычислительной сетке.
+
* '''Физико-информированные нейросети (PINNs):''' При решении [[Дифференциальное уравнение в частных производных|дифференциальных уравнений в частных производных]] (PDE) RBF обеспечивают аналитическую гладкость производных старших порядков, в отличие от [[ReLU|ReLU-сетей]]. Использование RBF-активаций позволяет существенно повысить точность аппроксимации физических процессов локально в вычислительной сетке.
-
* '''Суррогатное моделирование:''' RBF остаются индустриальным SOTA-стандартом в задачах оптимизации дорогостоящих функций (Black-box optimization), где вычислительный бюджет ограничен десятками симуляций, и требуется построить предельно точную поверхность отклика (Response Surface Methodology).
+
* '''Суррогатное моделирование:''' RBF остаются индустриальным SOTA-стандартом в задачах [[Глобальная оптимизация|оптимизации дорогостоящих функций (Black-box optimization)]], где вычислительный бюджет ограничен десятками симуляций, и требуется построить предельно точную поверхность отклика.
== См. также ==
== См. также ==

Текущая версия

Статья написана с использованием LLM Gemini 3.1 Pro и проверена участником Artem Abdulmanov 16:49, 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), где вычислительный бюджет ограничен десятками симуляций, и требуется построить предельно точную поверхность отклика.

См. также

Примечания


Литература

  • 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.
Личные инструменты