ПРОБЛЕМЫ ЭФФЕКТИВНОЙ АППРОКСИМАЦИИ МНОГОМЕРНЫХ ФУНКЦИЙ С ПОМОЩЬЮ НЕЙРОННЫХ СЕТЕЙ
Автор: Коробкова С.В.
Научно-исследовательский институт автоматической аппаратуры им. В.С. Семенихина, МГУ, г. Москва
Источник: http://elibrary.ru/item.asp?id=12795093
Введение
Введение Работа посвящена проблемам эффективной аппроксимации многомерных функций.
Методы решения задачи аппроксимации многомерных функций обычно ос- нованы на декомпозиции интересующей многомерной функции на набор простых функций, основанной на теореме Колмогорова. Далее применяются некоторые математические методы прогнозирования или аппроксимации к этим простым функциям, а результатом считается композиция решений задач аппроксимации или экстраполяции для простых функций. Такой метод решения задачи аппроксимации или экстраполяции сложной многомерной функции может привести к росту ошибки решения. Более того, увеличивается вычислительная сложность решения из-за большого количества решаемых функций. И, в конце концов, сама задача декомпозиции может быть сложна. Это приводит к большому времени решения поставленной задачи.
В своей работе я использую нейронные сети для решения задачи аппроксима- ции многомерных функций. Было доказано, что любая непрерывная функция n переменных может быть аппроксимирована трехслойной нейронной сетью прямого распространения с алгоритмом обратного распространения ошибки в качестве обучающего алгоритма с любым заданным уровнем точности. Нейронные сети имеют еще одно преимущество перед стандартными алгоритмами аппроксимации, которое делает их полезными при решении практических задач – нейронная сеть может дообучаться при поступлении новых обучающих примеров. Процесс дообучения требует гораздо меньше времени, чем разработка и настройка новой системы.
Вопросы эффективной нейросетевой аппроксимации
Разработку всякого приложения можно разбить на несколько этапов. Поэтапная реализация имеет ряд преимуществ, таких как удобство разработки в части проектирования и тестирования каждого этапа, параллельная разработка этапов и т.п.
В настоящее время появляется все больше задач адекватных решению в ней- росетевом логическом базисе. Средства их решения в основном ограничиваются частными нейросетевыми алгоритмами, встроенными в те или иные программные пакеты. Однако для успешного развития нейросетевой технологии, как и для любой другой, необходим более или менее универсальный, единый маршрут проектирования. Сложность составления такого маршрута заключается в том, что задачи адекватные нейросетевой технологии являются сугубо специализированными. Тем не менее, при решении любой нейросетевой задачи перед разработчиком встает необходимость реализации некоторых блоков, которые формируют основу всего маршрута.
Следование предложенному маршруту проектирования нейросетевого приложения позволяет получить качественное решение задачи, где каждый шаг обоснован. Это дает также возможность при неудовлетворительной точности или времени решения задачи найти узкие места алгоритма и программы.
При выполнении шагов приведенной схемы проектирования нейросетевого приложения перед разработчиком встают следующие вопросы:
Выбор архитектуры нейронной сети
Для решения задачи аппроксимации функций могут применяться различные архитектуры нейронных сетей: многослойные сети прямого распространения, радиально-базисные нейронные сети, нейронные сети с обратными связями, нейрон- ные сети Кохонена, векторные машины и гибридные нейронные сети, использующие нечеткую логику. При решении конкретной задачи разработчик должен найти наиболее подходящую для нее архитектуру. Это можно делать экспериментально или использовать нейронные сети переменной структуры.
Выбор начальных условий нейронной сети
Обычно начальные значения весов нейронных сетей задаются случайным образом. Сеть, инициализированная таким образом, может плохо обучаться, если она попадает в локальный минимум функционала ошибки. Существуют методы, позволяющие в некоторых случаях «вытрясти» нейронную сеть из локального минимума, но это увеличивает время настройки нейронной сети, поэтому в некоторых случаях такое решение не позволяет достигнуть требуемой точности за заданный промежуток времени. Если начальные условия подобраны правильно, то необученная нейронная сеть уже находится рядом со своим глобальным минимумом и довольно быстро обучается, достигая именно глобального минимума. Если задача аппроксимации функции решается с помощью многослойной сети прямого распространения или сети с обратными связями, то начальные условия для нее могут задаваться как коэффициенты оптимального линейного фильтра для данных этой задачи. Тогда нейронная сеть добавит свойство нелинейности к решению, что приведет к повышению точности аппроксимации. Существуют и другие способы задания начальных условий нейронных сетей, которые разрабатываются для каждой конкретной задачи с учетом особенностей данных.
Выбо размера выборки и работа с выборками малого размера
Еще одной проблемой при разработке нейросетевых решений для решения задачи аппроксимации является выбор размера обучающей выборки. Так как нейронные сети надо обучать и качество решения зависит от качества обучающей выборки, то выборка должна представлять собой репрезентативную выборку для аппроксимируемой функции. Существуют две проблемы, связанные с обучающей выборкой. Одна из них – переобучение нейронных сетей. В этом случае нейронная сеть просто запоминает примеры обучающей выборки и не может обобщать данные.Поэтому ошибка на тестовой выборке, неизвестной нейронной сети, может быть велика по сравнению с ошибкой обучения. Эту проблему можно решить подбором соответствующей архитектуры нейронной сети. В некоторых случаях для подбора размера нейронной сети можно использовать размерность ВапникаЧервоненкиса. Но отношения, полученные Вапником и Червоненкисом могут быть применены только к очень узкому классу задач. Для того, чтобы иметь возможность применить оценку Вапника-Червоненкиса надо, чтобы распределение данных было известно разработчику. Но очень часто данные слабо поддаются описанию и для них невозможно найти распределение или даже оценить его. Второй проблемой при обучении нейронных сетей является тот факт, что часто сложно или невозможно иметь выборку достаточного размера для обучения нейронной сети до требуемого качества. Более того, исходная выборка данных должна быть разделена на две части – обучающую и тестирующую выборки. Если исходная выборка мала, то для тестирования можно использовать метод перекрестной валидации, чтобы не разделять ее на две части. Идея этого метода состоит в следующем: из выборки исключается один пример и нейронная сеть обучается на оставшихся. После этого считается ошибка для исключенного примера. Так повторяется для каждого примера исходной выборки данных. После этого вычисляется среднеквадратичная ошибка на тестовых примерах. Этот метод дает более точную оценку, чем прямое тестирование, когда тестирующая выборка совпадает с обучающей. Прямое тестирование дает оптимистичную оценку качества работы нейронной сети. Еще одним способом оценки качества работы нейронной сети в случае малой выборки данных является метод bootstrap. При его использовании искусственно генерируются новые примеры и некоторые примеры исходной выборки заменяются ими. После этого ошибка нейронной сети вычисляется по уравнению, связывающему ошибку и смещение примеров. Использовании вышеперечисленных методов позволяет несколько увеличить обучающую выборку за счет тестирующей. Но исходная выборка может быть настолько мала, что невозможно достигнуть требуемого качества работы нейронной сети даже при использовании ее в качестве обучающей выборки полностью. Тогда следует применять методы работы с малой обучающей выборкой:
Ниже представлены некоторые методы работы с данными, позволяющие улучшить качество нейросетевого решения задачи с малым объемом исходной выборки:
Таким образом, недостаток экспериментальной информации может быть частично скомпенсирован дополнительными вычислительными затратами.
Эффективный выбор вида функционала оптимизации нейронной сети
Перед разработчиком нейросетевого алгоритма решения некоторой прикладной задачи может стоять проблема стоимости ошибки, которая часто неодинакова для ошибок первого и второго рода. Ошибка первого рода – отношение количества объектов, ложно распознанных как желаемые объекты, к общему количеству желаемых объектов, а ошибкой второго рода называется отношение количества пропущенных желаемых объектов к общему их количеству.
Эту проблему можно проиллюстрировать следующим примером:
Предположим, решается задача распознавания мин. Если мина была принята за камень – то человек погибнет, а если камень был принят за мину, то будет затрачено время (порядка 10-30 минут) на его выкапывание.
Задавать стоимость ошибок первого и второго рода можно с помощью ис- пользования функций потерь особого вида. Здесь должна быть задана, так называемая, матрица потерь. Это матрица, где диагональные элементы нулевые, т.е. если классификация произведена верно, то потерь нет. А если первый класс был принят за второй, то стоимость потери имеет одно значение, а если второй за первый – стоимость потери будет другая. Эта матрица при различной стоимости ошибок первого и второго рода будет несимметрична.
Аппаратная реализация нейросетевых алгоритмов
Иногда решаемые задачи имеют большую вычислительную сложность, но должны быть решены за фиксированное время. Поэтому нейросетевое решение должно быть оптимизировано и если время решения все еще не удовлетворяет поставленным условиям, то требуется разработка параллельной или аппаратной реализации разработанного алгоритма.
Оценка качества работы нейронных сетей и сравнение различных методов аппроксимации
В настоящее время сравнение различных алгоритмов нейросетевой аппроксимации производится с помощью теста CATS. Тест состоит из 5000 точек, 100 из которых пропущены. Пропущенные точки находятся в 5 блоках с 981 по 1000 элементы, с 1981 по 2000, с 2981 по 3000, с 3981 по 4000, с 4981 по 5000. Цель этого соревнования – найти наилучшую модель для восстановления пропущенных элементов. В работе [28] были проведены исследования данных этого теста. Было показано, что данные не содержат в себе каких-либо повторяющихся элементов. Далее были рассмотрены разностные данные – ряд разниц между предыдущими и последующими значениями. В них также не было замечено закономерностей. Но разностный ряд ограничен небольшим интервалом значений. Преобразование Фурье ряда CATS показало, что в нем уровень шума очень высок, и нельзя выделить такую частоту, которая оказывала бы существенно большее влияние на поведение ряда, чем остальные. Применение функции автокорреляции к разностному ряду показало, что его для более эффективной работы можно разделить на два ряда (по четным и нечетным номерам).
Но этот тест нельзя считать универсальным, так как нейросетевые решения, разработанные под некоторую конкретную практическую задачу могут показывать плохие результаты для теста CATS [8].
Существуют и другие тесты, разработанные для сравнения различных методов аппроксимации: тест SantaFe, тест EUNITE, тест М3 и другие.
Практически все тестовые выборки данных для сравнения алгоритмов ап- проксимации функций представлены одномерным временным рядом, что делает невозможным сравнение между собой различных алгоритмов многомерной ап- проксимации.
БИБЛОГРАФИЧЕСКИЙ СПИСОК