Нейросетевая каскадная фильтрация многомерных данных

Наука без границ - Нейросетевая каскадная фильтрация многомерных данных

Авторы: Гильфанов Артур Фаридович

.

Рубрика: Технические науки

Страницы: 74-78

Объём: 0,20

Опубликовано в: «Наука без границ» № 6 (11), июнь 2017

Скачать электронную версию журнала

Библиографическое описание: Гильфанов А. Ф. Нейросетевая каскадная фильтрация многомерных данных // Наука без границ. - 2017. - № 6 (11). - С. 74-78.

Аннотация: В данной статье рассмотрен метод покаскадной фильтрации данных с использованием нейронной сети Кохонена. Предложено разработать программу, реализующую данную фильтрацию. Проведён краткий анализ продуктов по работе с нейросетями, приводится алгоритм, согласно которому работает сеть Кохонена в разработанной программе.

Введение

В настоящее время мы всё чаще сталкиваемся с понятием искусственных нейронных сетей. Естественной аналог доказывает, что множество проблем, не поддающихся решению традиционными компьютерами, могут быть эффективно решены с помощью нейросетей [1]. Нейронные сети нашли своё применение для решения широкого спектра практических задач, среди них задачи классификации образов, задачи прогнозирования, оптимизации, а также для решения задач кластеризации. Кластеризация может использоваться для изучения данных, облегчения анализа, прогнозирования, обнаружения аномалий исследуемых объектов, а сама кластеризация производится с помощью сетей Кохонена [2]. Построению программных моделей сети Кохонена для решения задач кластеризации посвящено немало статей, целью же данной работы была реализация нейросетевого каскада из сетей Кохонена.

Нейросетевая каскадная фильтрация данных

Следует рассмотреть ситуацию, где может возникнуть потребность в использовании такого рода математического аппарата. К примеру, нам необходимо определить, какой тип физической активности преобладает в определенные промежутки времени, т. е. необходимо разбить наборы данных о «параметрах организма» (скорость передвижения, пульс, частота дыхательных движений и др.) на кластеры: сон, чтение, ходьба, бег, передвижение на велосипеде, передвижение на транспорте. Для кластеризации используется сеть Кохонена, однако в процессе кластеризации выясняется, что данные, например, о сне и чтении попадают в один и тот же кластер, так как очень мало отличаются между собой. Также в один и тот же кластер попадают, например, велопрогулки и передвижение на транспорте. Вместо ожидаемых 6 кластеров, только 4. Естественно, мы пытаемся искусственно «измельчить» кластеры, чтобы отделить сон от книг, и для этого принудительно задаем разбиение на 7 кластеров. Но тогда может возникнуть случай, когда бег начинает «дробиться» – часть данных попадает в один кластер с ходьбой (медленный бег), а часть – в один кластер с велопрогулками (быстрый бег). Получается, что для разделения, скажем, бега от сна нужен фильтр с «крупными ячейками», то есть «грубая» сеть Кохонена, с малым числом кластеров. А для отделения сна от книг – «мелкие ячейки» – сеть Кохонена с большим числом кластеров, с «тонкой» настройкой.

Предлагается следующий подход: сначала строится «грубая» сеть Кохонена, с разбиением на малое число кластеров. Для «смешанных» кластеров строятся отдельные, дополнительные сети Кохонена с числом кластеров, на которое нужно «помельчить» смешанные данные. Таким образом, у нас получится как бы каскад, набор «просеивающих» сетей Кохонена. При желании, если в новые «тонкие» кластеры снова попадают смешанные данные, то каскад из сетей Кохонена можно продолжить (рис. 1).

Каскад из сетей Кохонена

Рис. 1. Каскад из сетей Кохонена

