Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лабораторна робота №10

.pdf
Скачиваний:
18
Добавлен:
30.05.2020
Размер:
185.28 Кб
Скачать

Лабораторна робота №10

Процедури настройки параметрів

персептронних нейронних мереж.

Процедура адаптації

Мета роботи: вивчення алгоритму настройки параметрів персептронних нейронних мереж за допомогою процедури адаптації в системі MATLAB.

Загальні відомості

Багато разів використовуючи функціїsim і learnp для зміни вагів і зсуву персептрона, можна кінець кінцем побудувати розділяючу лінію, яка вирішить задачу класифікації за умови, що персептрон може вирішувати її. Кожна реалізація процесу настройки з використанням всієї повчальної множини називається проходом або циклом. Такий цикл може бути виконаний за допомогою спеціальної функції адаптації adapt. При кожному проході функція adapt використовує повчальну множину, обчислює вихід, погрішність і виконує підстроювання параметрів персептрона.

Процедура адаптації не гарантує, що синтезована мережа виконає класифікацію нового вектора входу. Можливо, буде потрібно нову настройку матриці вагівW і вектора зсувівb з використанням функції adapt.

Щоб пояснити процедуру адаптації, розглянемо простій приклад. Виберемо персептрон з одним нейроном і двоелементним вектором входу (малюнок).

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

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

Використовуємо нульові початкові ваги і .зсувуДля позначення змінних кожного кроку використовуємо круглі дужки. Таким чином, початкові значення вектора вагівwТ(0) і зсуви b(0) відповідно рівні wТ(0)= [0 0] і b(0)= 0.

1-й крок процедури адаптації

Обчислимо вихід персептрона для першого вектора входуp1, використовуючи початкові ваги і

зсув:

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

1

(3)

Обчислимо нові ваги і зсув, використовуючи введені раніше правила навчання персептрона.

(4)

2-й крок процедури адаптації

Звернемося до нового вектора входу p2, тоді

(5)

В цьому випадку вихід персептрона співпадає з цільовим виходом, так що похибка рівна 0 і не вимагається змін у вагах або зсуві. Таким чином

(6)

3-й крок процедури адаптації

Продовжимо цей процес і переконаємося, що після третього кроку настройки не змінилися:

(7)

4-й крок процедури адаптації

Після четвертого приймемо значення

(8)

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

5-й крок процедури адаптації

Знов використовуваний перший член повчальної послідовності і отримуємо

(9)

6-й крок процедури адаптації

Переходячи до другого члена, отримаємо наступний результат:

(10)

Цим закінчуються ручні обчислення.

2

Розрахунки з використанням функції adapt.

Знов сформуємо модель персептрона, зображеного на малюнку:

Введемо перший елемент повчальної множини:

Встановимо параметр passes (число проходів), рівним 1, і виконаємо один крок настройки:

Скоректовані вектор вагів і зсув визначимо таким чином:

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

Але можна цю роботу виконати автоматично, задавши відразу всю повчальну множину і виконавши один прохід:

Тепер навчимо мережу.

Повертаються вихід і помилка

Скоректовані вектор вагів і зсув визначуваний таким чином:

Моделюючи отриману мережу по кожному входу, отримаємо

3

Можна переконатися, що не всі виходи рівні цільовим значенням повчальної множини. Це означає, що слід продовжити настройку персептрона.

Виконаємо ще один цикл настройки:

Тепер рішення співпадає з цільовими виходами повчальної множини, і всі входи класифіковані правильно.

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

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

Нейронні мережі на основі персептрона мають ряд обмежень. По-перше, вихід персептрона може приймати тільки одне з двох значень(0 або 1); по-друге, персептрони можуть вирішувати завдання класифікації тільки для лінійно віддільних наборів векторів. Якщо вектори входу лінійно невід’ємні, то процедура адаптації не в змозі класифікувати всі вектори належним чином.

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

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

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

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

4

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

Порядок виконання роботи

1.Для повчальної множини персептронної нейронної мережі, розробленої в лабораторній роботі № 9, при нульових початкових значеннях вагів і зсуву виконати процедуру адаптації ручним розрахунком і моделюванням з використанням функції adapt системи MATLAB.

2.Визначити кількість циклів настройки мережі. Порівняти результати розрахунків з результатами, отриманими в лабораторній роботі № 9.

3.Здійснити моделювання настроєної нейронної мережі для5-ти нових наборів вхідних векторів і перевірити правильність рішення задачі класифікації мережею.

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

звекторів повчальної множини в 10–30 разів. Порівняти кількість циклів навчання з результатами п. 1.

5.Повторити процедуру настройки персептронної нейронної мережі при нульових початкових значеннях вагів і зсуву з використанням функції adapt системи MATLAB, зменшивши довжину одного з векторів повчальної множини в 10–15 разів. Порівняти кількість циклів навчання з результатами п. 1.

6.Роздрукувати текст програми.

7.Скласти звіт, який повинен містити :

мета лабораторної роботи;

структурну схему нейронної мережі;

ручний розрахунок настройки мережі:

текст програми і результати моделювання;

висновок.

5

Соседние файлы в предмете Искусственный интеллект