Нейронні мережі 2

[ виправити ] текст може містити помилки, будь ласка перевіряйте перш ніж використовувати.

скачати

План лекції

Визначення ІНС.

Трудноалгорітмізуемие завдання. Приклад - розпізнавання образів.

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

Будова мозку, біологічний нейрон, нервовий імпульс.

Формальний нейрон.

Види мереж: повнозв'язних, багатошарові і т.д.

Багатошарові мережі: завдання класифікації.

Багатошарові мережі: завдання апроксимації.

Види алгоритмів навчання.

Алгоритм зворотного поширення.

Введення

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

Рис. 3. Завдання виділення і розпізнавання об'єктів на картинці (дерево, кішка) - приклад трудноалгорітмізуемой завдання.

Історія ІНС починається з 1943 року, коли У. Маккалок і У. Піттс запропонували першу модель нейрона і сформулювали основні положення теорії функціонування людського мозку. З тих пір теорія пройшла досить великий шлях, а що стосується практики, то річний обсяг продажів на ринку ІНС в 1997 році становив 2 млрд. доларів з щорічним приростом у 50%.

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

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

Здатність до навчання на прикладах

Здатність до узагальнення. Тобто ми, не просто запам'ятали всі приклади бачених дерев, ми створили в мозку деякий ідеальний образ абстрактного дерева. Порівнюючи з ним будь-який об'єкт, ми зможемо сказати, схожий він на дерево чи ні.

Ще одне чільне на цьому завданні відміну це паралельність обробки інформації. Ми не зчитуємо картинку по пікселям, ми бачимо її цілком і наш мозок цілком її і обробляє.

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

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

Хотілося б зрозуміти, які саме особливості організації дозволяє мозку працювати настільки ефективно. Розглянемо коротко, як він улаштований. Все, напевно, знають, що мозок складається з нервових клітин (нейронів). Усього їх ~ 1012 штук.

Рис. 3. Біологічний нейрон.

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

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

Біологічний нейрон - складна система, математична модель якої до кінця не побудована. Як я вже говорив на самому початку в основі теорії ІНС лежить припущення про те, що вся ця складність несуттєва, а властивості мозку пояснюються характером їх з'єднання. Тому замість точних математичних моделей нейронів використовується проста модель так званого формального нейрона.

Рис. 3. Штучний нейрон.

Він має входи, куди подаються деякі числа . Потім стоїть блок, званий адаптивним суматором. На його виході ми маємо зважену суму входів:

. (1)

Потім вона подається на нелінійний перетворювач і на виході ми маємо:

. (2)

Функція F нелінійного перетворювача називається активаційний функцією нейрона. Історично першою була модель, в якій як активаційний функції використовувалася ступінчаста функція або функція одиничного стрибка:

(3)

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

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

(4)

При зменшенні a сигмоїда стає більш пологим, в межі при a = 0 виродилися в горизонтальну лінію на рівні 0.5, при збільшенні a сигмоїда наближається за зовнішнім виглядом до функції одиничного стрибка з порогом в точці x = 0. Одне з цінних властивостей сігмоідной функції - простий вираз для її похідної, застосування якого буде розглянуто в подальшому.

(5)

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

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

У багатошарових нейронних мережах (їх часто називають персептронами) нейрони об'єднуються шари. Шар містить сукупність нейронів з єдиними вхідними сигналами. Число нейронів у шарі може бути будь-яким і не залежить від кількості нейронів в інших шарах. У загальному випадку мережа складається з декількох шарів, пронумерованих зліва на право. Зовнішні вхідні сигнали подаються на входи нейронів вхідного шару (його часто нумерують як нульовий), а виходами мережі є вихідні сигнали останнього шару. Крім вхідного і вихідного шарів в багатошаровій нейронної мережі є один або кілька так званих прихованих шарів.

У свою чергу, серед багатошарових мереж виділяють:


Мережі прямого поширення (feedforward networks) - мережі без зворотних зв'язків. У таких мережах нейрони вхідного шару отримують вхідні сигнали, перетворюють їх і передають нейронам першого прихованого шару, і так далі аж до вихідного, який видає сигнали для інтерпретатора і користувача. Якщо не обумовлено протилежне, то кожен вихідний сигнал n-го шару передасться на вхід всіх нейронів (n +1) - го шару; проте можливий варіант з'єднання n-го шару з довільним (n + p) - м шаром. Приклад шаруватої мережі представлений на рисунку 4.

2. Мережі зі зворотними зв'язками (recurrent networks). У мережах із зворотними зв'язками інформація передається з наступних шарів на попередні. Слід мати на увазі, що після введення зворотних зв'язків мережа вже не просто здійснює відображення множини вхідних векторів на безліч вихідних, вона перетворюється на динамічну систему і виникає питання про її стійкості.

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

Розглянемо більш докладно властивості багатошарових нейронних мереж прямого поширення. Задамося питанням, які завдання може вирішувати подібна нейромережа?

1. Задача класифікації.

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

Рис. 5. Нейрон з пороговою функцією активації розділяє простір входів гиперплоскостью на дві частини.

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

Якщо ми тепер складемо з N таких нейронів шар, то отримаємо розбиття простору входів N гіперплощинами. Кожній області в цьому просторі буде відповідати якийсь набір нулів і одиниць, що формується на виході нашого шару.

Рис. 6. Кішка, яка характеризується її лінійними розмірами.

