shkolaw.in.ua 1


МІНІСТЕРСТВО ОСВІТИ І НАУКИ, МОЛОДІ ТА СПОРТУ УКРАЇНИ

Київський національний університет технологій і дизайну

Факультет ринкових інформаційних та інноваційних технологій

Кафедра інформаційних та комп’ютерних технологій

Лабораторна робота

з дисципліни

"Основи систем штучного інтелекту"


Перевірив:

Ст. викладач


Костьян Н.Л. __________

"_____"__________2011 р.

Виконав:

студент групи ЗЧСКС-1-07

Шишкин В.В. __________

"_____"__________2011 р.

Черкаси 2011

Тема: "Дослідження штучної нейронної мережі".

Ціль роботи: Підібрати такі параметри навчання мережі, щоб були коректно розпізнано 10 образів (коефіцієнт шуму 0.3-0.5) розмірністю 8х8 при наступній структурі багатошарового Персептрона:

0-й шар (він же вхідний) - 64 нейронів;

1-й шар - 40 нейронів;

2-й шар - 20 нейронів;

3-й шар (він же вихідний) - 10 нейронів.

б) Знайти оптимальну мережу для розпізнавання 10 образів 8х8 ( тобто необхідно побудувати таку мережу, яка містила б якнайменше нейронів, але при цьому коректно розпізнавала всі 10 образів).
Хід роботи:
Вибір типу нейронної мережі.

У вікні “Моделювання мережі” надається можливість вибрати тип нейронної мережі. Виберемо Персептрон.

Після вибору – натискаємо кнопку “Слід.>>”

Завдання параметрів Персептрона.
Персептрон має пошарову структуру:

Нульовий шар, тобто шар на який безпосередньо будуть подаватися вхідний вектор x(x1..xn) визначається параметром “Кількість входів”. Якщо кількість входів рівно 64 то розмірність вхідного вектора також повинне рівнятися 64

Кількість шарів зробимо рівним 3-м, кількість нейронів у першому шарі 40 у другому 20 у третьому 10. Створюється наступна структура. Даний Персептрон має два сховані шари.



Натискаємо кнопку “Підтвердити”.

Завдання параметрів навчання.
Для того, щоб задати параметри навчання мережі треба повернутися на вкладку параметри у вікні “Мережа”.

У вікні “Мережа” на вкладці “Параметри” міняємо параметри, які прямо впливають на якість навчання.

Виберемо наступну конфігурацію параметрів:

Швидкість навчання залишимо виставленої за замовчуванням. Якщо образів більше (15-20), то бажане швидкість навчання ставити теж більше (0,05-0,1) для більш швидкого навчання мережі.

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

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

Коефіцієнт шуму в діапазоні 0,3-0,5.

Після завершення вибору параметрів – натискаємо кнопку “Підтвердити параметри”

Завдання образів.
У вікні “Мережу” переходимо на вкладку “Образи”


У вікні “Моделювання мережі” ми вже перебуваємо на вкладці “Образи” (якщо ні, те перейдіть туди).


Задамо кількість образів рівним 10-ти.

Вистава вхідних образів зробимо графічним (Matrix type), а вистава вихідних образів зробимо векторним (Array type)



Натискаємо кнопку “Підтвердити”

З'являється вікно для вибору типу графічної вистави вхідного вектора:



Розмірність вхідного вектора 64 (кількість входів була обрана рівним 64), відповідно графічне відображення образа повинне також бути розмірністю 64. Виберемо квадрат розмірністю 8х8.

У вікні “Мережа” ми спостерігаємо наступне:

Тепер треба задати вхідні еталонні образи, які мережа після навчання буде розпізнавати. Для прикладу, задамо наступні образи: 1, 2, 3, 4, 5, A, B, C, D, E.

Першому вхідному образу зіставляємо вихідний вектор 1 0 0 0 0 0 0 0 0 0;

другому – 0 1 0 0 0 0 0 0 0 0;

…;

десятому – 0 0 0 0 0 0 0 0 0 1.

Для перемикання між образами використовуємо кнопку “Слід. >”. Номер образа відображається над ним у написах INPUT image: n і OUTPUT image: n



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

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

Зберігати треба обов'язково в txt форматі, для того, щоб надалі скористатися збереженим набором.

При наступних побудовах мереж можна відкрити цей набір образів зі збереженого файлу. Обов'язковою умовою, для коректного відкриття набору образів є збіг размерностей вхідного й вихідного векторів із вхідним і вихідним векторам збереженого набору.


Навчання мережі.


Поки написане йде навчання – нічого не торкати. При великій структурі мережі й великій кількості образів (15-20) мережа може навчатися в плині декількох хвилин.

Тестування мережі.
Спочатку протестуємо мережу на еталонних образах. Для цього кнопкою “Слід. >” вибираємо будь-який образ і натискаємо кнопку “Тест”.

Виберемо сьомий образ (B) і натиснемо кнопку “Тест”. Вихідний вектор прийняв значення: 0,000; 0,000; 0,000; 0,100; 0,000; 0,100; 0,999; 0,000; 0,100; 0,000 (тобто приблизно 0000001000). Із цього випливає, що мережа навчилася досить правильно, хоч і не до заданої величини помилки про що свідчить напис у правому верхньому куті).


Щоб накласти шум автоматично ми можемо скористатися кнопкою “Зашумление” вибравши спочатку ступінь шуму. Для прикладу, виберемо ступінь шуму 0.5 і зашумимо даний образ. При натисканні кнопки “Тест” одержуємо наступний вихідний вектор – 0 0 0 0 0 0 1 0 0 0, тобто мережа в цьому образі найбільше розпізнає 7-ий, тобто букву В.

Теж саме проробимо з першим образом (зображення одиниці). Як ми бачимо по вихідному вектору – мережа також з досить більшим заходом упевненості (0.999) розпізнала цей образ як перший еталонний, тобто одиницю


Висновки.
Ми провели дослідження штучної нейронної мережі. Підібрали такі параметри навчання мережі, щоб були коректно розпізнано 10 образів (коефіцієнт шуму 0.3-0.5) розмірністю 8х8 при наступній структурі багатошарового Персептрона - 0-й шар (він же вхідний) - 64 нейронів, 1-й шар - 40 нейронів, 2-й шар - 20 нейронів, 3-й шар (він же вихідний) - 10 нейронів.

Знайти оптимальну мережу для розпізнавання 10 образів 8х8, побудували таку мережу, яка містить якнайменше нейронів, але при цьому коректно розпізнавала всі 10 образів.