Neuroproject.ru / Главная страница
   Главная / Каталог программ


 

О компании
Програмные продукты
Услуги
Обучение
Материалы
Форум
     НейроПрактикум   

   NeuroShell 2       GeneHunter       NeuroShell Predictor       NeuroShell Classifier       NeuroShell runtime server

   Deductor
 
НейроПрактикум
Пакет обучающих программ для изучения нейронных сетей

   Описание программного продукта

    Обзор возможностей
    Состав пакета
    Спецификации

Обзор возможностей

Пакет НейроПрактикум — пакет обучающих программ, которые могут использоваться как для преподавания нейросетевых технологий, так и для самообразования. Проектируя и создавая пакет, мы стремились обеспечить максимальную наглядность программ, чтобы сделать обучение как можно более простым и приятным.

Несмотря на то, что файл справки к пакету содержит математическое описание используемых алгоритмов, знакомство с высшей математикой для понимания основ функционирования нейросетевых алгоритмов вовсе не обязательно. Мы постарались снабдить пакет достаточным количеством примеров и подробными объяснениями, так, чтобы даже человек, далёкий от математики, смог освоить нейросетевые технологии и применить их в своей работе.

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

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

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

Пакет имеет бесплатную демонстрационную версию, которая в ближайшее время будет доступна для скачивания всем желающим.


Состав пакета

Пакет включает в себя пять программ, объединённых типовым интерфейсом и основными приёмами работы.

  1. Cети с обратным распространиением ошибки — решение задач классификации
  2. Нейронные сети Кохонена — решение задач кластеризации
  3. Нейронная сеть с общей регрессией — решение задач классификации
  4. Рекуррентные сети с обратным распространением ошибки
  5. Линейный и нелинейный анализ главных компонент

  Сети с обратным распространением ошибки

1. Cети с обратным распространиением ошибки - решение задач классификации

Данная программа демонстрирует работу наиболее распространённого типа нейронных сетей - персептрона, обучаемого по алгоритму обратного распространиения ошибки.

При постановке задачи можно использовать до 7 классов данных, а также задавать соотношение между тренировочным, тестовым и экзаменационным наборами данных (см. ниже). Статистика правильных ответов подсчитывается отдельно по каждому классу и каждому набору.

Значками на основном поле показаны точки заданных наборов данных, цвет поля соответствует результатам применения текущей сети (см. рисунок). В процессе обучения периодически происходит повторное применение сети и перерисовка поля, что позволяет наглядно видеть, как обучается сеть.

Существует возможность переключения из режима просмотра состояния на выходах всей сети в целом в режимы просмотра состояния на выходе каждого из нейронов сети. Можно также отключить один или несколько нейронов и посмотреть, как это скажется на работе сети.

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


  Нейронные сети Кохонена - решение задач кластеризации

2. Нейронные сети Кохонена - решение задач кластеризации

Эта программа позволяет понять, как работают нейронные сети Кохонена, предназначенные для решения задач кластеризации - разбиения данных на кластеры (группы) по похожести, т.е. по их распределению в пространстве исходных признаков (для данной программы - по распределению точек на плоскости).

Программа позволяет использовать одномерную или двумерную (с квадратной топологией) сети Кохонена, задавая все необходимые параметры сети.

В процессе или по окончании тренировки можно включать или выключать отображение: примеров (исходных данных); связей сети; нейронов (центроидов кластеров) и линий, соединяющих их с каждым из примеров данного кластера; дисперсии каждого кластера в виде окружности соответствующего радиуса.


  Нейронные сети Кохонена - построение самоорганизующейся карты

Построение разбиения пространства (векторное квантование)

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

Это позволяет использовать нейронную сеть Кохонена для сжатия данных. При таком сжатии каждый нейрон натренированной сети (центроид кластера) представляет собой так называемое кодовое слово; при кодировании каждую точку плоскости (входного пространства) можно заменить на координаты центроида кластера, в область которого эта точка попала. Если кластеров достаточно много, и их дисперсия мала, то и вносимая при этом погрешность также невелика. При этом для представления каждой точки достаточно указать соответствующий ей номер кластера, если кодовая книга (список центроидов с их координатами) уже задана.

Этот способ кодирования данных может быть использован, например, для сжатия изображений при передаче по линиям связи.


  Нейронные сети Кохонена - динамика формирования кластеров

Динамика формирования кластеров

Количество получаемых кластеров чаще всего оказывается равным числу нейронов сети Кохонена, или несколько меньшим. Возникает вопрос: сколько кластеров в рассматриваемых данных "на самом деле"?

Для ответа на этот вопрос в программе применён специальный алгоритм. Его работа основана на расчёте средневзвешенного значения активностей всех нейронов натренированной сети для одной из точек плоскости. Это значение зависит от так называемого радиуса стягивания, определяющего характерное растояние, на котором "ощущается притяжение" нейрона. На основании полученного средневзвешенного значения по специальной формуле рассчитывается новое положение точки, после чего процедура повторяется.

Таким образом строится семейство траекторий, каждая из которых начинается в одной из точек исходного набора данных, а заканчивается в каком-то из "центров равновесия", где равнодействующая притяжения ко всем нейронам равна нулю (см. рисунок). Количество получаемых центров равновесия зависит от значения радиуса стягивания.

