Метод радиальных базисных функций
Материал из MachineLearning.
(Версия 1.0) |
(В текст добавлены ссылки на ключевые термины) |
||
| Строка 1: | Строка 1: | ||
| - | {{well|Статья написана с использованием LLM ''Gemini 3.1 Pro'' и проверена участником [[Участник:Artem Abdulmanov|Artem Abdulmanov]] | + | {{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), где вычислительный бюджет ограничен десятками симуляций, и требуется построить предельно точную поверхность отклика | + | * '''Суррогатное моделирование:''' 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-сети строго структурирована и состоит из трёх слоёв:
- Входной слой: передаёт входной вектор
на скрытый слой без преобразований.
- Скрытый слой: состоит из нелинейных нейронов, каждый из которых параметризован вектором центра
и параметром ширины
.
- Выходной слой: линейно комбинирует отклики скрытого слоя.
Математически отклик сети вычисляется как линейная комбинация радиальных функций:
где:
-
— выход сети;
-
— количество нейронов скрытого слоя;
-
— весовой коэффициент связи между
-м нейроном скрытого слоя и выходным узлом;
-
— радиальная базисная функция;
-
— евклидова норма (расстояние).
Наиболее распространённым выбором функции является функция Гаусса (гауссиана):
где — расстояние от входа до центра, а
— ширина окна, определяющая радиус влияния нейрона. Чем ближе входной вектор
к центру
, тем сильнее отклик активации (максимум равен 1 при
).
Практика на 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):
- Обучение без учителя для скрытого слоя: Расположение центров
обычно подбирается методами кластеризации (чаще всего K-Means). Ширины
задаются эвристически, например, равными среднему расстоянию до
ближайших центров, что обеспечивает адекватное перекрытие базисных функций.
- Обучение с учителем для выходного слоя: Поскольку выход сети линейно зависит от весов
, после фиксации параметров скрытого слоя оптимальные веса можно вычислить аналитически в один шаг с помощью псевдообратной матрицы Мура-Пенроуза (решение задачи наименьших квадратов) или обучить стандартным градиентным спуском, что займёт минимальное количество эпох из-за выпуклости функции потерь по отношению к этим весам.
Частые ошибки инженеров:
- Проклятие размерности: В пространствах высокой размерности (сотни признаков) евклидово расстояние между любыми двумя точками стремится к одной и той же величине. В результате отклики всех Гауссиан становятся неразличимы (либо все равны нулю, либо константе), и сеть теряет выразительную способность.
- Неоптимальный выбор ширины окна: Слишком малые значения
приводят к катастрофическому переобучению (нейроны реагируют только на точечные попадания из обучающей выборки), а слишком большие — к сильному сглаживанию и недообучению, так как сеть вырождается в глобальную константу.
- Избыточное количество центров: Размещение центра для каждого объекта обучающей выборки делает матрицу интерполяции громоздкой и вычислительно неэффективной (ошибка строгой интерполяции вместо сглаживающей аппроксимации).
Современные подходы и State-of-the-Art (SOTA)
Хотя классические RBF-сети уступили место глубоким MLP и трансформерам в задачах компьютерного зрения и NLP, они переживают мощный ренессанс в специфических научно-инженерных доменах:
- Физико-информированные нейросети (PINNs): При решении дифференциальных уравнений в частных производных (PDE) RBF обеспечивают аналитическую гладкость производных старших порядков, в отличие от ReLU-сетей. Использование RBF-активаций позволяет существенно повысить точность аппроксимации физических процессов локально в вычислительной сетке.
- Суррогатное моделирование: RBF остаются индустриальным SOTA-стандартом в задачах оптимизации дорогостоящих функций (Black-box optimization), где вычислительный бюджет ограничен десятками симуляций, и требуется построить предельно точную поверхность отклика.
См. также
- Метод опорных векторов
- Кластеризация методом k-средних
- Искусственная нейронная сеть
- Метрический классификатор
Примечания
Литература
- 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.

