Відмінності між версіями «Нейронні мережі»
Symchak (обговорення • внесок) |
Symchak (обговорення • внесок) |
||
Рядок 68: | Рядок 68: | ||
== Багатошарові нейронні мережі == | == Багатошарові нейронні мережі == | ||
Багатошарові (1986 р.) мережі володіють значно більшими можливостями, ніж одношарові. [[Файл:Manynm.png|right|thumb|350px|Багатошарова НМ]]Проте багатошарові мережі можуть привести до збільшення обчислювальної потужності в порівнянні з одношаровими лише в тому випадку, якщо активаційна функція між шарами буде нелінійною. Обчислення виходу шару полягає в множенні вхідного вектора на першу вагову матрицю з подальшим множенням (якщо відсутня нелінійна активаційна функція) результуючого вектора на другу вагову матрицю (XW1)W2. Оскільки множення матриць асоціативне, то X(W1W2). Це показує, що двошарова лінійна мережа еквівалентна одному шару з ваговою матрицею, рівною добутку двох вагових матриць. Отже, для лінійної активіаційної функції будь-яка багатошарова лінійна мережа може бути замінена еквівалентною одношаровою мережею. | Багатошарові (1986 р.) мережі володіють значно більшими можливостями, ніж одношарові. [[Файл:Manynm.png|right|thumb|350px|Багатошарова НМ]]Проте багатошарові мережі можуть привести до збільшення обчислювальної потужності в порівнянні з одношаровими лише в тому випадку, якщо активаційна функція між шарами буде нелінійною. Обчислення виходу шару полягає в множенні вхідного вектора на першу вагову матрицю з подальшим множенням (якщо відсутня нелінійна активаційна функція) результуючого вектора на другу вагову матрицю (XW1)W2. Оскільки множення матриць асоціативне, то X(W1W2). Це показує, що двошарова лінійна мережа еквівалентна одному шару з ваговою матрицею, рівною добутку двох вагових матриць. Отже, для лінійної активіаційної функції будь-яка багатошарова лінійна мережа може бути замінена еквівалентною одношаровою мережею. | ||
+ | |||
+ | |||
+ | == Навчання нейронних мереж == | ||
+ | Мережа навчається, щоб для деякої множини входів X давати бажану множину виходів Y. Кожна така вхідна (або вихідна) множина розглядається як вектор. Навчання здійснюється шляхом послідовного пред'явлення вхідних векторів з одночасним налагодженням ваг відповідно до певної процедури. В процесі навчання ваги мережі поступово стають такими, щоб кожен вхідний вектор виробляв вихідний вектор. Розрізняють алгоритми навчання з вчителем і без вчителя, детерміновані і стохастичні. | ||
+ | <br>''Навчання з вчителем.'' | ||
+ | <br>Навчання з вчителем припускає, що для кожного вхідного вектора X існує цільовий вектор YT, що є необхідним виходом. Разом вони називаються навчальною парою. Звичайно мережа навчається для деякої кількості таких навчальних пар (навчальної множини). В ході навчання зчитується вхідний вектор X, обчислюється вихід мережі Y і порівнюється з відповідним цільовим вектором YT, різниця D ~ YT – Y за допомогою зворотного зв'язку подається в мережу і змінюються ваги W відповідно до алгоритму, прагнучого мінімізувати помилку ε. Зчитування векторів навчальної множини і налагодження ваг виконується до тих пір, поки сумарна помилка для всієї навчальної множини не досягне заданого низького рівня. | ||
+ | <br>''Навчання без вчителя'' | ||
+ | <br>Не зважаючи на численні прикладні досягнення, навчання з вчителем критикувалося за свою біологічну неправдоподібність. Важко уявити навчальний механізм в мозку, який би порівнював бажані і дійсні значення виходів, виконуючи корекцію за допомогою зворотного зв'язку. Якщо допустити подібний механізм в мозку, то звідки тоді виникають бажані виходи? Навчання без вчителя є набагато правдоподібнішою моделлю навчання в біологічній системі. Розвинена Кохоненом і багатьма іншими, вона не потребує цільового вектора для виходів і, отже, не вимагає порівняння з ідеальними відповідями. Навчальна множина складається лише з вхідних векторів. Навчальний алгоритм налагоджує вагу мережі так, щоб виходили узгоджені вихідні вектори, тобто щоб пред'явлення досить близьких вхідних векторів давало однакові виходи. Процес навчання виділяє статистичні властивості навчальної множини і групує схожі вектори в класи. | ||
+ | <br>''Алгоритми навчання'' | ||
+ | <br>Більшість сучасних алгоритмів навчання виросла з концепцій Хебба. Ним запропонована модель навчання без вчителя, в якій синаптична сила (вага) зростає, якщо активовані обидва нейрони, джерело і приймач. Таким чином, часто використовувані шляхи в мережі посилюються і феномен звички і навчання через повторення одержує пояснення. | ||
+ | У штучній нейронній мережі, що використовує навчання по Хеббу, нарощування ваг визначається добутком рівнів збудження передаючого і приймаючого нейронів. Це можна записати як | ||
+ | <center>wij(e+1) = w(e) + α OUTi OUTj,</center> | ||
+ | де wij(e) - значення ваги від нейрона i до нейрона j до налагодження, wij(e+1) - значення ваги від нейрона i до нейрона j після налагодження, α - коефіцієнт швидкості навчання, OUTi - вихід нейрона i та вхід нейрона j, OUTj - вихід нейрона j; e – номер епохи (ітерації під час навчання). | ||
+ | Для навчання нейромереж в багатьох випадках використовують алгоритм зворотного розповсюдження помилки. Розв’язок задачі за допомогою нейронної мережі зводиться до наступних етапів: | ||
+ | #Вибрати відповідну модель мережі (наприклад, трьохшарову ) | ||
+ | #Визначити топологію мережі (кількість елементів та їх зв’язки) | ||
+ | #Вказати спосіб навчання (наприклад, зі зворотним розповсюдженням помилок) і параметри навчання | ||
+ | Кількість прихованих елементів – не менша за кількість вхідних. | ||
== Список використаних джерел == | == Список використаних джерел == |
Версія за 11:16, 24 лютого 2011
Презентація доповіді на тему Нейронні мережі. Реалізація в MatLab. є розміщеною в Репозиторії. |
{{{img}}} | ||
Імя | Володимир | |
Прізвище | Симчак | |
По-батькові | Сергійович | |
Факультет | ФІС | |
Група | СНм-51 | |
Залікова книжка | СН-10-097 |
Зміст
Біологічні нейронні мережі
Нервова система людини побудована з елементів (нейронів), має приголомшуючу складність. Близько 1011 нейронів беруть участь в приблизно 1015 передаючих зв'язках, що мають довжину метр і більше. Кожен нейрон володіє багатьма якостями, спільними з іншими елементами тіла, але його унікальною здатністю є прийом, обробка і передача електрохімічних сигналів по нервових шляхах, які утворюють комунікаційну систему мозку.Дендрити (входи нейрона) йдуть від тіла нервової клітини до інших нейронів, де вони приймають сигнали в точках з'єднання (синапсах). Прийняті синапсом вхідні сигнали підводяться до тіла нейрона. Тут вони підсумовуються, причому одні входи стимулюють активізацію нейрона, а інші – зниження його активності. Коли сумарна активність (збудження) нейрона перевищує деякий поріг, нейрон переходить в активний стан, посилаючи по аксону (виходу нейрона) сигнал іншим нейронам. У цієї основної функціональної схеми багато спрощень і виключень, проте більшість штучних нейронних мереж моделює лише ці прості властивості.
Історія розвитку штучних нейронних мереж
1943 рік — Норберт Вінер разом з співробітниками публікує роботу про кібернетику. Основною ідеєю є представлення складних біологічних процесів математичними моделями.
1943 рік — Маккалок та Піттс формалізують поняття нейронної мережі у фундаментальній статті про логічне числення ідей і нервової активності.
1949 рік — Хебб пропонує перший алгоритм навчання.
У 1958 році Розенблаттом винайдений перцептрон. Перцептрон набуває популярності — його використовують для розпізнавання образів, прогнозування погоди і т. д.
У 1960 році Уідроу спільно зі своїм студентом Хоффом на основі дельта-правила розробили ADALINE, який відразу почав використовуватися для завдань пророцтва і адаптивного управління. Зараз ADALINE (адаптивний суматор) є стандартним елементом багатьох систем обробки сигналів.
У 1961 році під керівництвом Бонгарда розроблена програма «Кора» : «.завдання Кори — пошук розділяючого правила після того, як знайдені оператори, що дають досить чіткі характеристики об'єкту або його частин».
У 1969 році Мінський публікує формальний доказ обмеженості перцептрона і показує, що він нездатний вирішувати деякі завдання, пов'язані з інваріантністю представлень. Інтерес до нейронних мереж різко спадає.
1974 рік — Пол Дж. Вербос, і А. І. Галушкін одночасно винаходять алгоритм зворотного поширення помилки для навчання багатошарових перцептронів.
1975 рік — Фукушима представляє Когнитрон — мережу, що самоорганізовується, призначену для інваріантного розпізнавання образів, але це досягається тільки за допомогою запам'ятовування практично усіх станів образу.
1982 рік — після тривалого занепаду, інтерес до нейромереж знову зростає. Хопфілд показав, що нейронна мережа із зворотними зв'язками може бути системою, що мінімізує енергію (так звана мережа Хопфілда). Кохоненом представлені моделі мережі, що навчається без учителя (нейронна мережа Кохонена).
1986 рік —Румельхартом, Хінтоном і Вільямсом та незалежно і одночасно Барцевим та Охониним перевідкритий та істотно розвинений метод зворотного поширення помилки. Почався вибух інтересу до навчаних нейронних мереж.
Штучний нейрон
Основними компонентами нейромережі є нейрони /neurons/ (елементи, вузли), які з’єднані зв’язками. Сигнали передаються по зваженим зв’язкам (connection), з кожним з яких пов’язаний ваговий коефіцієнт (weighting coefficient) або вага.
Моделі НМ – програмні і апаратні, найбільш поширені – програмні.Використання – розпізнавання образів, прогнозування, створення асоціативної пам’яті. Штучний нейрон імітує в першому наближенні властивості біологічного нейрона. На вхід штучного нейрона поступає множина сигналів, які є виходами інших нейронів. Кожен вхід множиться на відповідну вагу, аналогічну його синаптичній силі, і всі виходи підсумовуються, визначаючи рівень активації нейрона. Хоча мережеві парадигми досить різноманітні, в основі майже всіх їх лежить ця конфігурація. Тут множина вхідних сигналів, позначених x1, x2,…, xn, поступає на штучний нейрон. Ці вхідні сигнали, в сукупності позначаються вектором X, відповідають сигналам, що приходять в синапси біологічного нейрона. Кожен сигнал множиться на відповідну вагу w1, w2,…, wn, і поступає на сумуючий блок, позначений Σ. Кожна вага відповідає «силі» одного біологічного синаптичного зв'язку (множина ваг в сукупності позначається вектором W). Сумуючий блок, який відповідає тілу біологічного нейрона, складає зважені входи алгебраїчно, створюючи вихід, який ми називатимемо NET.
Активіаційні функції
Сигнал NET далі, як правило, перетворюється активаційною функцією F і дає вихідний нейронний сигнал OUT = F(NET). Активаційна функція F(NET) може бути:
1. Пороговою бінарною функцією
де Т – деяка постійна порогова величина, або ж функція, що точніше моделює нелінійну передавальну характеристику біологічного нейрона.
2. Лінійною обмеженою функцією
3. Функцією гіперболічного тангенса
де С > 0 – коефіцієнт ширини сигмоїди по осі абсцис (звичайно С=1).
4. Сигмоїдною (S-подібною) або логістичною функцією
З виразу для сигмоїда очевидно, що вихідне значення нейрона лежить в діапазоні [0,1]. Популярність сигмоїдної функції зумовлюють наступні її властивості:
- здатність підсилювати слабкі сигнали сильніше, ніж великі, і опиратися “насиченню” від потужних сигналів;
- монотонність і диференційованість на всій осі абсцис;
- простий вираз для похідної, що дає можливість використовувати широкий спектр оптимізаційних алгоритмів.
Персептрон
Перші персептрони були створені Ф.Розенблатом у 60-х роках і викликали великий інтерес. Первинна ейфорія змінилася розчаруванням, коли виявилося, що персептрони не здатні навчитися рішенню ряду простих задач. М.Мінський строго проаналізував цю проблему і показав, що є жорсткі обмеження на те, що можуть виконувати одношарові персептрони, і, отже, на те, чому вони можуть навчатися. Оскільки у той час методи навчання багатошарових мереж не були відомі, дослідники перейшли в більш багатообіцяючі області, і дослідження у області нейронних мереж прийшли в занепад. Відкриття методів навчання багатошарових мереж більшою мірою, ніж який-небудь інший чинник, вплинуло на відродження інтересу і дослідницьких зусиль.Навчання персептрона:
- Ініціалізація вагових матриць W (випадкові значення)
- Подати вхід X і обчислити вихід Y для цільового вектора YT
- Якщо вихід правильний – перейти на крок 4; інакше обчислити різницю D = YT – Y; модифікувати ваги за формулою:
де wij(e) – значення ваги від нейрона i до нейрона j до налагодження, wij(e+1) – значення ваги після налагодження, α – коефіцієнт швидкості навчання, Хi – вхід нейрона i, e – номер епохи (ітерації під час навчання).
- Виконувати цикл з кроку 2, поки мережа не перестане помилятися. На другому кроці у випадковому порядку пред’являються всі вхідні вектори.
Один з найпесимістичніших результатів Мінського показує, що одношаровий персептрон не може відтворити таку просту функцію, як ВИКЛЮЧАЄ АБО. Це функція від двох аргументів, кожний з яких може бути нулем або одиницею. Вона приймає значення одиниці, коли один з аргументів рівний одиниці (але не обидва).
Багатошарові нейронні мережі
Багатошарові (1986 р.) мережі володіють значно більшими можливостями, ніж одношарові. Проте багатошарові мережі можуть привести до збільшення обчислювальної потужності в порівнянні з одношаровими лише в тому випадку, якщо активаційна функція між шарами буде нелінійною. Обчислення виходу шару полягає в множенні вхідного вектора на першу вагову матрицю з подальшим множенням (якщо відсутня нелінійна активаційна функція) результуючого вектора на другу вагову матрицю (XW1)W2. Оскільки множення матриць асоціативне, то X(W1W2). Це показує, що двошарова лінійна мережа еквівалентна одному шару з ваговою матрицею, рівною добутку двох вагових матриць. Отже, для лінійної активіаційної функції будь-яка багатошарова лінійна мережа може бути замінена еквівалентною одношаровою мережею.
Навчання нейронних мереж
Мережа навчається, щоб для деякої множини входів X давати бажану множину виходів Y. Кожна така вхідна (або вихідна) множина розглядається як вектор. Навчання здійснюється шляхом послідовного пред'явлення вхідних векторів з одночасним налагодженням ваг відповідно до певної процедури. В процесі навчання ваги мережі поступово стають такими, щоб кожен вхідний вектор виробляв вихідний вектор. Розрізняють алгоритми навчання з вчителем і без вчителя, детерміновані і стохастичні.
Навчання з вчителем.
Навчання з вчителем припускає, що для кожного вхідного вектора X існує цільовий вектор YT, що є необхідним виходом. Разом вони називаються навчальною парою. Звичайно мережа навчається для деякої кількості таких навчальних пар (навчальної множини). В ході навчання зчитується вхідний вектор X, обчислюється вихід мережі Y і порівнюється з відповідним цільовим вектором YT, різниця D ~ YT – Y за допомогою зворотного зв'язку подається в мережу і змінюються ваги W відповідно до алгоритму, прагнучого мінімізувати помилку ε. Зчитування векторів навчальної множини і налагодження ваг виконується до тих пір, поки сумарна помилка для всієї навчальної множини не досягне заданого низького рівня.
Навчання без вчителя
Не зважаючи на численні прикладні досягнення, навчання з вчителем критикувалося за свою біологічну неправдоподібність. Важко уявити навчальний механізм в мозку, який би порівнював бажані і дійсні значення виходів, виконуючи корекцію за допомогою зворотного зв'язку. Якщо допустити подібний механізм в мозку, то звідки тоді виникають бажані виходи? Навчання без вчителя є набагато правдоподібнішою моделлю навчання в біологічній системі. Розвинена Кохоненом і багатьма іншими, вона не потребує цільового вектора для виходів і, отже, не вимагає порівняння з ідеальними відповідями. Навчальна множина складається лише з вхідних векторів. Навчальний алгоритм налагоджує вагу мережі так, щоб виходили узгоджені вихідні вектори, тобто щоб пред'явлення досить близьких вхідних векторів давало однакові виходи. Процес навчання виділяє статистичні властивості навчальної множини і групує схожі вектори в класи.
Алгоритми навчання
Більшість сучасних алгоритмів навчання виросла з концепцій Хебба. Ним запропонована модель навчання без вчителя, в якій синаптична сила (вага) зростає, якщо активовані обидва нейрони, джерело і приймач. Таким чином, часто використовувані шляхи в мережі посилюються і феномен звички і навчання через повторення одержує пояснення.
У штучній нейронній мережі, що використовує навчання по Хеббу, нарощування ваг визначається добутком рівнів збудження передаючого і приймаючого нейронів. Це можна записати як
де wij(e) - значення ваги від нейрона i до нейрона j до налагодження, wij(e+1) - значення ваги від нейрона i до нейрона j після налагодження, α - коефіцієнт швидкості навчання, OUTi - вихід нейрона i та вхід нейрона j, OUTj - вихід нейрона j; e – номер епохи (ітерації під час навчання). Для навчання нейромереж в багатьох випадках використовують алгоритм зворотного розповсюдження помилки. Розв’язок задачі за допомогою нейронної мережі зводиться до наступних етапів:
- Вибрати відповідну модель мережі (наприклад, трьохшарову )
- Визначити топологію мережі (кількість елементів та їх зв’язки)
- Вказати спосіб навчання (наприклад, зі зворотним розповсюдженням помилок) і параметри навчання
Кількість прихованих елементів – не менша за кількість вхідних.