Реферати

Реферат: Нейронні мережі

Радянська інтелігенція в епоху тоталітаризму. Міністерство утворення і науки Російської Федерації Агентство по утворенню Державна освітня установа вищого і професійного утворення Улгту

Наступальна стратегія фірми. "Иубип" КАФЕДРА Курсова робота на тему: "Розробка наступальної стратегії, спрямованої на протистояння і подолання сильних сторін конкурентів"

Мети праці. Об'єктивно задані і суб'єктивно прийняті. Контрольна робота Мети праці. Об'єктивно задані і суб'єктивно прийняті цілі праці, їхнього різновиду Зміст Уведення 3 1. Проблема суб'єктивної значимості праці 4

Телефонна комунікація. Міністерство утворення і науки Російської Федерації Заочний факультет Кафедра культурології Контрольна робота З дисципліни: "Діловий етикет"

Оцінка бізнесу 6. Міністерство утворення і науки Російської Федерації. Пензенський Державний Університет. Кафедра: "Е., Ф. і М." ПРАКТИЧНА РОБОТА з дисципліни

План лекції

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

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

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

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

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

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

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

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

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

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

Вступ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

(1)

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

(2)

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

(3)

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

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

(4)

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

(5)

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

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

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

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

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

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

виникає питання про її стійкість.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

(6)

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

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

(7)

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

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

(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.

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

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

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

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

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

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

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

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