Таким чином, така нейронна мережа придатна для розв'язання задачі багатовимірної класифікації чи розпізнавання образів. Допустимо у нас є якийсь об'єкт, що має набір властивостей . Це може бути, скажімо, кішка, яка характеризується її лінійними розмірами. Ми можемо подати ці параметри на вхід нашої мережі і сказати, що певна комбінація нулів та одиниць на виході відповідає об'єкту «кішка». Таким чином, наша мережа здатна виконувати операцію розпізнавання.

Рис. 7. Проста задача розпізнавання - лінійно разделімие множини.

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

У більш загальному випадку таке неможливо, наприклад, як на рис.7. У цьому випадку ми можемо використовувати шар нейронів, але одному безлічі (скажімо, кішка) буде відповідати вже не одна, а безліч комбінацій нулів та одиниць.

Рис. 8. Завдання розпізнавання з лінійно нероздільними множинами.

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

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

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

2. Апроксимація функцій.

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

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

Тобто нейромережа з довільною функцією активації може апроксимувати довільну безперервну функцію. При цьому, як виявляється завжди достатньо тришарової мережі. Потрібна велика точність - просто додай нейронів.

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

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

Алгоритми навчання бувають 3-х видів:

Навчання з учителем. При цьому мережі пред'являється набір навчальних прикладів. Кожен навчальний приклад є парою: вектор вхідних значень і бажаний вихід мережі. Скажімо, для навчання передрікання тимчасових рядів це може бути набір декількох послідовних значень ряду і відоме значення в наступний момент часу. У ході навчання вагові коефіцієнти підбираються таким чином, щоб по цих входів давати виходи максимально близькі до правильних.

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

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

Розглянемо один з найбільш популярних алгоритмів навчання, так звані, алгоритм зворотного поширення. Це один з варіантів навчання з учителем. Нехай у нас є багатошарова мережа прямого поширення з випадковими ваговими коефіцієнтами. Є деякий навчальна множина, що складається з пар вхід мережі - бажаний вихід . Через Y позначимо реальне вихідне значення нашої мережі, яке на початку практично випадково через випадковість вагових коефіцієнтів.

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

(6)

де реальний вихід N-го вихідного шару мережі для p-го нейрона на j-му навчальному прикладі, бажаний вихід. Тобто, мінімізувавши такий функціонал, ми отримаємо рішення за методом найменших квадратів.

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

(7)

де ваговий коефіцієнт j-го нейрона n-го шару для зв'язку з i-м нейроном (n -1) - го шару. Параметр називається параметром швидкості навчання.

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

(8)

де - Вихід, а - Зважена сума входів j-го нейрона n-го шару. Зауважимо, що, знаючи функцію активації, ми можемо обчислити . Наприклад, для сигмоїда відповідно до формули (5) ця величина буде дорівнювати

. (9)

Третій співмножник / є ні що інше, як вихід i-го нейрона (n -1) - го шару, тобто

. (10)

Приватні похідні цільової функції за вагами нейронів вихідного шару тепер можна легко знайти. Виробляючи диференціювання (6) по та враховуючи (8) і (10) будемо мати

(11)

Введемо позначення

. (12)

Тоді для нейронів вихідного шару

. (13)

Для вагових коефіцієнтів нейронів внутрішніх шарів ми не можемо відразу записати, чому дорівнює 1-й співмножник з (9), однак його можна представити наступним чином:

(14)

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

(15)

отримати значення для віх нейронів всіх шарів.

Остаточно формулу (7) для модифікації вагових коефіцієнтів можна записати у вигляді

. (16)

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

Надаємо всім ваговим коефіцієнтам мережі випадкові початкові значення. При цьому мережа буде здійснювати якесь випадкове перетворення вхідних сигналів і значення цільової функції (6) будуть великі.

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

Розрахувати за формулою (13) . Потім за допомогою рекурсивної формули (15) підраховуються всі інші і, нарешті, за допомогою (16) зміна вагових коефіцієнтів мережі.

Скорегувати ваги мережі:

.

Розрахувати цільову функцію (6). Якщо вона досить мала, вважаємо мережа успішно навчився. Інакше повертаємося на крок 2.

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

Локальні мінімуми

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

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

Параліч мережі

У процесі навчання мережі значення ваг можуть в результаті корекції стати дуже великими величинами. Це може призвести до того, що всі або більшість нейронів будуть функціонувати при дуже великих аргументах функції активації , В області, де похідна функції дуже мала (як, наприклад для сігмоідной функції активації). Так як величина корекції ваги пропорційна цієї похідної, то процес навчання може практично завмерти. Для подолання такої ситуації існують модифікації алгоритму, що враховують лише напрям антіградіента та не враховують його величину.

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

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

Додати в блог або на сайт

Цей текст може містити помилки.

Програмування, комп'ютери, інформатика і кібернетика | Реферат
47.6кб. | скачати


Схожі роботи:
Нейронні мережі
Нейронні мережі 2 лютого
Нейронні мережі нового покоління
Нейронні мережі нового покоління
Нейронні мережі з радіальними базисними функціями
Комп ютерні мережі класифікація протоколи послуги локальні та глобальні мережі
Проектування локальної мережі для робочих місць на базі мережі Ethernet
Аналіз проблем інформаційної безпеки в комп`ютерній мережі організації підключеної до мережі Інтернтет
Безпека праці при виконанні робіт в каналізаційній мережі мережі газопостачання колодязях ємностях
© Усі права захищені
написати до нас