Нейроемулятори

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

Переваги таких "віртуальних" нейрокомп'ютерів для відносно невеликих завдань очевидні:
  • Не треба витрачатися на нову апаратуру, якщо можна використати комп'ютери загального призначення.
  • Користувач не повинен освоювати особливості програмування на спец-процесорах і способи їх сполучення з базовим комп'ютером.
  • Універсальні ЕОМ не накладають жодних обмежень на структуру мереж і способи їх навчання, тоді як спец-процесори найчастіше мають обмежений набір «зашитих» функцій активації і досягають пікової продуктивності лише на певному колі завдань.

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

Серед нейропакетів freeware в Інтернет можна знайти групу демонстраційних програм, використання яких дозволяє наочно демонструватирізні властивості нейромереж. Є серед цієї групи прості, що дозволяють демонструвати окремі властивості нейромереж, такі, як Sharky, Kohonen, EasyDemo, і складні пакети - для демонстрації груп властивостей, до яких можна віднести і такий комерційний пакет, як Матлаб.

Sharky Neural Network

Sharky Neural Network - це комп'ютерна програма фірми SharkTime Software (http://www.sharktime.com) для ігрової демонстрації можливостей нейромережного класифікатора. Програма freeware, працює під ОС Windows різних версій.

Програма реалізує нейронну мережу типу багатошарового перцептрона, призначену для класифікації 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). Тип мережі вибирається з наступного списку:

  • 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)тощо.


Для полегшення сприйняття різні види інформації фарбуються в різні кольори. Передбачено регулювання частоти зміни інформації на екрані.

При вирішенні завдання XOR для очищення екрана в меню Points вибирається пункт Clear Points. Потім Shape -> XOR. При виборі XOR зона графіки заповнюється множинами точок, синіх - 1 і жовтих - 2.

Координати точок (їх всього 400) можна зберегти в файлі (Points -> Save Points As ...). Файл зберігається у форматі *.points, для перегляду можна скористатися редактором Блокнот. Нижче наведено фрагмент вмісту файлу

Після натискання кнопки Learn через деякий час (кілька секунд) Отримаємо результат у вигляді жовтої і синьої зон екрану (рис. А). Незначні зміни налаштувань в розглянутому прикладі дозволяють змінити результат в сторону уточнення класифікації (рис. В):

(Рис. А) (Рис. В)

Змінюючи структуру нейромережі (кількість шарів і кількість нейронів в кожному шарі), кількість епох, параметри навчання (критерії закінчення), способи виведення інформації на екран і коригуючи запропоновані графічні образи, можна побачити, як впливають різні параметри на розпізнавання досліджуваної множини точок.

При наявності навчальної та тестової множин точок за графіками в нижній частині основного екрана можна побачити момент перенавчання мережі та скорегувати необхідну кількість епох.

На сайті SharkTime Software є інші приклади, на основі яких можна перевірити можливості багатошарового перцептрона при класифікації різних фігур (образів).

Порядок роботи

  1. Ознайомитися з теоретичними матеріалами щодо нейронних мереж та їх застосування в задачах класифікації.
  2. На сайті SharkTime Software ознайомитися з документацією щодо нейроемулятора, завантажити та встановити додаток.
  3. Ознайомитися з інтерфейсом додатку і здійснити низку досліджень з параметрами, що встановлено за замовченням.
  4. Відповідно до інструкції сформувати власний набір точок і здійснити
  5. Проаналізувати отримані результати і зробити висновки.
  6. Під час захисту лабораторної роботи вільно володіти теоретичним матеріалом: особливості нейромереж для класифікації, усталені терміни, коло практичного застосування моделей.

Зміст звіту

  1. Назва та мета виконання лабораторної роботи.
  2. Скріни етапів виконання завдання з коротким описом
  3. Характеристика основних параметрів налаштування.
  4. Аналітичні висновки щодо властивостей нейромережі Sharky та отриманих результатів.