ЛЕК 5

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 36

Лекція 5.

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

1
План
1. Поняття Нейронних мереж , що самоорганізуються

2. Типи Нейронних мереж Кохонена .Принцип побудови нейронних мереж


Кохонена.

3. Шар (прошарок ) Кохонена. Архітектура . Конкуруюча функція


активації.

4. Принципи навчання мереж Кохонена

5. Алгоритм функціювання Мережі Кохонена. Навчання методом


послідовних наближень.

6. Навчання Мереж Кохонена. Можливості Методу опуклої комбінації.


модифікації алгоритмів навчання

7. Приклади Реалізації Мереж кохонена в Matlab

2
мереж , що
1. Поняття Нейронних
самоорганізуються

3
Нейронні мережі мережі , що
самоорганізуються
Мережа розроблена Тойво Кохоненом на
початку 1980-х рр. і принципово відрізняється
від розглянутих вище мереж, оскільки
використовує неконтрольоване навчання і

навчальна множина складається лише із


значень вхідних змінних.
Нейронні мережі мережі , що
самоорганізуються

Мережі Кохонена, що самоорганізуються — це


спеціальний клас штучних нейромереж, робота
яких базується на
конкурентному принципі навчання (competitive
learning): (виходи нейронів конкурують між собою
за право перейти в стан збудження)
Виходом мережі вважається нейрон-переможець
("winner takes all").
Нейронні мережі мережі , що
самоорганізуються
Мережа розпізнає кластери в навчальних даних
і розподіляє дані до відповідних кластерів.
Якщо в наступному мережа зустрічається з
набором даних, несхожим ні з одним із відомих
зразків, вона відносить його до нового
кластеру.
Якщо в даних містяться мітки класів, то
мережа спроможна вирішувати задачі
класифікації. Мережі Кохонена можна використовувати і в задачах,
де класи відомі - перевага буде у спроможності мережі виявляти
подібність між різноманітними класами.
2. Типи Нейронних мереж
Кохонена .Принцип побудови
нейронних мереж Кохонена

7
Типи Нейронних мереж
КОХОНЕНА
Мережі Кохонена:
З нейронами , які невпорядковано - часто називають шарами ( рос.
Слоями) Кохонена
З нейронами , які впорядковано -часто називають картами Кохонена.

Створення в Matlab- М функції:


Шар Кохонена -newc
Карта Кохонена –newsom

Інф. Про всі М-функції, що стосуються Мережі Кохонена –help selforg

Democ1 – демонстрація настройки шару Кохонена


