Файл: Лабораторна робота 15.doc

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 19.04.2024

Просмотров: 23

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Лабораторна робота №15 Тема: Нейронні мережі: графічний інтерфейс користувача

Мета: навчитися будувати нейронні мережі за допомогою середовища MATLAB, познайомитися з елементами графічного інтерфейсу.

Теоретичні відомості

Нейронні мережі (NN| - Neural| Networks|) широко використовуються для вирішення різноманітних завдань. Серед областей застосування NN|, що розвиваються, - обробка аналогових і цифрових сигналів, синтез і ідентифікація електронних ланцюгів і систем. Основи теорії і технології застосування NN| широко представлені в пакеті MATLAB|. В зв'язку з цим особливо слід зазначити останню версію пакету - MATLAB| 6.0, де вперше представлений GUI| (Graphical| User| Interface| - графічний інтерфейс користувача) для NN| - NNTool|.

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

У даній статті даний опис NNTool| і показана техніка його застосування у ряді завдань синтезу ланцюгів і цифрової обробки сигналів.

Обробка сигналів в технологіях NN| виконується з допомогою або NN| без пам'яті, або NN| з пам'яттю. І в тому і іншому випадках ключовим елементом є NN| без пам'яті. Подібна роль визначається тією обставиною, що при використанні нейронів з певними функціями активації (передавальними характеристиками) NN| є універсальною апроксимацією. Останнє означає, що в заданому діапазоні зміни вхідних змінних NN| може із заданою точністю відтворювати (моделювати) довільну безперервну функцію цих змінних.

Нижче обговорюються питання, що відносяться до так званих NN| прямого розповсюдження, тобто без зворотних зв'язків. Чудовою властивістю таких NN| є їх стійкість.

Після того, як структура NN| вибрана, повинні бути встановлені її параметри. Вибір структури NN| і типів нейронів - самостійний і вельми непростий питання, яке тут ми обговорювати не будемо. Що ж до значень параметрів, то, як правило, вони визначаються в процесі рішення деякої оптимізаційної задачі. Ця процедура в теорії NN| називається навчанням.


Графічний інтерфейс користувача NNTool| дозволяє вибирати структури NN| з обширного переліку і надає безліч алгоритмів навчання для кожного типу мережі.

У статті розглянуті наступні питання, що відносяться до роботи з NNTool|:

  • призначення графічних елементів, що управляють;

  • підготовка даних;

  • створення нейронної мережі;

  • навчання мережі;

  • прогін мережі.

Всі етапи роботи з мережами проілюстровані прикладами вирішення простих завдань. Як і в попередніх статтях проекту "MATLAB| для DSP|", передбачається, що читач знайомий з основами теорії NN| і її термінологією.

Елементи nnTool|, що управляють

Щоб запустити NNTool|, необхідно виконати однойменну команду в командному вікні MATLAB|:

>> nntool|

після цього з'явиться головне вікно NNTool|, що іменується "Вікном управле-ния| мережами і даними" (Network/Data Manager|) (мал. 1).


Мал. 1. Главное окно nnTool

Панель "Мережі і дані" (Networks| and| Data|) має функціональні клавіші з наступними призначеннями:

  • Допомога (Help|) - короткий опис елементів даного вікна, що управляють;

  • Нові дані (New| Data|.) - виклик вікна, що дозволяє створювати нові набори даних;

  • Нова мережа (New| Network|.) - виклик вікна створення нової мережі;

  • Імпорт (Import|.) - імпорт даних з робочого простору MATLAB| в простір змінних NNTool|;

  • Експорт (Export|.) - експорт даних з простору змінних NNTool| в робочий простір MATLAB|;

  • Вигляд (View|) - графічне відображення архітектури вибраної мережі;

  • Видалити (Delete|) - видалення вибраного об'єкту.

На панелі "Тільки мережі" (Networks| only|) розташовані клавіші для роботи виключно з мережами. При виборі покажчиком миші об'єкту будь-якого іншого типу, ці кнопки стають неактивними.

При роботі з NNTool| важливо пам'ятати, що клавіші View|, Delete|, Initialize|, Simulate|, Train| і Adapt| (зображені на мал. 1 як неактивні) діють стосовно того об'єкту, який відмічений в даний момент виділенням. Якщо такого об'єкту немає, або над виділеним об'єктом неможливо провести вказану дію, відповідна клавіша неактивна.

Розглянемо створення нейронної мережі за допомогою NNTool| на прикладі.

Приклад 1.

Хай потрібно створити нейронну мережу, виконуючу логиче-скую| функцію "І".

Створення мережі

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

Отже, перед створенням мережі необхідно заготовити набір повчальних і цільових даних. Складемо таблицю істинності для логічної функції "І", де P1| і Р2 - входи, а А - бажаний вихід (табл. 1).

Таблиця 1. Таблиця істинності логічної функції "І"

P1|

P2|

A

0

0

0

0

1

0

1

0

0

1

1

1


Щоб задати матрицю, що складається з чотирьох векторів-рядків, як вхідну, скористаємося кнопкою New| Data|. У вікні, що з'явилося, слід провести зміни, показані на мал. 2, і натиснути клавішу "Створити" (Create|).

Мал. 2. Задание входных векторов

Після цього у вікні управління з'явиться вектор data1| в розділі Inputs|. Вектор цілей задається схожим чином (мал. 3).

Мал. 3. Задание целевого вектора

Після натиснення на Create| в розділі Targets| з'явиться вектор target1|.

Дані в полі "Значення" (Value|) можуть бути представлені будь-яким зрозумілим виразом MATLAB|. Наприклад, попереднє визначення вектора цілей можна еквівалентно замінити рядком вигляду

bitand|([0 0 1 1], [0 1 0 1]).

Тепер слід приступити до створення нейронної мережі. Вибираємо кнопку New| Network| і заповнюємо форму, як показано на мал. 4.

Мал. 4. Окно "Создание сети"

При цьому поля несуть наступні смислові навантаження:

  • Ім'я мережі (Network| Name|) - це ім'я об'єкту створюваної мережі.

  • Тип мережі (Network| Type|) - определяеттип| мережі і в контексті вибраного типу представляє для введення різні параметри в частині вікна, розташованій нижче за цей пункт. Таким чином, для різних типів мереж вікно змінює свій зміст.

  • Вхідні діапазони (Input| ranges|) - матриця з числом рядків, рівним числу входів мережі. Кожен рядок є вектором з двома елементами: перший - мінімальне значення сигналу, яке буде подано на відповідний вхід мережі при навчанні, другої, - максимальне. Для спрощення введення цих значень передбачений випадний список "Отримати з входу" (Get| from| input|), що дозволяє автоматично сформувати необхідні дані, вказавши ім'я вхідної змінної.

  • Кількість нейронів (Number| of| neurons|) - число нейронів в шарі.

  • Передавальна функція (Transfer| function|) - в цьому пункті вибирається передавальна функція (функція активації) нейронів.

  • Функція навчання (Learning| function|) - функція, що відповідає за оновлення вагів і зсувів мережі в процесі навчання.

За допомогою клавіші "Вигляд" (View|) можна подивитися архітектуру створюваної мережі (мал. 5). Так, ми маємо можливість упевнитися, чи всі дії були проведені вірно. На мал. 5 зображена персептронная| мережа з вихідним блоком, що реалізовує передавальну функцію з жорстким обмеженням. Кількість нейронів в шарі рівна одному, що символічно відображається розмірністю вектора-стовпця на виході шаруючи і указується числом безпосередньо під блоком передавальної функції. Дана мережа має два входи, оскільки розмірність вхідного вектора-стовпця рівна двом.