Теорема Колмогорова-Арнольда - Хехт-Нильсена
Построить многомерное отображение - это значит представить его с помощью математических операций над не более чем двумя переменными.
Проблема представления функций многих переменных в виде суперпозиции функций меньшего числа переменных восходит 13-й проблеме Гильберта (существует ли непрерывная функция трех переменных, которая не может быть представлена через композицию непрерывных функций двух переменных) [35]. В результате многолетней научной полемики между А. Н. Колмогоровым и В. И. Арнольдом был получен ряд важных теоретических результатов, опровергающих тезис непредставимости функции многих переменных функциями меньшего числа переменных:
§ теорема о возможности представления непрерывных функций нескольких переменных суперпозициями непрерывных функций меньшего числа переменных (1956 г.);
§ теорема о представлении любой непрерывной функции трех переменных в виде суммы функций не более двух переменных (1957 г.);
§ теорема о представлении непрерывных функций нескольких переменных в виде суперпозиций непрерывных функций одного сложения (1957 г.).
Теорема Хехт-Нильсена. Теорема о представлении непрерывных функций нескольких переменных в виде суперпозиций непрерывных функций одного переменного и сложения в 1987 году была переложена Хехт-Нильсеном для нейронных сетей.
Теорема Хехт-Нильсена доказывает представимость функции многих переменных достаточно общего вида с помощью двухслойной нейронной сети с прямыми полными связями с n нейронами входного слоя, (2n +1) нейронами скрытого слоя с заранее известными ограниченными функциями активации (например, сигмоидальными) и m нейронами выходного слоя с неизвестными функциями активации. Теорема, таким образом, в неконструктивной форме доказывает решаемость задачи представления функции произвольного вида на нейронной сети и указывает для каждой задачи минимальные числа нейронов сети, необходимых для ее решения.
Следствие 2.1. Из теоремы Хехт-Нильсена следует представляемость любой многомерной функции нескольких переменных с помощью нейронной сети фиксированной размерности. Неизвестными остаются следующие характеристики функций активации нейронов:
§ ограничения области значений (координаты асимптот) сигмоидальных функций активации нейронов скрытого слоя;
§ наклон сигмоидальных функций активации;
§ вид функций активации нейронов выходного слоя.
Про функции активации нейронов второго слоя из теоремы Хехт-Нильсена известно только то, что они - нелинейные функции общего вида монотонно возрастающие. Это в некоторой степени сужает класс функций, которые могут потребоваться при реализации отображения с помощью двухслойной нейронной сети.
На практике требования теоремы Хехт-Нильсена к функциям активации удовлетворяют следующим образом. В нейронных сетях как для первого, так и для второго слоя используют сигмоидальные передаточные функции с настраиваемыми параметрами [35]. То есть в процессе обучения индивидуально для каждого нейрона настраиваются следующие параметры функций активации:
§ максимальное и минимальное значение функции,
§ наклон сигмоидальной функции.
Следствие 2.2. Для любого множества пар , где - скаляр) существует двухслойная однородная (с одинаковыми функциями активации) нейронная сеть первого порядка с последовательными связями и с конечным числом нейронов, которая выполняет отображение , выдавая на каждый входной сигнал правильный выходной сигнал . Нейроны в такой двухслойной нейронной сети должны иметь сигмоидальные передаточные функции.
К сожалению, эта теорема не конструктивна. В ней не заложена методика определения числа нейронов в сети для некоторой конкретной обучающей выборки.
Для многих задач единичной размерности выходного сигнала недостаточно. Необходимо иметь возможность строить с помощью нейронных сетей функции , где имеет произвольную размерность. Следующее утверждение является теоретической основой для построения таких функций на базе однородных нейронных сетей.
Утверждение 2.1. Для любого множества пар входных-выходных векторов произвольной размерности существует однородная двухслойная нейронная сеть с последовательными связями, с сигмоидальными передаточными функциями и с конечным числом нейронов, которая для каждого входного вектора формирует соответствующий ему выходной вектор .
Таким образом, для представления многомерных функций многих переменных может быть использована однородная двухслойная нейронная сеть с сигмоидальными передаточными функциями.
Для оценки числа нейронов в скрытых слоях однородных нейронных сетей можно воспользоваться формулой для оценки необходимого числа синаптических весов в многослойной сети с сигмоидальными передаточными функциями:
(2.5) |
где n – размерность входного сигнала, m – размерность выходили сигнала, N – число элементов обучающей выборки.
Оценив необходимое число весов, можно рассчитать число нейронов в скрытых слоях. Например, для двухслойной сети это число составит
Известны и другие формулы для оценки, например:
,
Точно так же можно рассчитать число нейронов в сетях с большим числом слоев.
Иногда целесообразно использовать сети с большим числом слоев. Такие многослойные нейронные сети могут иметь меньшие размерности матриц синаптических весов нейронов одного слоя, чем двухслойные сети, реализующие то же самое отображение. Однако строгой методики построения таких сетей пока нет [25, 35].
Аналогичная ситуация складывается и с многослойными нейронными сетями, в которых помимо последовательных связей используются и прямые (связи от слоя с номером q к слою с номером (q+p), где р > 1). Нет строгой теории, которая показывала бы возможность и целесообразность построения таких сетей. Наибольшие проблемы возникают при использовании сетей циклического функционирования. К этой группе относятся многослойные сети с обратными связями (от слоя с номером q к слою с номером (q+p), где р < 0), а также полносвязные сети. Для успешного функционирования таких сетей необходимо соблюдение условий динамической устойчивости, иначе сеть может не сойтись к правильному решению, либо, достигнув на некоторой итерации правильного значения выходного сигнала, после нескольких итераций уйти от этого значения. Проблема динамической устойчивости подробно исследована, пожалуй, лишь для одной модели из рассматриваемой группы - нейронной сети Хопфилда. Отсутствие строгой теории для перечисленных моделей нейронных сетей не препятствует исследованию возможностей их применения.
Обучение нейронных сетей
Самым важным свойством нейронных сетей является их способность обучаться на основе данных окружающей среды и в результате обучения повышать свою производительность. Обучение нейронной сети происходит посредством интерактивного процесса корректировки синаптических весов и порогов (рис. 2.8). В идеальном случае нейронная сеть получает знания об окружающей среде на каждой итерации процесса обучения.
С понятием обучения ассоциируется довольно много видов деятельности, поэтому сложно дать этому процессу однозначное определение. Более того, процесс обучения зависит от точки зрения на него. Именно это делает практически невозможным появление какого-либо точного определения этого понятия. Например, процесс обучения с точки зрения психолога в корне отличается от обучения с точки зрения школьного учителя. С позиций нейронной сети, вероятно, можно использовать следующее определение:
§ обучение – это процесс, в котором свободные параметры нейронной сети настраиваются посредством моделирования среды, в которую эта сеть встроена. Тип обучения определяется способом подстройки этих параметров.
Рис. 2.8. Процесс обучения нейронной сети
При обучении нейронной сети мы действуем следующим образом: у нас имеется некоторая база данных, содержащая примеры (набор рукописных изображений букв). Предъявляя изображение буквы «А» на вход нейронной сети, мы получаем от нее некоторый ответ, не обязательно верный. Нам известен и верный (желаемый) ответ - в данном случае нам хотелось бы, чтобы на выходе нейронной сети с меткой «А» уровень сигнала был максимален. Обычно в качестве желаемого выхода в задаче классификации берут набор (1, 0, 0, ...), где 1 стоит на выходе с меткой «А», а 0 - на всех остальных выходах. Вычисляя разность между желаемым ответом и реальным ответом сети, мы получаем 33 числа - вектор ошибки.
Алгоритм обратного распространения ошибки - это набор формул, который позволяет по вектору ошибки вычислить требуемые поправки для весов нейронной сети. Одну и ту же букву (а также различные изображения одной и той же буквы) мы можем предъявлять нейронной сети много раз. В этом смысле обучение скорее напоминает тренировку.
Оказывается, что после многократного предъявления примеров веса нейронной сети стабилизируются, причем нейронная сеть дает правильные ответы на все (или почти все) примеры из базы данных. В таком случае говорят, что «нейронная сеть обучена» или «нейронная сеть натренирована».
В программных реализациях можно видеть, что в процессе обучения величина ошибки (сумма квадратов ошибок по всем выходам) постепенно уменьшается. Когда величина ошибки достигает нуля или приемлемого малого уровня, тренировку останавливают, а полученную нейронную сеть считают натренированной и готовой к применению на новых данных.
Важно отметить, что вся информация, которую нейронная сеть имеет о задаче, содержится в наборе примеров. Поэтому качество обучения нейронной сети напрямую зависит от количества примеров в обучающей выборке, а также от того, насколько полно эти примеры описывают данную задачу. Считается, что для полноценной тренировки нейронной сети требуется хотя бы несколько десятков (а лучше сотен) примеров.
Математически процесс обучения можно описать следующим образом.
В процессе функционирования нейронная сеть формирует выходной сигнал в соответствии с входным сигналом , реализуя некоторую функцию . Если архитектура сети задана, то вид функции определяется значениями синаптических весов и смещений сети.
Пусть решением некоторой задачи является функция , заданная парами входных - выходных данных ... , для которых
Обучение состоит в поиске (синтезе) функции , близкой к в смысле некоторой функции ошибки (см. рис. 11).
Если выбрано множество обучающих примеров – пар где и способ вычисления функции ошибки , то обучение нейронной сети превращается в задачу многомерной оптимизации, имеющую очень большую размерность, при этом, поскольку функция может иметь произвольный вид, обучение в общем случае – многоэкстремальная невыпуклая задача оптимизации.
Для решения этой задачи могут быть использованы следующие (итерационные) алгоритмы:
§ алгоритмы локальной оптимизации с вычислением частных производных первого порядка;
§ алгоритмы локальной оптимизации с вычислением частных производных первого и второго порядка;
§ стохастические алгоритмы оптимизации;
§ алгоритмы глобальной оптимизации.
К первой группе относятся: градиентный алгоритм (метод скорейшего спуска); методы с одномерной и двумерной оптимизацией целевой функции в направлении антиградиента; метод сопряженных градиентов; методы, учитывающие направление антиградиента на нескольких шагах алгоритма.
Ко второй группе относятся: метод Ньютона, методы оптимизации с разреженными матрицами Гессе, квазиньютоновские методы, метод Гаусса-Ньютона, метод Левенберга-Марквардта и др.
Стохастическими методами являются: поиск в случайном направлении, имитация отжига, метод Монте-Карло (численный метод статистических испытаний).
Задачи глобальной оптимизации решаются с помощью перебора значений переменных, от которых зависит целевая функция (функция ошибки ).
Применение нейронной сети. После того как сеть обучена, ее можно применять для решения различных задач (рис.2.9).
Рис. 2.9. Этапы нейросетевого проекта
Важнейшая особенность человеческого мозга состоит в том, что, однажды обучившись определенному процессу, он может верно действовать и в тех ситуациях, в которых он не бывал в процессе обучения. Например, есть возможность читать почти любой почерк, даже если видим его первый раз в жизни. Так же и нейронная сеть, грамотным образом обученная, может с большой вероятностью правильно реагировать на новые, не предъявленные ей ранее данные. Например, мы можем нарисовать букву «А» другим почерком, а затем предложить нашей сети классифицировать новое изображение.
Веса обученной сети хранят достаточно много информации о сходстве и различиях букв, поэтому можно рассчитывать на правильный ответ и для нового варианта изображения.
Области применения нейронных сетей: классификация, прогнозирование. Отметим, что задачи классификации (типа распознавания букв) очень плохо алгоритмизуются. Если в случае распознавания букв верный ответ очевиден для нас заранее, то в более сложных практических задачах обученная нейросеть выступает как эксперт, обладающий большим опытом и способный дать ответ на трудный вопрос.
Примером такой задачи служит медицинская диагностика, где сеть может учитывать большое количество числовых параметров (энцефалограмма, давление, вес и т.д.). Конечно, «мнение» сети в этом случае нельзя считать окончательным. Классификация предприятий по степени их перспективности – это уже привычный способ использования нейронных сетей в практике западных компаний (деление компаний на перспективные и убыточные). При этом сеть также использует множество экономических показателей, сложным образом связанных между собой.
Нейросетевой подход особенно эффективен в задачах экспертной оценки медицинской диагностики по той причине, что он сочетает в себе способность компьютера к обработке чисел и способность мозга к обобщению и распознаванию. Говорят, что у хорошего врача способность к распознаванию в своей области столь велика, что он может провести приблизительную диагностику уже по внешнему виду пациента.
Можно согласиться также, что опытный трейдер чувствует направление движения рынка по виду графика. Однако в первом случае все факторы наглядны, т.е. характеристики пациента мгновенно воспринимаются мозгом как «бледное лицо», «блеск в глазах» и т.д. Во втором же случае учитывается только один фактор, показанный на графике, – курс за определенный период времени. Нейронная сеть позволяет обрабатывать огромное количество факторов (до нескольких тысяч), независимо от их наглядности, – это универсальный «хороший врач», который может поставить свой диагноз в любой области.
Задачи прогнозирования. Прогнозирование – это ключевой момент при принятии решений в управлении. Конечная эффективность любого решения зависит от последовательности событий, возникающих уже после принятия решения. Возможность предсказать неуправляемые аспекты этих событий перед принятием решения позволяет сделать наилучший выбор, который в противном случае мог бы быть не таким удачным. Поэтому системы планирования и управления обычно реализуют функцию прогноза.
Типы нейронных сетей
Персептрон Розенблатта
В середине 1958 года Фрэнк Розенблатт предложил модель электронного устройства, названного им персептроном, которое должно было бы имитировать процессы человеческого мышления. Персептрон должен был передавать сигналы от «глаза», составленного из фотоэлементов, в блоки электромеханических ячеек памяти, которые оценивали относительную величину электрических сигналов. Эти ячейки соединялись между собой случайным образом в соответствии с принципами коннективизма. Два года спустя была продемонстрирована первая действующая машина «Марк-1», которая могла научиться распознавать некоторые из букв, написанных на карточках, которые подносили к его «глазам», напоминающим кинокамеры.
У. Маккалок в работе [75] исследовал сетевые парадигмы для распознавания изображений, подвергаемых сдвигам и поворотам. Простая нейронная модель, показанная на рис. 2.10, использовалась в большей части его работы. Элемент умножает каждый вход на вес и суммирует взвешенные входы. Если эта сумма больше заданного порогового значения, выход равен единице, в противном случае - нулю. Эти системы - персептроны. Они состоят из одного слоя искусственных нейронов, соединенных с помощью весовых коэффициентов с множеством входов (рис. 2.11), хотя в принципе описываются и более сложные системы.
Рис. 2.10. Персептронный нейрон
В 60-е годыРозенблатт [77] доказал замечательную теорему об обучении персептронов. Уидроу [81, 82, 84] дал ряд убедительных демонстраций систем персептронного типа, и исследователи во всем мире стремились изучить возможности этих систем. Однако существует ряд задач, которые персептроны не способны выполнить. М.Минский [69] определил, что имеются жесткие ограничения на то, что могут выполнять однослойные персептроны, и, следовательно, на то, чему они могут обучаться.
Теория персептронов является основой для многих других типов искусственных нейронных сетей, и персептроны иллюстрируют важные принципы. В силу этих причин они являются логической исходной точкой для изучения искусственных нейронных сетей.
Рассмотрим в качестве примера трехслойный персептрон (при условии, что ) (рис. 2.11), нейроны которого имеют функцию активации, заданную в виде единичного скачка (порога).
Рис. 2.11. Персептрон со многими выходами
Пусть на входов поступают входные сигналы, проходящие по синапсам на три нейрона, образующие единственный слой этой сети и выдающие три входных сигнала:
Очевидно, что все весовые коэффициенты синапсов одного слоя нейронов можно свести в матрицу , в которой каждый элемент задает величину -й синаптической связи -го нейрона. Таким образом, процесс, происходящий в нейронной сети, может быть записан в матричной форме:
где и - соответственно входной и выходной сигнальные векторы, – функция активации, применяемая поэлементно к компонентам вектора .
На рис. 2.12 представлен двухслойный персептрон, полученный из персептрона, представленного на рис. 2.11, путем добавления второго слоя, состоящего из двух нейронов.
Здесь уместно отметить важную роль нелинейности активационной функции. Если бы она не обладала данным свойством или не входила в алгоритм работы каждого нейрона, результат функционирования любой – слойной нейронной сети с весовыми матрицами для каждого слоя сводился бы к перемножению входного вектора сигналов на матрицу:
Фактически такая – слойная нейронная сеть эквивалентна сети с одним скрытым слоем и с весовой матрицей единственного слоя :
Рис. 2.12. Двухслойный персептрон
Работа персептрона сводится к классификации (обобщению) входных сигналов, принадлежащих – мерному гиперпространству, по некоторому числу классов. С математической точки зрения это происходит путем разбиения гиперпространства гиперплоскостями. Для случая однослойного персептрона:
Каждая полученная область является областью определения отдельного класса. Число таких классов для персептрона не превышает , где – число его входов. Однако не все из классов могут быть выделены данной нейронной сетью.
Например, однослойный персептрон, состоящий из одного нейрона с двумя входами (рис. 2.13), не может реализовать логическую функцию «исключающее ИЛИ». Это функция от двух аргументов, каждый из которых может быть нулем или единицей. Она принимает значение единицы, когда один из аргументов равен единице (но не оба). Обозначим один вход через , а другой через , тогда все их возможные комбинации будут состоять из четырех точек на плоскости - , как показано на рис. 2.14. Например, точка = 0 и = 0 обозначена на рисунке как точка А. Табл. 2.2 показывает требуемую связь между входами и выходом, где входные комбинации, которые должны давать нулевой выход, помечены А0 и А1, единичный выход - В0 и В1.
Рис. 2.13. Однонейронная система | Рис. 2.14. «Исключающее ИЛИ» |
В сети на рис. 2.13 функция является обычным порогом, так что принимает значение ноль, когда меньше 0,5, и единица в случае, когда больше или равно 0,5. Нейрон выполняет следующее вычисление:
(2.6) |
Никакая комбинация значений двух весов не может дать соотношения между входом и выходом, задаваемого таблице 2.2. Чтобы понять это ограничение, зафиксируем на величине порога 0,5. Сеть в этом случае описывается уравнением (2.7). Это уравнение линейно по и , т. е. все значения по и , удовлетворяющие этому уравнению, будут лежать на некоторой прямой в плоскости - .
(2.7) |
Таблица 2.2
Таблица истинности для функции «исключающее ИЛИ»
Точки | Значения | Значения | Требуемый выход |
А0 | |||
В0 | |||
А1 | |||
В1 |
Любые входные значения для и на этой линии будут давать пороговое значение 0,5 для . Входные значения с одной стороны прямой обеспечат значения больше порога, следовательно, =1. Входные значения по другую сторону прямой обеспечат значения меньше порогового значения, делая равным 0. Изменения значений , и порога будут менять наклон и положение прямой. Для того чтобы сеть реализовала функцию «исключающее ИЛИ», заданную табл. 2.2, нужно расположить прямую так, чтобы точки А были с одной стороны прямой, а точки В - с другой. Попытавшись нарисовать такую прямую на рис. 2.14, убеждаемся, что это невозможно. Это означает, что, какие бы значения ни приписывались весам и порогу, сеть неспособна воспроизвести соотношение между входом и выходом, требуемое для представления функции «исключающее ИЛИ».
Взглянув на задачу с другой точки зрения, рассмотрим как поверхность над плоскостью - . Каждая точка этой поверхности находится над соответствующей точкой плоскости - на расстоянии, равном значению в этой точке. Можно показать, что наклон этой - поверхности одинаков для всей поверхности - . Все точки, в которых значение равно величине порога, проектируются на линию уровня плоскости (рис. 2.15).
Рис. 2.15. Персептронная – плоскость
Ясно, что все точки по одну сторону пороговой прямой проецируются в значения , большие порога, а точки по другую сторону дадут меньшие значения . Таким образом, пороговая прямая разбивает плоскость - на две области. Во всех точках по одну сторону пороговой прямой значение равно единице, по другую сторону - нулю.
Проблема «исключающее ИЛИ», к сожалению, не единственная. Имеется обширный класс функций, не реализуемых однослойной сетью. Об этих функциях говорят, что они являются линейно неразделимыми и они накладывают определенные ограничения на возможности однослойных сетей.
Линейная разделимость ограничивает однослойные сети задачами классификации, в которых множества точек (соответствующих входным значениям) могут быть разделены геометрически. Для нашего случая с двумя входами разделитель является прямой линией. В случае трех входов разделение осуществляется плоскостью, рассекающей трехмерное пространство. Для четырех или более входов визуализация невозможна и необходимо мысленно представить -мерное пространство, рассекаемое «гиперплоскостью» - геометрическим объектом, который рассекает пространство четырех или большего числа измерений.
Так как линейная разделимость ограничивает возможности персептронного представления, то важно знать, является ли данная функция разделимой. Нейрон с двоичными входами может иметь различных входных образов, состоящих из нулей и единиц. Так как каждый входной образ может соответствовать двум различным бинарным выходам (единица и ноль), то всего имеется функций от переменных.
В табл. 2.3 показана вероятность того, что случайно выбранная функция окажется линейно разделимой, весьма мала даже для умеренного числа переменных. По этой причине однослойные персептроны на практике ограничены простыми задачами.
Таблица 2.3
Линейно разделимые функции [76]
переменных | функций | Число линейно разделимых функций |