Demosm1 - демонстрація 1-омірної карти Кохонена
Demosm2 - демонстрація 2-омірної карти Кохонена
Демо
Принцип побудови нейронних
мереж Кохонена. Структура.
Модель Кохонена ("winner
takes all").
Нейрон-переможець

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

11
Шар (прошарок ) Кохонена.
Архітектура .
. Ndist -блок
визначення від‖ємної
Евклідової відстані
між вектором входу P
і рядками матриці ваг IW

C- конкуруюча
функція активації
Принцип конкуруючої Функції активації.

Вхід функції
активації – результат
сумування обчисленої
відстані з вектором
зміщення

- конкуруюча Функція активації аналізує


значення елементів вектора.
І формує виходи нейронів =0
для всіх нейронів, крім 1-го – переможця,
який має на вході макс. значення
Конкуруюча Функція активації.

Виход вектора прошарку має


лише один вихід =1,який відповідає
нейрону-переможцю.
Інші=0
Така активаційна функція м.б. описана

Акт. ф-ція встановлюється


не на 1 нейрон , а на весь прошарок.
Тому і одержала назву ”конкуруюча”.
Номер активного нейрона визначає кластер, до якого - найближче
вхідний вектор
4. Принципи навчання мереж
Кохонена

15
Мережа Кохонена .
Принципи навчання.
Мережа Кохонена навчається методом послідовних наближень
(найпростіший алгоритм).
Починаючи з випадковим чином обраного вихідного
розташування центрів, алгоритм поступово покращується
для кластеризації навчальних даних.
Основний ітераційний алгоритм Кохонена послідовно
проходить ряд епох, на кожній епосі опрацьовується один
навчальний приклад.
Вхідні сигнали - вектори дійсних чисел - послідовно
пред'являються мережі.
Бажані вихідні сигнали не визначаються

Після пред'явлення достатнього числа вхідних векторів,


синаптичні ваги мережі визначають кластери.
Принципи навчання Мереж
Кохонена. Зони топологічного
сусідства на карті ознак у різні
моменти часу

Для реалізації алгоритму навчання необхідно визначити міру


сусідства нейронів (окіл нейрона-переможця).
NEj(t) - множина нейронів, що вважаються сусідами нейрона j у
момент часу t.
Зони сусідства зменшуються з часом.
Принципи навчання Мереж
Кохонена

Окіл - це декілька нейронів, що оточують


нейрон-переможець.

Відповідно до швидкості навчання, розмір


околу поступово зменшується, так, що
спочатку до нього належить досить
велике число нейронів (можливо вся
карта),

на самих останніх етапах окіл стає


нульовим і складається лише з
нейрона-переможця.
5. Алгоритм функціювання
Мережі Кохонена. Навчання
методом послідовних
наближень

19
Алгоритм функціювання Мережі Кохонена
Навчання методом послідовних наближень.
1.Ініціалізація мережі. Ваговим коефіцієнтам мережі надаються малі
випадкові значення. Початкова зона сусідства –див слайд вище.
2.Пред'явлення мережі нового вхідного сигналу.
3.Обчислення відстані до всіх нейронів мережі: Відстані dj від вхідного
сигналу до кожного нейрона j визначаються за формулою:

де xi - i-ий елемент вхідного сигналу в момент часу t, wij(t) - вага


зв'язку від i-го елемента вхідного сигналу до нейрона j у момент
часу t.
4.Вибір нейрона з найменшою відстанню:
Вибирається нейрон-переможець j*, для якого відстань dj найменше.
5.Налаштування ваг нейрона j* і його сусідів:
Робиться налаштування ваг для нейрона j* і всіх нейронів з його
околу NE. Нові значення ваг:
wij(t+1)=wij(t)+r(t)(xi(t)-wij(t))
де r(t) - швидкість навчання, що зменшується з часом (додатне
число, менше одиниці).
6.Повернення до кроку 2
Навчання методом послідовних
наближень.
Коефіцієнт r(t) швидкості
навчання.
В алгоритмівикористовується коефіцієнт r(t)
швидкості навчання,
який поступово зменшується, для тонкішої
корекції на новій епосі.
В результаті позиція центру встановлюється в
певній позиції,
яка задовільним чином кластеризує приклади, для
яких даний нейрон є переможцем.
Навчання методом послідовних
наближень. Граф. інтерпритація
2. В обл. з 7
Точками позначено елементи вхідного вектора навч.векторів
кружками – елементи векторів вагових (справа) опинився
коефіціентів. лише 1 вектор вагів
нейрона e. (Це не
f
d
f відповідає високій
c e щільності
d c навч.векторів в цій
e обл.
b
b
a a Ці недоліки
притаманні
Недоліки:1.Вектор вагів нейрона а не навчанню методом
навчається , так як для жодного .к. ни для з послідовних
векторів навчаючої множини цей нейрон не наближень
отримує максимального виходу.

Вихід- Метод опуклої комбінації


6. Навчання Мереж кохонена.
Можливості Методу опуклої
комбінації. Модифікації алгоритмів
навчання

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

Метод опуклої комбінації дає правильний розподіл


щільності ядер.

При цьому в мережі не залишається "непотрібних"


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

в мережі не залишається ненавчених нейронів і


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

b c
а

Рисунок 4 – Обучение методом выпуклой комбинации


Приклади модифікації
алгоритмів навчання.
Існують різні модифікації алгоритмів навчання.
Наприклад,
 використання «відчуття справедливості», коли для
нейрона з числом виграшів більше заданого
значення штучно зменшують значення його виходу.
Це включає всі нейрони в процес навчання.
 «корекція вагів пропорційно виходу»: у цій
модифікації коректуються не тільки ваги нейрона,
що виграв, але і всіх останніх, пропорційно їх
нормованому виходу. (Нормування виконується по
максимальному значенню виходу шару або по його середньому
значенню. Також виключає "мертві" нейрони і покращує
розподіл щільності вагів ).
7. Приклади Реалізації Мереж
кохонена в Matlab

28
Реалізація Мережі
Кохонена в Matlab.
Створення
NEWC - M-функція Створення шару Кохонена

Нехай задано масив з 4-х 2-х елементних векторів,


Які необхідно розбити на 2 Класи

p=[ .1 .8 .1 .9;.2 .9 .1 .8] ( 2 вектори коло точки (0,0) і


2 вектори коло точки (1,1) )

net=newc([0 1; 0 1],2);

Діапазон вх. Значень Кількість нейронів в шарі


Реалізація Мережі
Кохонена в MatlabСтворення
.
Початкові значення елементів матриці вагів
задаються як середнє від макс. та мін.Значень
( в центрі інтервала вх. значень)- реалізується за
змовченням М-функцією Midpoint при створенні мережі .

Перевірка: Зміщення задаються ф-цією initcon


і для ініціалізованої мережі:
wts=net.IW{1,1} net.b{1}
wts = ans =
0.5000 0.5000 5.4366
0.5000 0.5000 5.4366
Реалізація Мережі
Кохонена в Matlab.
Створення Структурна схема

Gensim(net);

1 TDL weight
p{1} Delays 1 IW{1,1} C 1

bias netsum compet a{1}

b{1}
Реалізація Мережі
Кохонена в Matlab.
Навчання
Або
Adapt : Train:

net.adaptParam.passes=10;
[net,y,e]=adapt(net,mat2cell(p)); net.trainParam.epochs=10;
net=train(net,p);

За змовчанням використ.навч ф-ція trainbw1 :


на кожному кроці
-обирає випадковий вектор і подає його на мережу
- коригує ваги і зміщення
Реалізація Мережі
Кохонена в Matlab.
Моделювання
Довідка :Ф-ція vec2ind(vec)
a=sim(net,p)
вказує рядочок матриці,
a=
який для поточного стовпчика
(1,1) 1 містить 1(не 0)
(2,2) 1
(1,3) 1 vec = [1 0 0 0; 0 0 1 0; 0 1 0 1]
(2,4) 1 ind = vec2ind(vec)
vec =
ac=vec2ind(a) 1 0 0 0
ac = 0 0 1 0
0 1 0 1
1 2 1 2
ind =
1 3 2 3
Мережа вірно вирішила задачу кластеризації
Реалізація Мережі Кохонена в
Matlab. Моделювання. Вх. вектор 2.
p=[.1 .1 .1 .1;.1 .1 .1 .1];
>> a=sim(net,p)
a=

(1,1) 1
(1,2) 1
(1,3) 1
(1,4) 1
ac=vec2ind(a)
ac =
1 1 1 1

Мережа вірно вирішила задачу кластеризації


Реалізація Мережі Кохонена в
Matlab. Моделювання. Вх. вектор 3.
p=[.9 .7 .9 .9;.9 .9 .9 .9];
>> a=sim(net,p)

a=

(2,1) 1
(2,2) 1
(2,3) 1
(2,4) 1

>> ac=vec2ind(a)

ac =

2 2 2 2

Мережа вірно вирішила задачу кластеризації


Реалізація Мережі Кохонена в
Matlab. Моделювання. Вх. вектор 4.
p=[.1 .9 1 1.9 .99 .99 .9 .9 .9 1 1 .9 .99 .99 .9;.1 .9 1 1.9
.99 .99 .9 .9 .9 1 1 .9 .99 .99 .9];

a=sim(net,p);
ac=vec2ind(a)
ac =
1 2 2 2 2 2 2 2 2 2 2 2 2

Мережа вірно вирішила задачу кластеризації

You might also like