Существуют ли функции многих переменных ?
Вопрос, вынесенный в заголовок раздела, естественно возникает при изучении возможностей нейронных сетей. Из схем предыдущих разделов видно, что нейронные сети вычисляют линейные функции, нелинейные функции одного переменного, а также всевозможные суперпозиции - функции от функций, получаемые при каскадном соединении сетей. Что можно получить, используя только такие операции? Какие функции удастся вычислить точно, а какие функции можно сколь угодно точно аппроксимировать с помощью нейронных сетей? Чтобы изучить возможности нейронных сетей, нужно ответить на эти вопросы.
Заданный вопрос имеет очень большую историю и заведомо старше, чем исследования искусственных нейронных сетей.
Какие функции может вычислять человек? Если мы умеем складывать и умножать числа, то мы можем точно вычислять многочлены и рациональные функции (отношения многочленов) с рациональными коэффициентами от рациональных же аргументов.
Можно, однако, задавать функции с помощью уравнений. Если считать решения нескольких простых уравнений известными, то класс вычисляемых функций расширится - решения некоторых более общих уравнений удастся выразить через эти, более простые функции.
Классический пример: если использовать радикалы - решения уравнений xn=a, то можно явно получить решения произвольных уравнений 2-й, 3-й и 4-й степеней. Так, функция 3-х переменных a, b, c - решение уравнения ax2+bx+c=0 - может быть точно выражена с помощью сложения, умножения, деления и функции одного переменного - квадратного корня.
Вопрос: можно ли представить решение любого алгебраического уравнения с помощью радикалов, был окончательно и отрицательно решен Абелем и Галуа - уже уравнения 5-й степени неразрешимы в радикалах.
Все же можно подбирать другие простые функции небольшого числа переменных - сложнее, чем радикалы, но проще, чем общие решения уравнений высоких степеней. Удастся ли с помощью этих функций построить решение любого уравнения? Вопрос был настолько важен, что Гильберт в списке своих проблем, которые, по его мнению, должны были определять развитие математики XX века, под номером 13 поместил следующую задачу:
Представляется ли корень уравнения
x7+ax3+bx2+cx+1=0
(как функция коэффициентов) суперпозицией каких-либо непрерывных функций двух переменных?
Для уравнений 5-й и 6- й степени такое представление возможно не только с помощью непрерывных, но даже аналитических функций.
Оказалось полезным абстрагироваться от уравнений и поставить общий вопрос: можно ли произвольную непрерывную функцию n переменных получить с помощью операций сложения, умножения и суперпозиции из непрерывных функций двух переменных? Ответ оказался положительным! В серии работ [1.1, 1.2, 1.3] А.Н.Колмогоров, затем В.И.Арнольд и вновь А.Н.Колмогоров решили эту проблему: можно получить любую непрерывную функцию n переменных с помощью операций сложения, умножения и суперпозиции из непрерывных функций одного переменного.
Последняя теорема А.Н.Колмогорова [1.3] из этой серии настолько проста и изящна, что мы чуть позже приведем ее целиком. А пока - несколько замечаний о условиях теоремы.
От условия непрерывности можно отказаться - тогда получится довольно тривиальный результат связанный, по существу, с равномощностью отрезка и куба любой размерности. Условие непрерывности нельзя значительно усилить: существуют аналитические функции многих переменных, которые не допускают представления с помощью суперпозиции аналитических функций двух переменных. Более того, все l раз непрерывно дифференцируемые функции трех переменных нельзя представить в виде суперпозиций функций двух переменных, каждая из которых дифференцируема [2l/3] раз и все частные производные которых порядка [2l/3] удовлетворяют условию Липшица (выражение [2l/3] означает целую часть числа 2l/3). Это доказано А.Г,Витушкиным [1.4].
(2) |
1. "Внутренние" функции и представления (2) совершенно не зависят от разлагаемой функции .
Для определения этих функций нам понадобятся некоторые предварительные построения. Рассмотрим изображенный на рис. 1.8 "город" - систему одинаковых "кварталов" (непересекающихся замкнутых квадратов), разделенных узкими "улицами" одной и той же ширины. Уменьшим гомотетично наш "город" в раз; за центр гомотетии можно принять, например, точку - мы получим новый" город", который будем называть "городом ранга 2". "Город ранга 3" точно также получается из "города ранга 2" гомотетичным уменьшением с коэффициентом гомотетии ; "город ранга 4" получается гомотетичным уменьшением в раз "города ранга 3" и т.д. Вообще "город ранга " получается из исходного "города" (который мы будем называть "городом первого ранга") гомотетичным уменьшением в раз (с центром гомотетии в ; впрочем, выбор центра гомотетии не существенен для дальнейшего).
Рис. 1.8. Система кварталов
Построенную систему "городов" мы назовем 1-й системой. "Город первого ранга -й системы" () получается из изображенного на рис. 1.8 "города" при помощи параллельного переноса, совмещающего точку с точкой . Нетрудно понять, что "улицы" "города" можно выбрать настолько узкими, что каждая точка плоскости будет покрыта по крайней мере тремя кварталами наших пяти "городов первого ранга". Точно так же "город -го ранга" -й системы () получается из "города -го ранга 1-й системы" параллельным переносом, переводящим точку в точку , где и получаются из точек и гомотетией, переводящей "город первого ранга" 1-й системы (т.е.
наш исходный "город") в "город - го ранга" той же системы; при этом каждая точка плоскости будет принадлежать кварталам по крайней мере трех из пяти "городов" любого фиксированного ранга .
Функцию
()
мы определим теперь так, чтобы она разделяла любые два "квартала" каждого "города" системы , т.е. чтобы множество значений, принимаемых на определенном "квартале" "города -го ранга" (здесь - произвольное фиксированное число) -й системы, не пересекалось с множеством значений, принимаемых на любом другом "квартале" того же "города". При этом нам, разумеется, будет достаточно рассматривать функцию на единичном квадрате (а не на всей плоскости).
Для того, чтобы функция разделяла "кварталы" "города первого ранга", можно потребовать, например, чтобы на проекциях "кварталов" "города" на ось весьма мало отличалась от различных целых чисел, а на проекциях "кварталов" на ось весьма мало отличалась от различных кратных (ибо при целых , , , , лишь если ). При этом наложенные условия не определяют пока еще, разумеется, функций и (на "улицах" функция вообще пока может задаваться совершенно произвольно); используя это, можно подобрать границы значений и на "кварталах" "города второго ранга" так, чтобы функция разделяла не только "кварталы" "города 1-го ранга", но и "кварталы" "города 2-го ранга". Намеченную программу можно осуществить, если достаточно велико (так что кварталы последующих рангов не соединяют кварталы предыдущих). А.Н. Колмогоров выбрал . Привлекая подобным же образом к рассмотрению "города" последующих рангов и уточняя каждый раз значения функций и , мы в пределе получим непрерывные функции и (можно даже потребовать, чтобы они были монотонными), удовлетворяющие поставленным условиям.
2. Функции разложения (2), напротив того, существенно зависят от исходной функции .
Для построения этих функций докажем прежде всего, что любую непрерывную функцию двух переменных и , заданную на единичном квадрате, можно представить в виде
(3) |
(3^а) |
(3^б) |
Выберем ранг столь большим, чтобы колебание (т.е. разность наибольшего и наименьшего значений) функции на каждом "квартале" любого из "городов ранга " не превосходило ; это, разумеется, возможно, так как с ростом ранга размеры " кварталов" уменьшаются неограниченно. Далее, пусть - определенный "квартал" "города 1-й системы" (и выбранного ранга ); в таком случае (непрерывная) функция принимает на этом "квартале" значения, принадлежащие определенному сегменту числовой оси (причем в силу определения функции этот сегмент не пересекается с сегментами значений, принимаемых на всех других "кварталах"). Положим теперь функцию на сегменте постоянной, равной значения, принимаемого функцией в какой-либо (безразлично какой) внутренней точке квартала (эту точку можно назвать "центром квартала"). Таким же образом мы определим функцию на любом другом из сегментов, задаваемых значениями функции на "кварталах" "города -го ранга" 1-й системы; при этом все значения будут по модулю не превосходить (ибо значение в "центре" любого "квартала" по модулю не превосходит ). Доопределим теперь функцию при тех значениях аргумента , при каких она еще не определена, произвольно, с тем лишь, чтобы она была непрерывна и чтобы выполнялось неравенство (3б); совершенно аналогично определим и все остальные функции ().
Докажем теперь, что разность
удовлетворяет условию (3а), т.е. что , где - произвольная точка единичного квадрата. Эта точка (как и все точки плоскости) принадлежит по крайней мере трем кварталам "городов ранга "; поэтому заведомо найдутся такие три из пяти функций , которые принимают в точке значение, равное значения в "центре" соответствующего "квартала", т.е.
отличающееся от не более чем на (ибо колебание на каждом квартале не превосходит ); сумма этих трех значений будет отличаться от по модулю не более чем на . А так как каждое из оставшихся двух чисел в силу (3) по модулю не превосходит то мы получаем:
что и доказывает (3а).
Применим теперь то же разложение (3) к входящей в (3) функции ; мы получим:
или
где
и
().
Затем мы применим разложение (3) к полученной функции и т.д.; после -кратного применения этого разложения мы будем иметь:
где
и
().
Последние оценки показывают, что при получим:
где стоящий справа бесконечный ряд сходится равномерно; также и каждый из пяти рядов
()
сходится равномерно, что позволяет ввести обозначения
().
Итак, окончательно получаем:
то есть требуемое разложение (2).
До сих пор речь шла о точном представлении функций многих переменных с помощью функций одного переменного. Оказалось, что в классе непрерывных функций такое представление возможно. Но кроме вопроса о точном представлении существует еще один - об аппроксимации. Можно даже предположить, что он важнее - вычисление большинства функций производится приближенно даже при наличии "точных" формул.
Приближение функций многочленами и рациональными функциями имеет историю, еще более давнюю, чем проблема точного представления. Знаменитая теорема Вейерштрасса утверждает, что непрерывную функцию нескольких переменных на замкнутом ограниченном множестве Q можно равномерно приблизить последовательностью полиномов: для любого ?>0 существует такой многочлен , что
Чтобы сформулировать обобщения и усиления теоремы Вейерштрасса, необходимо перейти к несколько более абстрактному языку. Рассмотрим компактное пространство X и алгебру C(X) непрерывных функций на X с вещественными значениями.
Сильным обобщением теоремы о возможности равномерного приближения непрерывных функций многочленами является теорема Стоуна [1.6, 1.7]:
Пусть - замкнутая подалгебра в C(X), и функции из E разделяют точки в X (то есть для любых различных существует такая функция , что ).
Тогда E=C(X) .
Теорема Стоуна обобщает теорему Вейерштрасса по двум направлениям. Во-первых, рассматриваются функции на произвольном компакте, а не только функции многих действительных переменных. Во-вторых, доказано утверждение, новое даже для функций одного переменного (не говоря уже о многих): плотно не только множество многочленов от координатных функций, но вообще кольцо многочленов от любого набора функций, разделяющих точки. Следовательно, плотно множество тригонометрических многочленов, множество линейных комбинаций функций вида exp[-(x-x0,Q(x-x0))], где (x,Qx) - положительно определенная квадратичная форма и др.
Дан рецепт конструирования таких обобщений: достаточно взять произвольный набор функций, разделяющих точки, построить кольцо многочленов от них - и получим плотное в C(X) множество функций.
Разложения по ортогональным системам функций (ряды Фурье и их многочисленные обобщения) не дают, вообще говоря, равномерного приближения разлагаемых функций - как правило, можно гарантировать лишь монотонное стремление к нулю интеграла квадрата остатка "функция минус приближение" с какой-либо положительной весовой функцией. Все же, обращаясь к задаче аппроксимации, нельзя забывать об ортогональных разложениях. Для ряда прикладных задач простота получения коэффициентов такого разложения может оказаться важнее, чем отсутствие гарантированной равномерности приближения.
Так существуют ли функции многих переменных? В каком-то смысле - да, в каком-то - нет. Все непрерывные функции многих переменных могут быть получены из непрерывных функций одного переменного с помощью линейных операций и суперпозиции. Требования гладкости и аналитичности существенно усложняют вопрос. На этом фоне совершенно неожиданно выглядит тот факт, что любой многочлен от многих переменных может быть получен из одного произвольного нелинейного многочлена от одного переменного с помощью линейных операций и суперпозиции. Простое доказательство этой теоремы будет дано в разделе 6.