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

Автор: Пользователь скрыл имя, 02 Февраля 2013 в 17:58, курсовая работа

Краткое описание

Перед комп’ютером ставиться наступна задача. Є безліч об'єктів (ситуацій) і безліч можливих відповідей (відгуків, реакцій). Існує деяка залежність між відповідями і об'єктами, але вона невідома. Відома тільки кінцева сукупність прецедентів - пар «об'єкт, відповідь»,так звана навчальна вибірка. На основі цих даних потрібно відновити залежність, тобто побудувати алгоритм, здатний для будь-якого об'єкта видати досить точну відповідь. Для вимірювання точності відповідей певним чином вводиться функціонал якості.
Дана постановка є узагальненням класичних задач апроксимації функцій. У класичних задачах апроксимацій об'єктами є дійсні числа або вектори. У реальних прикладних задачах вхідні дані про об'єкти можуть бути неповними, неточними, нечисловими, різнорідними. Ці особливості призводять до великої різноманітності методів машинного навчання.

Оглавление

Вступ……………………………………………………………………………………….3
1. Вивчення параметрів за допомогою методу максимальної правдоподібності:
дискретні моделі……………………………………………………..…………….4
2. Наївні Байєсівські моделі………………………………………………………...7
3. Нейронні мережі…………………………………………………………………..10
3.1. Структура нейронних мереж………………………………………...13
3.2. Багатошарові нейронні мережі з прямим розповсюдженням….......17
3.3. Визначення в процесі навчання структур нейронних мереж…….....20
3.4. Практичний приклад: розпізнавання рукописних ЦИФР………….21
4. Програмна реалізація наївної байєсівської моделі……………………………24
4.1. Алгоритм навчання………………………………………………….24
4.2. Опис програми……………………………………………………….24
3. Інструкція користувачеві………………………………………….......25
Висновок………………………………………………………………………………..27
Список використаних джерел…………………………………………………………..28
Додаток…………………………………………………………………………………...29

Файлы: 1 файл

zvit.doc

— 2.10 Мб (Скачать)

 

                                      E =                                          (14)

Де  вхідні дані персептрона при обробці розглянутого прикладу.

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

 

function Perceptron-Learning(examples, network) returns гипотеза

                                         персептрона

              inputs: examples, множина прикладів, для кожного значення для якого        

                                           задані вхідні дані

             network, персептрон з вагами Wj, где j=0...n, і функцією активації g

repeat

                   for each e in examples do

 

                               in

                               Err   y[e] – g(in)

                   Wj Wj + a * Err * g’ (in) * xj [e]

Until не досягає деяких критеріїв зупинки

Return Neural –Net – Hypothesis (network)

 

На рис. 6 показані криві  навчання персептрона для двох різних задач. Зліва показана крива для  визначення в процесі навчання мажоритарної функції з 11 булевими входами (тобто  функція виводить 1, якщо на шести або більше входах присутній 1). Як і слід було очікувати, персептрон визначає цю функцію в процесі навчання дуже швидко, оскільки мажоритарна функція є лінійно роздільна. З іншого боку, яка навчається пристрій, заснований на використанні дерева рішень, не домагається суттєвого прогресу, оскільки мажоритарну функцію дуже складно (хоча й можливо) представити у вигляді дерева рішень. Праворуч показано завдання з рестораном. Вирішення цієї задачі можна легко представити у вигляді дерева рішень, але відповідна функція не є лінійно роздільна. Найкраща гіперплоскість, що розділяє дані, дозволяє правильно класифікувати тільки 65% прикладів.


Рис. 6 Порівняння продуктивності персептронів і дерев  рішень.

 

3.2. Багатошарові нейронні мережі з прямим розповсюдженням

 

 

 

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

 

 

 Рис. 7 . Приклад використання м’яких порогових функцій.

 

 

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

Припустимо, що необхідно сконструювати мережу з прихованим шаром для завдання з рестораном. Є 10 атрибутів, що описують кожен приклад, тому потрібно 10 вхідних елементів. А скільки потрібно прихованих елементів? На рис. 20.23 показана мережа із чотирма прихованими елементами. Як виявилося, така кількість прихованих елементів майже повністю підходить для вирішення даної задачі. Але проблема завчасного вибору підходящої кількості прихованих елементів все ще повністю не досліджена.

Алгоритми навчання для  багатошарових мереж подібні алгоритму навчання для персептронів. Одне невелике розходження полягає в тому, що може бути передбачено кілька виходів, тому повинен застосовуватися вектор виходів hw(x), а не одне значення, і з кожним прикладом повинен бути пов'язаний вектор виходів у. Між цими алгоритмами існує також важлива відмінність, яка полягає в тому, що помилка y-hw у вихідному шарі є очевидною, а помилка в прихованих шарах здається невловимою, оскільки в навчальних даних відсутня інформація про те, які значення повинні мати приховані вузли.

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


 

 

 

 

 

 

 

 

 

 

Рис. 8. Багатошарова нейронна мережа з одним прихованим   шаром   і 10    входами,застосовна для вирішення завдання з рестораном.