Для построения и анализа самоорганизующихся карт Кохонена уже существуют такие программные пакеты как Deductor Studio, Excel Neural Package, Statistica и др. Однако у каждого из этих решений имеются недостатки. Так, пакет Excel Neural Package хоть и обладает интуитивно понятным интерфейсом и функциональными возможностями для анализа самоорганизующихся карт Кохонена, требует наличие офисного приложения Microsoft Excel 97, т. е. несовместим с современными версиями. Пакет Deductor Studio и Statistica в свою очередь имеют широкий функционал, который может быть избыточным и непонятным для пользователя. Кроме того, такие программы имеют ограниченный функционал в бесплатной версии, либо имеют ознакомительную версию, ограниченную по времени.

На данный момент в разработке находится программа, реализующая каскадную кластеризацию многомерных данных на основе сетей Кохонена. Алгоритм функционирования сети Кохонена:

1. Инициализация весов Кохонена небольшими случайными значениями;
2. Предъявление сети очередного входного вектора. При его отсутствии переход к шагу 6;
3. Вычисление расстояния до всех нейронов сети:

Расстояние до нейронов,          (1)

где xi – i-ый элемент входного сигнала в момент времени t, wij(t) – вес связи от i-го элемента входного сигнала к нейрону j в момент времени t;

4. Определение нейрона-победителя V, т. е. нейрона j для которого расстояние dj, посчитанное по формуле (1) минимальное;
5. Корректировка весов нейрона-победителя и его соседей по правилу Кохонена (2), с использованием функцией соседства.

Корректировка весов,          (2)

где η(t) – скорость обучения, функция которая уменьшается с течением времени (3), а Функция соседства нейронов – функция соседства нейронов, равна единице для нейрона-победителя с индексом V и постепенно уменьшается с расстоянием, например, по закону, описанному формулой (4)

Скорость обучения,          (3)

где A и B – это константы. Применение этой функции приводит к тому, что все вектора из обучающей выборки вносят примерно равный вклад в результат обучения [3].

Расчет функции соседства нейронов,          (4)

где σ(t) – монотонно убывающая функция, функциональная зависимость для неё может быть описана формулой (5)

Монотонно убывающая функция,          (5)

где t – номер текущей итерации, T – максимальное число итераций алгоритма обучения.

6. Повторение пунктов 2…5 до тех пор, пока не будет предъявлен последний входной вектор. Исходное множество будет разбито на кластеры. Для дополнительной кластеризации необходимо выбрать один из кластеров, т. е. попавшие в него данные, для которых шаги алгоритма повторяться вновь.

При работе с программой пользователю необходимо выбрать файл, содержащий «обучающие» данные, указать количество кластеров на которое будет разбиваться исходное множество и количество итераций для обучения сети. Подтвердить выбор, нажав кнопку «Обучить сеть» (рис. 2).

Выбор данных для обучения сети

Рис. 2. Выбор данных для обучения сети

Для кластеризации данных пользователю необходимо указать путь к файлу с кластеризуемыми данными, нажать на кнопку «Кластеризовать» (рис. 3).

Выбор данных для кластеризации

Рис. 3. Выбор данных для кластеризации

В результате пользователь получает информацию о кластерах и элементах, попавших в каждый из кластеров каждого уровня (рис. 4). Получившийся каскад сетей можно сохранить и на его основе кластеризовывать новые данные, но уже без предъявления «обучающих данных».

Каскад из сетей Кохонена

Рис. 4. Каскад из сетей Кохонена

Заключение

В работе предложен метод многоуровневой фильтрации данных, основанный на применении нейронных сетей Кохонена. Результатом разработки является программное приложение, реализующее каскадную фильтрацию многомерных данных. Полученный инструмент может быть использован для кластеризации новых данных с целью их дальнейшего анализа.

 

Список литературы

  1. Новикова С. В. Специальные разделы теории принятия решений : лаб. практикум. – Казань : Изд-во КГТУ им. А. Н. Туполева, 2009. – 39 с.
  2. Горбаченко В. И. Сети и карты Кохонена [Электронный ресурс]. – Режим доступа: http://gorbachenko.self-organization.ru/index.html.
  3. Самоорганизующиеся карты – математический аппарат [Электронный ресурс]. – Режим доступа: http://basegroup.ru/community/articles/som.

Материал поступил в редакцию 27.05.2017
© Гильфанов А. Ф., 2017