Если после построения зависимости количества центров равновесия от радиуса стягивания на этой зависимости обнаруживается характерное "плато", то количество центров равновесия, на котором оно возникает, является оценкой реального количества кластеров в данных.


  Нейронные сети с общей регрессией - решение задач классификации

3. Нейронная сеть с общей регрессией - решение задач классификации

Данная программа демонстрирует работу нейронной сети с общей регрессией (НСОР), принадлежащей к классу так называемых Байесовских сетей. Работа этих сетей основана на оценке вероятности принадлежности примера к тому или иному классу на основе распределения данных в тренировочном наборе. При этом ключевую роль играет так называемый параметр сглаживания, определяющий характерное расстояние в пространстве входных признаков (в данном случае — на плоскости).

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

Если оказывается, что новый пример не похож ни на один пример тренировочного набора, сеть отказывается выдавать ответ; это означает, что тренировочный набор был недостаточно представительным. На рисунке слева этой ситуации соответствуют области чёрного цвета.


  Тренировочный, тестовый и экзаменационный наборы данных

Тренировочный, тестовый и экзаменационный наборы данных

При тренировке нейронной сети всегда существует возможность "переучивания", т.е. достижения такого состояния сети, в котором она со 100% точностью распознаёт все примеры тренировочного набора данных, однако на других данных, не входивших в этот набор, может работать очень плохо. Можно сказать, что такая сеть плохо обобщает.

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

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

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

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


  Рекуррентные сети с обратным распространением ошибки

4. Рекуррентные сети с обратным распространением ошибки

Эта специальная архитектура нейронной сети и специальный алгоритм её обучения предназначены для работы не с отдельными примерами данных, а с последовательностями примеров. Часто её используют для работы с временными рядами.

В отличие от обыкновенного персептрона, состояние на выходе рекуррентной сети зависит не только от данных, поданных на её входы в текущий момент времени, но и от тех данных, которые подавались в предыдущие моменты времени. Это и позволяет сети выучивать не отдельные примеры, а временные последовательности.

В данной программе, как и в остальных программах пакета, в качестве примеров используются точки на плоскости, а их координаты являются входными данными. Это значит, что последовательность примеров (например, последовательность всех примеров тренировочного набора) представляет собой траекторию на плоскости. В процессе обучения сеть выучивает эту траекторию.

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

Во втором режиме (рекурсивного применения) в качестве входных данных для получения следующей точки траектории используется не истинное (желаемое) положение предыдущей точки, а положение, предсказанное сетью. Таким образом, вся траектория восстанавливается по единственной начальной точке. Ясно, что хорошее воспроизведение наблюдается при этом только тогда, когда сеть уже успела выучить данные достаточно хорошо.

Программа также позволяет в режиме рекурсивного применения задавать в качестве начальной любую точку (отличную от начальной точки исходной кривой) и видеть, что собой представляет прогноз сети в этом случае. Можно также продлить прогноз на произвольное количество дополнительных точек (после окончания исходной траектории). Ясно, что чем на большее количество шагов осуществляется рекурсивное прогнозирование (чем больше горизонт прогноза), тем больше получаемая погрешность.


  Линейный и нелинейный анализ главных компонент

5. Линейный и нелинейный анализ главных компонент

Иногда встречаются ситуации, когда исходный набор данных может быть адекватно описан меньшим количеством признаков, чем то, с помощью которого он задан с самого начала. Например, если все точки набора лежат на одной прямой на плоскости, то для их описания достаточно задать отображение исходной плоскости на прямую (то есть закон, по которому каждой точке плоскости будет сопоставлена точка прямой) и одну координату точки на этой прямой. Линейный анализ главных компонент (АГК) позволяет автоматически решить первую задачу (определить оптимальное отображение), в результате чего возникает возможностиь снижения размерности исходных данных.

Возможны и более сложные случаи, когда точки набора данных лежат не вдоль прямой, а вдоль произвольной кривой (см. рисунок). Здесь также можно задать закон отображения исходной плоскости на эту кривую и одну координату точки на кривой. Однако получить такое отображение гораздо сложнее, т.к. форма кривой обычно заранее неизвестна.

Нейронные сети специальной архитектуры (т.н. автоассоциативная память) способны находить оптимальное отображение как в линейном случае (где вполне достаточно стандартных математических методов), так и в гораздо более интересном нелинейном случае (см. рисунок).



 

Спецификации

Минимальные требования к аппаратной конфигурации компьютера:

  • IBM®-совместимый компьтер с процессором Pentium
  • 256 МБ оперативной памяти
  • Видеоадаптер и монитор с разрешением 1024х768 и цветопередачей 8 бит (256 цветов)
  • 10 Мбайт свободного места на жёстком диске
  • Мышь
Рекомендуемая аппаратная конфигурация компьютера:
  • IBM®-совместимый компьтер с процессором Pentium III или выше
  • 512 МБ оперативной памяти или более
  • Видеоадаптер и монитор с разрешением 1024х768 или выше и цветопередачей 16 бит (65536 цветов) или выше
  • 10 Мбайт свободного места на жёстком диске
  • Мышь с роликом

Требования к программному обеспечению:
  • Microsoft® Windows 2000, XP или Vista
  • .NET Framework 2.0 или старше


    Обзор возможностей
    Состав пакета
    Спецификации

     НейроПрактикум       NeuroShell 2       GeneHunter       NeuroShell Predictor       NeuroShell Classifier       NeuroShell runtime server

   Deductor


Rambler's Top100 Rambler's Top100