Правило поновлення ваг, вживане у вихідному шарі, ідентичне рівнянню 20.12. Передбачено кілька вихідних елементів, тому припустимо, що ± є i-м компонентою вектора помилки y-hw. Автори вважають також зручно визначати модифіковану помилку , за допомогою якої правило поновлення ваг можна перетворити в такий спосіб:

                                (14)

Щоб оновити ваги зв'язків  між вхідними і прихованими елементами, необхідно визначити величину, аналогічну терму помилки для вихідних вузлів. Саме в цьому і полягає суть методу зворотного поширення помилки. Ідея його полягає в тому, що прихований вузол j "відповідає" за деяку частку помилки в кожному з вихідних вузлів, з якими він з'єднаний. Таким чином, значення розділяються відповідно до ваги зв'язку між прихованим вузлом і вихідним вузлом і поширюються назад, забезпечуючи отримання значень для прихованого шару.

Правило поширення для  значень  полягає в наступному:

 

                                                                                              (15)

 

Тепер правило поновлення ваг між вхідними елементами і  елементами прихованого шару стає майже  ідентичним правилу поновлення для  вихідного шару:

                              

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

 

      1. Визначення в процесі навчання структур нейронних мереж

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

Якщо ми зупинимося виключно на повнозв'язних мережах, то єдині зміни, які можуть бути внесені в структуру мережі, відносяться тільки до кількості прихованих шарів і їх розмірів. Звичайно застосовується підхід, який передбачає випробування декількох варіантів і збереження найкращого. Якщо ж вирішено дотримуватися вимоги щодо запобігання компрометації перевірочного набору, то необхідно використовувати методи перехресної перевірки. Це означає, що вибір зупиняється на такій архітектурній мережі, яка забезпечує найвищу точність прогнозування при перевірці за допомогою випробувальних наборів. Якщо ж вирішено вдатися до використання мереж, які не є повнозв'язними, то необхідно знайти якийсь ефективний метод пошуку в дуже великому просторі можливих топологій зв'язків. Алгоритм  оптимального пошкодження мозку (optimal brain damage) починає свою роботу з повнозвязної мережі і видаляє з неї зв'язки. Після навчання мережі в перший раз за допомогою підходу на основі теорії інформації визначається оптимальний вибір зв'язків, які можуть бути видалені. Після цього здійснюється повторне навчання мережі, і якщо її продуктивність не зменшується, то цей процес повторюється. Крім видалення зв'язків, можливо також видалення елементів, які не роблять великого внеску в результат.

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

     

 

 

 

      1. Практичний приклад: розпізнавання рукописних ЦИФР

Завдання розпізнавання рукописних цифр є важливою у багатьох додатках, включаючи автоматизоване сортування пошти за поштовим кодом, автоматизоване читання чеків і податкових декларацій, а також введення даних для портативних комп'ютерів. У цій області досягнуто швидкий прогрес частково завдяки застосуванню кращих алгоритмів навчання і  завдяки наявності кращих навчальних наборів. У Національному інституті стандартів і технології (National Institute of Standards and Technology - NIST) США був створений архів,він представляє собою базу даних з 60 000 рукописних цифр з розшифровками (з так званою розміткою), кожна з яких задана у вигляді зображення, що складається з 20x20 = 400 пікселів з ​​восьмибітовим кодуванням рівня сірого. Розпізнавання цифр з цієї бази даних стало однією з стандартних еталонних завдань для порівняння нових алгоритмів навчання. Деякі приклади цифр показані на рис. 20.27.

 

 

 

 

        

 

 

 

 

Рис. 9. Приклади з бази даних рукописних цифр інституту NIST.   Верхній ряд: приклади цифр 0-9, які нескладно розпізнати; нижній ряд: більш важкі приклади тих же цифр

Для вирішення цього  завдання було випробувано багато різних підходів до навчання. Одним з перших і, мабуть, найбільш простих став класифікатор за трьома найближчим сусідніми точками, перевагою якого є також те, що він не вимагає витрат часу на навчання. Але оскільки він являє собою алгоритм, заснований на використанні пам'яті, то повинен зберігати всі 60 000 зображень, тому показує низьку продуктивність на етапі прогону. При використанні такого класифікатора була досягнута частота помилок при розпізнаванні перевірочного набору, рівна 2,4%. Крім того, для вирішення цієї задачі була розроблена нейронна мережа з одним прихованим шаром, що складається з 400 вхідних елементів (по одному на кожен піксель) і 10 вихідних елементів (по одному на кожен клас). З використанням перехресної перевірки було виявлено, що найкращу продуктивність забезпечують приблизно 300 прихованих елементів. Оскільки була передбачена повна зв'язність між шарами, загальна кількість ваг становило 123300. Ця мережа дозволила досягти рівня частоти помилок 1,6%. Щоб можна було скористатися структурою самої задачі (тим, що вхід складається з пікселів в двомірному масиві і що невеликі зміни в положенні або нахилі зображення не мають значення), був розроблений ряд спеціалізованих нейронних мереж, званих LeNet. Кожна мережа мала вхідний шар з 32x32 елементів, по яких 20x20 пікселів відцентровувались таким чином, щоб кожен вхідний елемент був представлений за допомогою локальної околиці пікселів. За ними слідували три шари прихованих елементів. Кожен шар складався з декількох гіперплощин з n х n масивів, де значення n було менше, ніж у попередньому шарі, з тим щоб мережа скорочувала обсяг вибірки вхідних даних, і де ваги кожного елемента в гіперплощині обмежувалися ідентичними вагами, з тим щоб ця гіперплощина діяла як детектор якоїсь характеристики: вона дозволяла виділяти деяку характеристику, таку як довга вертикальна лінія або коротка напівкругла дуга. Вихідний шар включав 10 елементів. Було випробувано багато версій такої архітектури; в одній з найбільш успішних версій застосовувалися приховані шари, що складаються відповідно з 768, 192 і 30 елементів. Навчальний набір був доповнений шляхом застосування афінних перетворень до фактичних вхідних даних - зсув, поворот на невеликий кут і масштабування зображень (безумовно, ці перетворення повинні були бути невеликими, оскільки інакше цифра 6 могла б перетворитися в 9!).

