Поділ лінійно-невіддільних множин

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

Показовим прикладом лінійно невіддільної задачі є створення нейронної мережі, що виконує логічну функцію " виключаюче ЧИ".

Приклад 2.

Нехай потрібно створити нейронну мережа, що виконує логічну функцію " виключаюче ЧИ".

Розглянемо таблицю істинності цієї функції (табл. 2).

Таблиця 2. Таблиця істинності логічної функції " виключаєче ЧИ"

P1 P2 A
     
     
     
     

Що ж мається на увазі під "лінійною невіддільністю" множин? Щоб відповісти на це питання, зобразимо множина вихідних значень у просторі входів (рис. 10),випливаючи наступному правилу: сполучення входів P1 і P2, при яких вихід A звертається в нуль, позначаються кружком, а ті, при яких A звертається в одиницю - хрестиком.

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

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

Рис. 10. Стан логічного елемента " виключаюче ЧИ"   Рис. 11. Мережа для рішення задачі " виключаюче ЧИ"  

 

Виберемо персептрон з двома нейронами схованого шару, у яких функції активації сигмоїдні, і одним вихідним нейроном з лінійною функцією активації (рис. 11).Як функцію помилки вкажемо MSE (Mean Square Error - середній квадрат помилки). Нагадаємо, що функція помилки встановлюється у вікні "Створення мережі" після вибору типу мережі.

Ініціалізуємо мережу, натиснувши кнопку Initialize Weights на вкладці Initialize, після чого навчимо, указавши як вхідні значення сформовану раніше змінну data1, як мету - новий вектор, що відповідає бажаним виходам. У процесі навчання мережа не може забезпечити точного рішення, тобто звести помилку до нуля. Однак виходить наближення, яке можна спостерігати по кривій навчання на рис. 12.

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

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

 

 

Рис. 12. Крива навчання в задачі " щовиключає ЧИ"   Рис. 13. Архітектура мережі для рішення задачі апроксимації  

Задача апроксимації

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

Приклад 3.

Необхідно виконати апроксимацію функції наступного виду

де x € 1?N, а N - число крапок функції.

Заготовимо цільові дані, ввівши в поле "Значення" (Value) вікна створення нових даних вираз:

sin(5*pi*[1:100]/100+sin(7*pi*[1:100]/100)).

Ця крива являє собою відрізок періодичного коливання з частотою 5p/N, модульованого по фазі гармонійним коливанням з частотою 7 N (рис. 15).

Тепер заготовимо набір навчальних даних (1, 2, 3,..., 100), задавши їх наступним виразом:

1:100.

Рис. 14. Крива навчання в задачі апроксимації   Рис. 15. Червона крива - цільові дані, синя крива - апроксимуюча функція  

 

Виберемо персептрон (Feed-Forward Back Propagation) з тринадцятьма сигмоиїниыми (TANSIG) нейронами схованого шару й одним лінійним (PURELIN) нейроном вихідного шару. Навчання будемо робити, використовуючи алгоритм Левенберга-Маркардта (Levenberg-Mar-quardt), що реалізує функція TRAINLM. Функція помилки - MSE. Отримана мережа має вид, зображений на рис. 13.

Тепер можна приступити до навчання. Для цього необхідно вказати, які набори даних повинні бути використані в якості навчальних і цільових, а потім провести навчання (рис. 14).

Рис. 15 ілюструє різницю між цільовими даними й отриманою апроксимуючою кривою. З рис. 14 і 15 видно, наскільки зменшилася помилка апроксимації за 100 епох навчання. Форма кривої навчання на останніх епохах говорить також про те, що точність наближення може бути підвищена.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: