Забавный нейропакет Sharky. Демонстратор перцептронов
Қосымшада ыңғайлырақҚосымшаны жүктеуге арналған QRRuStore · Samsung Galaxy Store
Huawei AppGallery · Xiaomi GetApps

автордың кітабын онлайн тегін оқу  Забавный нейропакет Sharky. Демонстратор перцептронов

Александр Кириченко

Забавный нейропакет Sharky

Демонстратор перцептронов






12+

Оглавление

  1. Забавный нейропакет Sharky
  2. Забавный нейропакет Sharky
    1. Общее описание
  3. Возможности нейропакета
  4. Подготовка исходных данных
  5. Исследование эффективности перцептрона
  6. Контрастирование нейросети
  7. Список литературы

Забавный нейропакет Sharky

Демонстратор перцептронов

Общее описание

Sharky Neural Network — это компьютерная программа фирмы SharkTime Software (http://www.sharktime.com) для игровой демонстрации возможностей нейросетевого классификатора [1—3]. Программа freeware, работает под ОС Windows 2000, Windows XP, и др. Адрес для загрузки:

http://www.sharktime.com/us_SharkyNeuralNetworkDownload.html

Использование игрового нейропакета Sharky для исследования эффективности перцептрона при решении задач узнавания.


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

Программа при классификации не определяет форму. Она просто делит все точки на две группы: синие и жёлтые. Геометрическая форма распознаваемых фигур при этом проявляется при визуализации результата классификации:

Форма распознаваемой фигуры видна в правой половине основного окна пакета:

Исходные данные можно загрузить только в виде заказанного образа из нескольких имеющихся заготовок (xor, circle, square, diamond, ring, moon, wave, и др.). На сайте подготовлены для загрузки дополнительные файлы «AI. points», «cn. points», «N. points», «Two_Spirals_Cartesian. points» и «Two_Spirals_Radial. points»:

Программа позволяет вносить изменения в исходные данные: добавлять, удалять, загружать или сохранять точки. Комбинация клавиш Ctrl + Left Click позволяет работать в режиме spray.

При активизации программы на экране появляется основное окно, которое содержит 5 пунктов меню, содержащихся в первой строке основного экрана:

Network — нейросеть, Shape — тип (форма) исходных данных,

Points — работа с исходными точечными множествами,

View — способ демонстрации данных на экране,

Help — помощь.

С нейросетью можно производить следующие действия:

«Запуск»,

«Остановка» (Stop),

«Обновление сети» (Reset Network),

«Обучение» (Learn),

«Выход из программы» (Exit).

Команды для Запуска и Остановки вынесены на вторую строку экрана (Learn и Stop), причём, кнопка запуска содержит название операции, которая будет выполняться (в данном примере (см. рисунок основного окна пакета) выполняться будет обучение (Learn)) — какая именно операция будет выполняться, выбирается в пункте меню Network.

Структура нейросети задаётся в виде количества слоёв перцептрона и количества нейронов в каждом слое (входной и выходной слои всегда содержат по 2 нейрона).

В программе используется структура нейросети 2:…:2. Первая цифра 2 означает «два входа», так как каждая 2D-точка имеет две координаты — х и у.

Символ 2 в конце означает «2 выхода», так как эта сеть классифицирует на 2 различных класса (жёлтый, синий).

Для задания типа сети нужную структуру (Network Structure) предлагается найти и отметить в таблице (4 строка экрана).

Тип сети выбирается из следующего списка:

где 2:2 означает двуслойный перцептрон с 2 нейронами во входном слое и 2 — в выходном.

2:9:2 означает трёхслойный перцептрон с 9 нейронами в промежуточном слое; а 2:5:5:5:2 означает пятислойный перцептрон с 5 нейронами в каждом из 3 промежуточных слоёв.

Каждый нейрон имеет смещение (bias) и использует двуполярный сигмоид в качестве функции активации (f (x) =2/ (1+e-βx) -1).

Выбранная архитектура сети наглядно отображается схемой в левой части основного экрана программы:

Режим обучения настраивается при нажатии кнопки Learn в 3 строке экрана.

Для обучения существенными являются такие параметры, как

— порядок предъявления образцов (Order),

— фиксация ошибок (Premphase Error вкл/выкл),

— проверка (Verify),

— числовые значения ni (min и max),

— и другие параметры: auto decrease (фиксированное значение 0,912), down rate, momentum.

Кроме того, устанавливаются такие параметры, как режим обучения (Hard, Normal или Soft) и количество эпох (от 1 до 10000).

Результат представляется в виде рисунка 2D Graph (пункт меню View), на котором могут быть отображены:

— оси координат (Coordinate Axis),

— только множества точек (Points),

— точки и ответ нейросети (Points and Network Answer).

Для облегчения восприятия различные виды информации окрашиваются в разные цвета.

Предусмотрена регулировка частоты смены информации на экране.

Возможности нейропакета

С помощью нейропакета Sharky можно решать следующие задачи:

— Изменяя структуру нейросети

— количество слоёв и количество нейронов в каждом слое,

— количество эпох,

— параметры обучения (критерии окончания),

— способы вывода информации на экран

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

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

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

— По графикам в нижней части основного экрана можно увидеть момент переобучения сети (нарушения в монотонном снижении ошибки) и

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

Подготовка исходных данных

Для подготовки данных в Points выбирается пункт Clear Points.

Окно в правой половине экрана очищается. В Points выбираем Generate Points.

Появляется экран для настройки данных:

И после настройки нажимая Generate, генерируем новую группу точек:

При новом нажатии Generate структура данных изменяется:

Если изменить настройку на Square Radial, или изменить на Square Cartesian, добавить условие Minimal distance between classes, или Minimal distance inside classes можно получить что-нибудь вроде разреженной конструкции данных:

Исследование эффективности перцептрона

Рассмотрим задачу: Какая нейросеть в Sharky лучше для узнавания цвета точки

— Выберите какую-нибудь фигуру из следующего набора:

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

На экране синие и жёлтые точки разделены. Но среди жёлтых точек видно несколько синих, и несколько жёлтых — в cиней области экрана. Это ошибки распознавания (4 точки, т.е.1% всех точек):

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

Измените конструкцию нейросети и условия обучения, оставив без изменения исследуемый набор данных.

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

Повторите решение изменяя условия, несколько раз. Оформите отчёт с обоснованием полученных результатов.

Какая из доступных нейросетей при удовлетворительных результатах имеет меньшие размеры (меньше слоёв; меньше нейронов в слое; требует меньшее количество эпох для обучения; требует меньших затрат времени на решение).


Дополнительно: подготовьтесь к объяснению при ответе на следующие вопросы:

1 Составьте краткое руководство пользователя — как заставить перцептрон научиться разделять рисунки.

2. Какие типы рисунков может обрабатывать программа?

3. Как увидеть, какие рисунки образуются точками данного файла.

4. Каким образом вытащить из программы применяемые в них наборы точек и представить их в виде файлов.

Контрастирование нейросети

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

— Упрощение архитектуры нейронной сети.

— Сведение параметров нейронной сети к небольшому набору выделенных значений.

— Снижение требований к точности входных сигналов.

Подробнее о контрастировании см. [4].


Задание:

— Решите заданную вам задачу. Зафиксируйте в отчёте все параметры, полученные при успешном решении задачи. Не забудьте графики, характеризующие обучение.

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

— Определите оптимальное значение эпох для обучения каждого рассмотренного типа сети.

— Опишите в отчёте, как влияет на эффективность обучения структура сети, режим и другие регулируемые параметры.


О загрузке Sharky-файла в Матлаб и другие нейропакеты

Файлы, приведенные на сайте могут быть использованы для сравнения исследуемых нейросетей в разных нейропакетах. Для загрузки файла, полученного из Shape в Матлаб сначала в меню Shape выделяем необходимый набор, например, Diamond.

Затем в меню Points выбирается Save Points as…

Устанавливаются параметры для сохранения файла:

После сохранения получаем:

Этот файл содержит:

— ; Sharky Neural Network 0.9 Beta

— ; Training data

— ; Inputs: 2

— ; Outputs: 1/2

— ; Points: 400

— ; More on: http://www.sharktime.com/

— -0.875500 -0.781250 1

— 0.305250 0.014750 2

— 0.460750 -0.781500 1

— -0.640500 0.855000 1

— -0.026000 0.723750 2

— -0.562250 0.340000 2

— 0.501250 -0.978000 1

— 0.018000 0.535250 2

— -0.765000 -0.085750 2

— 0.767250 0.612250 1

— -0.280250 -0.946500 1

Примечание: фактически при такой структуре файла данных должно использоваться не 2 выходных нейрона, а один.

Необходимо открыть файл и загрузить его в переменную «а» в рабочем документе Матлаб.

Для этого нужно, чтобы кодировка файла соответствовала требованиям Матлаб :

() и чтобы файл содержал только однородную информацию, без верхних 6 строк.

Для определения фактической кодировки загрузим файл в блокнот:

В нижней строке читаем текущую кодировку файла:

Win 1200 (UTF-16LE).

В меню «Кодировка» выбираем

«Сохранить в Windows — 1251».

В блокноте убираем из файла лишние строки.

После этого в Матлаб набираем:

— >> open (’d:\1\diamond. points’) % для открытия файла

— >> load (’d:\1\diamond. points’) % для загрузки файла в рабочую область Матлаб

— >>


И получаем результат:

— Если при загрузке содержимое файла присвоить переменной «а», то получим:

— >> open (’d:\1\diamant-1.txt’)

— >> a=load (’d:\1\diamant-1.txt’)

— a =

— -0.2758 -0.7855 1.0000

— -0.0343 -0.7943 2.0000

— 0.2610 -0.5185 2.0000

— 0.1630 -0.7815 2.0000

— -0.9547 0.9250 1.0000

— 0.5837 -0.6590 1.0000

— -0.2580 0.7823 1.0000

— -0.5062 0.7907 1.0000

— -0.6212 0.3967 1.0000

— 0.1328 -0.1213 2.0000

— -0.4108 -0.1948 2.0000

— -0.4725 -0.5430 1.0000

— 0.7087 0.5933 1.0000

— 0.6445 -0.9520 1.0000

— -0.6820 -0.0135 2.0000

— 0.7215 -0.1103 2.0000

— …

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

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

1— http://www.sharktime.com

2 — http://www.sharktime.com/us_SharkyNeuralNetworkDownload.html

3 — Кириченко А. А. «Использование программы Sharky Neural Network в качестве основы лабораторного изучения многослойности перцептрона», в сб. Материалы Х международной научно-практической конференции «Инновации на основе информационных и коммуникационных технологий», Россия, г. Сочи. 2013.

4 — Миркес Е. М. «Нейроинформатика». pdf