Нейронні мережі. Реферат на тему Нейронні мережі т 2009
Скачать 45.83 Kb.
|
|
Рис.2 Штучний нейрон |
(1)
Вихід нейрона є функція його стану:
y = f (s) (2)
Нелінійна функція f називається активаційний і може мати різний вигляд, як показано на малюнку 3.
Однією з найбільш поширених є нелінійна функція з насиченням, так звана логістична функція або сигмоїда (тобто функція S-подібного виду):
(3)
При зменшенні a сигмоїда стає більш пологим, в межі при a = 0 виродилися в горизонтальну лінію на рівні 0.5, при збільшенні a сигмоїда наближається за зовнішнім виглядом до функції одиничного стрибка з порогом T в точці x = 0. З виразу для сигмоїда очевидно, що вихідне значення нейрона лежить в діапазоні [0,1]. Одне з цінних властивостей сігмоідной функції - простий вираз для її похідної, застосування якого буде розглянуто в подальшому.
(4)
Слід зазначити, що сігмоідная функція диференційовна на всій осі абсцис, що використовується в деяких алгоритмах навчання. Крім того вона має властивість підсилювати слабкі сигнали краще, ніж великі, і запобігає насичення від великих сигналів, так як вони відповідають областям аргументів, де сигмоїда має пологий нахил.
Повертаючись до загальних рис, притаманних всім нейронних мереж, відзначимо, по-друге, принцип паралельної обробки сигналів, який досягається шляхом об'єднання великого числа нейронів в так звані шари і з'єднання певним чином нейронів різних шарів, а також, в деяких конфігураціях, і нейронів одного шару між собою, причому обробка взаємодії всіх нейронів ведеться пошарово.
Як приклад найпростішої нейромережі розглянемо тринейронну перцептрон (рис.4), тобто таку мережу, нейрони якої мають активаційних функцію у вигляді одиничного стрибка *. На n входів надходять якісь сигнали, що проходять по синапсах на 3 нейрони, що утворюють єдиний шар цієї нейромережі та видають три вихідних сигналу:
, J = 1 ... 3 (5)
Очевидно, що всі вагові коефіцієнти синапсів одного шару нейронів можна звести в матрицю W, у якій кожен елемент w ij задає величину i-ої синаптичної зв'язку j-ого нейрона. Таким чином, процес, що відбувається в НС, може бути записаний в матричній формі:
Y = F (XW) (6)
де X і Y - відповідно вхідний і вихідний сигнальні вектори, F (V) - активаційна функція, яку застосовують поелементно до компонентів вектора V.
Теоретично число прошарків і число нейронів у кожному шарі може бути довільним, проте фактично воно обмежене ресурсами комп'ютера або спеціалізованої мікросхеми, на яких зазвичай реалізується нейромережа. Чим складніше нейронна мережа, тим масштабніше завдання, підвладні їй.
Вибір структури нейромережі здійснюється у відповідності з особливостями і складністю завдання. Для вирішення деяких окремих типів задач вже існують оптимальні, на сьогоднішній день, конфігурації, описані, наприклад, в [2], [3], [4]. Якщо ж завдання не може бути зведена до жодного з відомих типів, розробнику доводиться вирішувати складну проблему синтезу нової конфігурації. При цьому він керується кількома основними принципами: можливості мережі зростають зі збільшенням числа осередків і щільності зв'язків між ними і числом виділених шарів; введення зворотних зв'язків поряд зі збільшенням можливостей мережі піднімає питання про її динамічної стійкості, складність алгоритмів функціонування мережі (в тому числі, наприклад , введення декількох типів синапсів - збуджуючих, гальмують та ін) також сприяє посиленню мощі нейромережі. Питання про необхідних і достатніх властивостях мережі для вирішення того чи іншого роду задач являє собою цілий напрям нейрокомпьютерной науки. Тому що проблема синтезу нейронної мережі сильно залежить від розв'язуваної задачі, дати загальні докладні рекомендації важко. У більшості випадків оптимальний варіант виходить на основі інтуїтивного підбору.
Очевидно, що процес функціонування нейромережі, тобто сутність дій, які вона здатна виконувати, залежить від величин синаптичних зв'язків, тому, маючи на певній структурою, що відповідає будь-якої задачі, розробник мережі повинен знайти оптимальні значення всіх змінних вагових коефіцієнтів (деякі синаптичні зв'язки можуть бути постійними).
Цей етап називається навчанням нейромережі, і від того, наскільки якісно він буде виконаний, залежить здатність мережі вирішувати поставлені перед нею проблеми під час експлуатації. На етапі навчання окрім параметра якості підбору ваг важливу роль відіграє час навчання. Як правило, ці два параметри пов'язані зворотною залежністю і їх доводиться вибирати на основі компромісу.
Навчання нейронної мережі може вестися з вчителем або без нього. У першому випадку мережі пред'являються значення як вхідних, так і бажаних вихідних сигналів, і вона по деякому внутрішньому алгоритмом підлаштовує ваги своїх синаптичних зв'язків. У другому випадку виходи нейромережі формуються самостійно, а ваги змінюються за алгоритмом, що враховує тільки вхідні і похідні від них сигнали.
Існує безліч різних алгоритмів навчання, які діляться на два великі класи: детерміністські та стохастичні. У першому з них підстроювання ваг являє собою жорстку послідовність дій, у другому - вона виробляється на основі дій, що підкоряються деякого випадкового процесу.
Розвиваючи далі питання про можливу класифікації нейронних мереж, важливо відзначити існування бінарних та аналогових мереж. Перші з них оперують з двійковими сигналами, і вихід кожного нейрона може приймати тільки два значення: логічний нуль ("загальмований" стан) і логічна одиниця ("порушену" стан). До цього класу мереж належить і розглянутий вище перцептрон, так як виходи його нейронів, що формуються функцією одиничного стрибка, рівні або 0, або 1. У аналогових мережах вихідні значення нейронів здатні приймати безперервні значення, що могло б мати місце після заміни активаційний функції нейронів перцептрона на сигмоїда.
Ще одна класифікація ділить нейронні мережі на синхронні та асинхронні [3]. У першому випадку в кожний момент часу свій стан змінює лише один нейрон. У другому - стан міняється відразу у цілої групи нейронів, як правило, у всього шару. Алгоритмічно хід часу в нейромережі задається ітераційним виконанням однотипних дій над нейронами. Далі будуть розглядатися тільки синхронні нейронні мережі.
Мережі також можна класифікувати за кількістю шарів. На малюнку 5 представлений двошаровий перцептрон, отриманий з перцептрона з малюнка 3 шляхом додавання другого шару, що складається з двох нейронів. Тут доречно відзначити важливу роль нелінійності активаційної функції, так як, якщо б вона не володіла даними властивістю або не входила в алгоритм роботи кожного нейрона, результат функціонування будь-p-шарової нейромережі з ваговими матрицями W (i), i = 1,2,. .. p для кожного шару i зводився б до перемноження вхідного вектора сигналів X на матрицю
W (S) = W (1) × W (2) ×...× W (p) (7)
тобто фактично така p-шарова нейромережа еквівалентна одношарової мережі з ваговій матрицею єдиного шару W (S):
Y = XW (S) (8)
Продовжуючи розмову про нелінійність, можна відзначити, що вона іноді вводиться і в синаптичних зв'язку. Більшість відомих на сьогоднішній день мереж використовують для знаходження зваженої суми входів нейрона формулу (1), проте в деяких додатках корисно ввести інший запис, наприклад:
(9)
або навіть
(10)
Питання в тому, щоб розробник нейромережі чітко розумів, для чого він це робить, якими цінними властивостями він тим самим додатково наділяє нейрон, і яких позбавляє. Введення такого роду нелінійності, взагалі кажучи, збільшує обчислювальну потужність мережі, тобто дозволяє з меншого числа нейронів з "нелінійними" синапсами сконструювати нейронну мережу, що виконує роботу звичайної мережі з великою кількістю стандартних нейронів і більш складної конфігурації [1].
Різноманіття існуючих структур мереж дозволяє відшукати й інші критерії для їх класифікації, але вони виходять за межі цієї роботи.
Тепер розглянемо один нюанс, навмисно опущений раніше. З малюнка функції одиничного стрибка видно, що граничне значення T, в загальному випадку, може приймати довільне значення. Більш того, воно має брати якесь довільне, невідоме заздалегідь значення, яке підбирається на стадії навчання разом з ваговими коефіцієнтами. Те ж саме відноситься і до центральної точки сігмоідной залежності, яка може зрушуватися вправо або вліво по осі X, а також і до всіх інших активаційних функцій. Це, однак, не відображено у формулі (1), яка повинна була б виглядати так:
(11)
Справа в тому, що таке зміщення зазвичай вводиться шляхом додавання до шару нейронів ще одного входу, збудливого додатковий синапс кожного з нейронів, значення якого завжди дорівнює 1. Привласнимо цього входу номер 0. Тоді
, (12)
де w 0 =-T, x 0 = 1.
Очевидно, що різниця формул (1) і (12) складається лише в способі нумерації входів.
З усіх активаційних функцій, зображених на малюнку 3, одна виділяється особливо. Це гіперболічний тангенс, залежність якого симетрична відносно осі X і лежить в діапазоні [-1,1]. Вибір області можливих значень виходів нейронів багато в чому залежить від конкретного типу мережі і є питанням реалізації, так як маніпуляції з нею впливають на різні показники ефективності мережі, часто не змінюючи загальну логіку її роботи.
Навчання штучних нейронних мереж
Навчити нейронну мережу - значить, повідомити їй, чого ми від неї домагаємося. Цей процес дуже схожий на навчання дитини алфавітом. Показавши дитині зображення літери "А", ми запитуємо його: "Яка це буква?" Якщо відповідь невірна, ми повідомляємо дитині той відповідь, яку ми хотіли б від нього отримати: "Це буква А". Дитина запам'ятовує цей приклад разом з вірною відповіддю, тобто в його пам'яті відбуваються деякі зміни в потрібному напрямку. Ми будемо повторювати процес пред'явлення букв знову і знову до тих пір, коли всі 33 літери буде твердо запам'ятати. Такий процес називають "навчання з учителем".
При навчанні нейронної мережі ми діємо абсолютно аналогічно. У нас є деяка база даних, що містить приклади (набір рукописних зображень літер). Пред'являючи зображення літери "А" на вхід нейронної мережі, ми отримуємо від неї деяку відповідь, не обов'язково вірний. Нам відомий і вірний (бажаний) відповідь - в даному випадку нам хотілося б, щоб на виході нейронної мережі з міткою "А" рівень сигналу був максимальний. Звичайно як бажаного виходу в задачі класифікації беруть набір (1, 0, 0, ...), де 1 стоїть на виході з міткою "А", а 0 - на всіх інших виходах. Обчислюючи різниця між бажаним відповіддю і реальною відповіддю мережі, ми отримуємо 33 числа - вектор помилки. Алгоритм зворотного поширення помилки - це набір формул, який дозволяє за вектором помилки обчислити необхідні поправки для ваг нейронної мережі. Одну й ту ж букву (а також різні зображення однієї і тієї ж букви) ми можемо висувати нейронної мережі багато разів. У цьому сенсі навчання швидше нагадує повторення вправ у спорті - тренування.
Виявляється, що після багаторазового пред'явлення прикладів ваги нейронної мережі стабілізуються, причому нейронна мережа дає правильні відповіді на всі (або майже всі) приклади з бази даних. У такому випадку говорять, що "нейронна мережа вивчила всі приклади", "нейронна мережа навчена", або "нейронна мережа натреновано". У програмних реалізаціях можна бачити, що в процесі навчання величина помилки (сума квадратів помилок за всіма виходах) поступово зменшується. Коли величина помилки досягає нуля або прийнятного малого рівня, тренування зупиняють, а отриману нейронну мережу вважають натренованої і готової до застосування на нових даних.
Важливо відзначити, що вся інформація, яку нейронна мережа має про завдання, міститься в наборі прикладів. Тому якість навчання нейронної мережі прямо залежить від кількості прикладів в навчальній вибірці, а також від того, наскільки повно ці приклади описують дану задачу. Так, наприклад, безглуздо використовувати нейронну мережу для передбачення фінансової кризи, якщо в навчальній вибірці криз не представлено. Вважається, що для повноцінної тренування нейронної мережі потрібно хоча б кілька десятків (а краще сотень) прикладів.
Повторимо ще раз, що навчання нейронних мереж - складний і наукомісткий процес. Алгоритми навчання нейронних мереж мають різні параметри і настройки, для управління якими потрібно розуміння їх впливу.
Застосування нейронних мереж
Після того, як нейронна мережа навчена, ми можемо застосовувати її для вирішення корисних завдань. Найважливіша особливість людського мозку полягає в тому, що, одного разу навчившись певного процесу, він може вірно, діяти і в тих ситуаціях, в яких він не бував у процесі навчання. Наприклад, ми можемо читати майже будь-який почерк, навіть якщо бачимо його перший раз у житті. Так само і нейронна мережа, грамотним чином навчена, може з великою ймовірністю правильно реагувати на нові, не пред'явлені їй раніше дані. Наприклад, ми можемо намалювати букву "А" іншим почерком, а потім запропонувати нашій нейронної мережі класифікувати нове зображення. Ваги навченої нейронної мережі зберігають досить багато інформації про подібність і розходження букв, тому можна розраховувати на правильну відповідь і для нового варіанту зображення.
Список літератури
1 http://www.module.ru/files/un_neuron_net.pdf
2 http://www.neuroproject.ru/neuro.htm
3 http://www.orc.ru/ stasson / neurox.html # articles
цикл статей: «нейронні мережі: основні положення», C. Короткий
4 http://mechanoid.narod.ru/nns/base
Основні моделі та методи теорії штучних нейронних мереж, Борисов Є. С., 19 жовтня 2005
* Іноді перцептроном називають будь-яку НС шаруватої структури, однак тут і далі під перцептроном розуміється тільки мережа, що складається з нейронів з активаційними функціями одиничного стрибка (бінарна мережу).
//ua-referat.com