Я разместил это ранее на MSE, но было предложено, что здесь может быть лучшее место, чтобы спросить.
Теорема универсального приближения утверждает, что «стандартная многослойная сеть прямой связи с одним скрытым слоем, которая содержит конечное число скрытых нейронов, является универсальным аппроксиматором среди непрерывных функций на компактных подмножествах Rn при мягких предположениях относительно функции активации».
Я понимаю, что это значит, но соответствующие статьи слишком далеко от моего уровня понимания математики, чтобы понять, почему это так или как скрытый слой приближает нелинейные функции.
Итак, в терминах, немного более продвинутых, чем базовое исчисление и линейная алгебра, как сеть с прямой связью с одним скрытым слоем приближается к нелинейным функциям? Ответ не обязательно должен быть полностью конкретным.
Ответы:
Результат Кибенко довольно интуитивен, как я надеюсь передать ниже; что делает вещи более хитрыми, так это то, что он стремится как к общности, так и к минимальному количеству скрытых слоев. Результат Колмогорова (упомянутый vzn) фактически обеспечивает более сильную гарантию, но несколько менее актуален для машинного обучения (в частности, он не строит стандартную нейронную сеть, поскольку узлы неоднородны); этот результат, в свою очередь, пугающий, поскольку на поверхности это всего лишь 3 страницы, на которых записаны некоторые ограничения и непрерывные функции, но на самом деле он создает набор фракталов. Хотя результат Кибенко необычен и очень интересен из-за точных методов, которые он использует, результаты этого аромата очень широко используются в машинном обучении (и я могу указать вам на других).
Вот краткое изложение того, почему результат Кибенко должен быть в силе.
Что касается первого пункта выше, это можно принять как утверждение «непрерывная функция над компактным множеством равномерно непрерывна». Для нас это означает, что вы можете взять свою непрерывную функцию за и некоторую целевую ошибку , затем вы можете выполнить сетку в масштабе (в конечном итоге примерно вложенных кубов), так что функция, которая является постоянной для каждого вложенного куба, находится в пределах целевой функции. ϵ > 0 [ 0 , 1 ] d τ > 0 ( 1 / τ ) d ϵ[0,1]d ϵ>0 [0,1]d τ>0 (1/τ)d ϵ
Теперь нейронная сеть не может точно представлять индикатор, но вы можете подойти очень близко. Предположим, что «передаточная функция» является сигмоидальной. (Передаточная функция - это непрерывная функция, которую вы применяете к линейной комбинации входов, чтобы получить значение узла нейронной сети.) Затем, увеличивая веса, вы выводите что-то близкое к 0 или близкое к 1 для большего количества входных данных. Это согласуется с разработкой Кибенко: обратите внимание, что ему нужно, чтобы задействованные функции были равны 0 или 1 в пределе: по определению предела вы получаете именно то, что я говорю, то есть вы подталкиваете вещи как угодно близко к 0 или 1.
(Я проигнорировал передаточную функцию в последнем слое; если она есть и она непрерывна, то мы можем сопоставить что-либо с отображением , заменив постоянные веса на что-то на обратном изображении этой константы в соответствии с передачей функция) .[0,1]
Обратите внимание, что вышеприведенное может показаться состоящим из нескольких слоев: скажем, 2, чтобы построить индикаторы на кубах, а затем - конечный выходной слой. Кибенко пытался сделать две общие вещи: минимальное количество скрытых слоев и гибкость в выборе передаточной функции. Я уже описал, как у него получается гибкость в передаточной функции.
Чтобы получить минимальное количество слоев, он избегает приведенной выше конструкции и вместо этого использует функциональный анализ, чтобы развить противоречие. Вот набросок аргумента.
Последний узел вычисляет линейную комбинацию элементов слоя под ним и применяет к нему передаточную функцию. Эта линейная комбинация является линейной комбинацией функций и, как таковая, сама является функцией, функцией в некотором подпространстве функций, охватываемой возможными узлами в скрытом слое.
Подпространство функций подобно обычному конечномерному подпространству, с основным отличием в том, что оно потенциально не является замкнутым множеством; вот почему аргументы Кибенко все закрывают это подпространство. Мы пытаемся доказать, что это замыкание содержит все непрерывные функции; это будет означать, что мы произвольно близки ко всем непрерывным функциям.
Если бы пространство функций было простым (пространство Гильберта), мы могли бы рассуждать следующим образом. Выберите некоторую целевую непрерывную функцию, которая, как предполагается, противоречиво не лежит в подпространстве, и спроецируйте ее на ортогональное дополнение подпространства. Этот остаток должен быть ненулевым. Но так как наше подпространство может представлять такие вещи, как эти маленькие кубики выше, мы можем найти некоторую область этого остатка, подогнать к ней маленький кубик (как выше) и тем самым приблизиться к нашей целевой функции. Это противоречие, поскольку проекции выбирают минимальные элементы. (Заметьте, я здесь кое-что оставляю: аргумент Кибенко не строит маленьких кубиков, он также обрабатывает это в общих чертах; здесь он использует форму теоремы о представлении Рисса и свойства передаточных функций (если я помню правильно, есть отдельная лемма для этого шага,
Мы не находимся в гильбертовом пространстве, но мы можем использовать теорему Хана-Банаха, чтобы заменить вышеприведенный шаг проекции (заметьте, доказательство того, что Хан-Банах использует аксиому выбора).
Теперь я хотел бы сказать несколько слов о результате Колмогорова. Хотя этот результат, по-видимому, не нуждается в фоне Кибенко, я лично считаю, что он гораздо более пугающий.
Вот почему. Результат Кибенко является приближенной гарантией : он не говорит, что мы можем что-то точно представить. С другой стороны, результат Колмогорова дает равенство . Более смешно, он говорит о размере сети: вам нужны только узлы. Для достижения этого усиления, конечно, есть одна загвоздка, о которой я упоминал выше: сеть гетерогенная, под которой я подразумеваю, что все передаточные функции не одинаковы.O(d2)
Хорошо, так со всем этим, как эта вещь может работать ?!
Давайте вернемся к нашим кубам выше. Обратите внимание, что мы должны были выпекать с точностью до уровня: для каждого мы должны вернуться назад и выбрать более точный . Поскольку мы работаем с (конечными) линейными комбинациями индикаторов, мы никогда точно не представляем ничего. (все только ухудшается, если вы включаете приближающие эффекты сигмоидов.)τ > 0ϵ>0 τ>0
Так в чем же решение? Ну, а как насчет всех шкал одновременно? Я не придумываю это: доказательство Колмогорова эффективно строит скрытый слой как набор фракталов. Иными словами, это в основном кривые заполнения пространства, которые отображают в ; таким образом, даже если у нас есть комбинация одномерных функций, мы можем разместить любую многовариантную функцию. Фактически, вы можете эвристически обосновать, что является «правильным» с помощью смешного аргумента подсчета: мы пишем непрерывную функцию из в через одномерные непрерывные функции, и поэтому для захвата всех межкоординатных взаимодействий нам понадобится[ 0 , 1 ] d O ( d 2 ) R d R O ( d 2 )[0,1] [0,1]d O(d2) Rd R O(d2) функции ...
Обратите внимание, что результат Cybenko, благодаря использованию только одного типа передаточной функции, больше относится к машинному обучению. Теоремы такого типа очень часто встречаются в машинном обучении (В. В. предложил это в своем ответе, однако он сослался на результат Колмогорова, который менее применим из-за пользовательских передаточных функций; он ослаблен в некоторых более причудливых версиях результата Колмогорова (созданный другие авторы), но они все еще включают фракталы и, по крайней мере, две передаточные функции).
У меня есть несколько слайдов по этим темам, которые я мог бы опубликовать, если вам интересно (надеюсь, они не так разборчивы, как описанные выше, и у меня есть несколько фотографий; однако я написал их еще до того, как стал знакомым с Хан-Банахом). Я думаю, что оба доказательства очень, очень хороши. (Кроме того, у меня есть еще один ответ на эти темы, но я написал его еще до того, как ухватился за результат Колмогорова.)
источник
Есть продвинутый результат, ключ к машинному обучению, известный как теорема Колмогорова [1]; Я никогда не видел интуитивно понятный набросок того, почему это работает. Это может иметь отношение к различным культурам, которые к нему приближаются. Прикладная обучающая толпа рассматривает теорему Колмогорова как теорему существования, которая просто указывает, что NN могут существовать, поэтому, по крайней мере, структура не является чрезмерно ограничивающей, но теорема не гарантирует, что эти NN могут быть найдены. Математики не так озабочены низкоуровневыми приложениями теоремы.
Теорема также исторически использовалась для того, чтобы вызвать / защитить врожденную сложность многослойных НС, чтобы противостоять критике Перцептронов (Минского / Паперта), что существуют базовые функции [то есть нелинейные], которые они не могут освоить.
Теоретические компьютерные ученые предпочитают не рассматривать NN как «приближения» , так как этот термин имеет особое / другое значение. Вероятно, есть некоторая грубая аналогия с кусочно-линейной интерполяцией, но опять же, я не видел, чтобы она была изложена.
[1] Колмогоров А.Н. (1957). О представлении непрерывных функций многих переменных путем наложения непрерывных функций одной переменной и сложения. Докл. Академии наук СССР, 144, 679-681; Перевод Американского математического общества, 28, 55-59 [1963]
[2] 2.3. Аппроксимационные возможности нейронных сетей с прямой связью для непрерывных функций
[3] Теорема Колмогорова и многослойные нейронные сети Куркова
источник