Найкращим значенням  частоти помилок, досягнутим за допомогою  мереж LeNet, було 0,9%. У посиленої нейронної мережі комбінувалися три копії архітектури LeNet, притому що друга навчалася на суміші зразків, які перша розпізнавала з помилками 50%, а третя навчалася на зразках, для яких не було досягнуто узгодження за допомогою перших двох копій. Під час перевірки проводилося голосування між трьома мережами з призначеними за допомогою їх ваг для кожної з десяти цифр, а отримані оцінки складалися для визначення переможця. Частота помилок при обробці перевірочного набору становила 0,7%. Машина підтримування векторів  з 25000 підтримуючих векторів досягла частоти помилок 1,1%. Це - чудове досягнення, оскільки метод SVM, як і простий підхід з використанням найближчих сусідніх точок, майже не зажадав роздумів або неодноразових експериментів з боку розробника, але разом з тим дозволив відразу ж наблизитися до продуктивності мереж LeNet, на створення яких пішли роки інтенсивних розробок. Зрозуміло, в машині підтримання  векторів не використовуються дані про структуру завдання, тому вона діяла б з таким же успіхом, якби ті ж пік селі були представлені після застосування до них якоїсь перестановки.

Віртуальна машина підтримання  векторів починає роботу зі звичайною  машиною SVM, а потім вдосконалює її за допомогою методу, що дозволяє користатися даними про структуру задачі. У цьому підході не дозволяється використовувати твори всіх пар пікселів - замість цього в основному застосовуються ядерні функції, сформовані за допомогою пар найближчих пікселів. У ньому також була передбачена можливість доповнювати навчальний набір перетвореними варіантами прикладів, як і в проекті LeNet. Віртуальна машина SVM досягла найкращого показника частоти помилок, зареєстрованого до теперішнього часу, який дорівнює 0,56%. Узгодження з формою - це метод з області машинного зору, який використовується для вирівнювання відповідних частин двох різних зображень об'єктів. Ідея цього методу полягає в тому, що вибирається безліч точок кожного з двох зображень, а потім для кожної точки з першого зображення за допомогою обчислень визначається, яка точка відповідає їй у другому зображенні. Після цього на підставі отриманих даних про вирівнювання обчислюється перетворення між зображеннями, яке дозволяє визначити значення критерію відстані між цими зображеннями. Такий критерій відстані є більш обгрунтованим у порівнянні з простим підрахунком кількості пікселів, і , як виявилося, дуже високу продуктивність показує алгоритм з трьома найближчими сусідніми точками, в якому використовується цей критерій відстані. Після навчання тільки на 20000 з 60000 цифр і з використанням 100 вибіркових точок у розрахунку на кожне зображення, виділених за допомогою детектора краю Кенні, класифікатор з узгодженням форми досяг частоти помилок при обробці перевірочного набору, рівної 0,63%.За деякими оцінками, люди допускають помилки при вирішенні задачі розпізнавання рукописних цифр із частотою приблизно 0,2%. Але цими даними не слід повністю довіряти, оскільки аж ніяк не проводилася така вичерпна перевірка здібностей людей, як самих алгоритмів машинного навчання. На аналогічному наборі даних, що складається з цифр, отриманих з поштової служби США, частота помилок, допущених людьми, складала приблизно 2,5%. Цифри, наведені нижче, являють собою підсумкові дані по частоті помилок, продуктивності на етапі прогону, потребам в пам'яті і тривалості часу навчання для семи описаних тут алгоритмів. До цих даних доданий ще один критерій - процентна кількість цифр, які повинні бути відкинуті, щоб можна було досягти частоти помилок 0,5%. Наприклад, якщо при використанні алгоритму SVM дозволено відкидати 1,8% вхідних даних (тобто передавати їх комусь іншому, щоб він зробив остаточний висновок), то частота помилок на що залишилися 98,2% вхідних даних скорочується з 1,1% до 0,5%.

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