Машинно обучение Лабораторно упражнение 9 Класификация с множество класове. Представяне на невронна мрежа Упражнението демонстрира класификация в множ

Подобни документи
Логаритмична регресия

Машинно обучение Лабораторно упражнение 4 Линейна регресия и градиентно спускане Целта на упражнението е да се реализира линейна регресия, в която фун

Машинно обучение - въведение

Microsoft Word - seminar12.docx

годишно разпределение по математика за 8. клас 36 учебни седмици по 3 учебни часа = 108 учебни часа I срок 18 учебни седмици = 54 учебни часа II срок

Microsoft PowerPoint - DBoyadzhieva

Microsoft Word - KZ_TSG.doc

Slide 1

Kontrolno 5, variant 1

Графика и Презентации - Стандартизация на графичният Вход/Изход

Компютърна Графика и Презентации - Графично моделиране

Семинар Изкуствени невронни мрежи В този семинар ще се запознаем с изкуствените невронни мрежи (ИНМ), разпространяващи сигналите напред (forward feed)

Управление на перална машина с размита логика Пералните машини в наши дни са обикновен уред в дома. Най-голяма изгода, която потребителя получава от п

Mathematica CalcCenter

Машинно обучение - въведение

Изследване на устойчивостта на равновесното състояние на системи с краен брой степени на свобода Следващият пример илюстрира основните разсъждения при

Проектът се осъществява с финансовата подкрепа на Оперативна Програма Развитие на Човешките Ресурси , Съфинансиран от Европейския Социален Фо

I

Microsoft Word - USSS_03_PLL_v4.doc

Microsoft Word - Primer3_1.doc

2. Лексически анализ. Основни понятия и алгоритъм на лексическия анализ. Програмна структура на лексическия анализатор Цел на упражнението Упражнениет

Homework 2

Задача D

Машинно обучение Лабораторно упражнение 9 Алгоритми за класификация в машинното обучение. Класификация на текст 1. Алгоритми за класификация Постановк

Photoshop Урок 6 Изготвил: инж. Дарина Атанасова, РНИКТ при ІV ЕГ

Софийски университет Св. Климент Охридски Факултет по математика и информатика Курсов проект по Системи за паралелна обработка Тема: Изобразяване на ф

IATI Day 1/Junior Task 1. Trap (Bulgaria) X INTERNATIONAL AUTUMN TOURNAMENT IN INFORMATICS SHUMEN 2018 Задача 1. Капан Образуваме редица от точки, кои

Microsoft Word - PMS sec1212.doc

НАУЧНИ ТРУДОВЕ НА РУСЕНСКИЯ УНИВЕРСИТЕТ , том 49, серия 3.2 Един подход за обработка и конвертиране на векторни изображения в WEB-базираните сис

8 клас

Вариант 1 Писмен Изпит по Дискретни Структури 14/02/2018 г. Оценката се образува по следния начин: 2 + бр. точки, Наредени двойки бележим с ъглови ско

Microsoft Word - CIB80-1book-springer-v16.docx

Линейна алгебра 11. Собствени стойности и собствени вектори на матрица и линейно преобразувание. Диагонализиране на матрица специалности: Математика,

Microsoft Word - Sem02_KH_VM2-19.doc

ВТОРА ГЛАВА

10. Линейни оптимизационни модели – обща постановка

Компютърна Графика и Презентации - Алгоритми за Визуализация

Препис:

Машинно обучение Лабораторно упражнение 9 Класификация с множество класове. Представяне на невронна мрежа Упражнението демонстрира класификация в множество класове чрез методи логаритмична регресия и невронни мрежи. Целта е да се покаже как се извършва класификация на входни данни към един от множество възможни класове, да се демонстрира как се представя структурата на невронна мрежа и да се сравни точността на обучението, постигнато чрез логаритмична регресия и невронна мрежа с предварително обучени параметри. Като пример се разглежда задачата за разпознаване на ръкописни цифри от 0 до 9. 1. Класификация в множество класове Автоматично разпознаване на ръкописни цифри от 0 до 9 се използва например при разпознаване на пощенските кодове, написани на пратки. Тази задача е пример за класификация, при която входните данни (изображения на ръкописни цифри) се отнасят към един от множество възможни класове (цифрите от 0 до 9). 1.1. Обучителни данни Файлът data.mat съдържа 5000 форматирани изображения на ръкописни цифри от 0 до 9. Данните са взети от еталонната база данни MNIST (http://yann.lecun.com/exdb/mnist/), съдържаща множество примери за ръкописни цифри. Файлът е в.mat формат, т.е. данните са записани в MATLAB матрична форма вместо в текстов ASCII формат. Изображението на всяка цифра се представя с матрица, която се зарежда директно в програмата. Във файла са дадени 5000 обучителни примери, всеки от които е изображение, представено с матрица от пиксели 20x20. Всеки пиксел е представен с числова стойност за неговия интензитет от сивата скала. Матрицата 20x20 се преобразува във вектор 400x1. Като резултат всеки обучителен пример става един ред в матрицата X. Тя има размер 5000 x 400 и всеки ред в нея и обучителен пример с изображение на ръкописна цифра. Обучителните примери съдържат също вектор y (5000x1) с етикети labels) за всяка цифра. 1.2. Визуализиране на обучителните данни Избират се 20 реда от матрицата с обучителните примери X. Скриптът изобразява цифрите (фиг. 1). Фиг. 1. Обучителни примери 1.3. Логаритмична регресия за класификация с множество класове

Ще използваме логаритмична регресия, за да построим множествен класификатор. Тъй като в случая имаме 10 възможни класа, ще обучим 10 отделни логаритмични класификатори. 1.3.1. Регуляризирана функция на цената m J(θ) = 1 m [y(i) log (h θ (x (i) ) + (1 y (i) ) log (1 h θ (x (i) λ ))] + 2m θ j 2 i=1 За да изчислим функцията J(θ), трябва да изчислим стойността на хипотезата h θ (x (i) ) за всеки пример i, където: h θ (x (i) ) = g(θ T x (i) ) 1 g(θ T x (i) ) = - сигмоидна функция 1+e θt x (i) Регуляризация на параметър θ 0 не се прави. Задача 1. Довършете функцията sigmoid(z), която връща стойността на сигмоидната функция. Задача 2. Довършете функцията lrcostfunctionreg(theta, reg, X, y), която изчислява регуляризираната цена. Реализирайте векторна форма на цената (т.е. без да използвате никакъв цикъл за всички обучителни примери). 1.3.2. Регуляризиран градиент Регуляризираният градиент се изчислява по следния начин: δj(θ) δθ j m = 1 m (h θ(x (i) ) y (i) (i) λ )x j + m θ j i=1 Векторна форма на регуляризирания градиент: δj(θ) δθ j = 1 m XT (g(xθ) y) + λ m θ j Регуляризация на параметър θ 0 не се прави. Задача 3. Довършете функцията lrgradientreg(theta, reg, X,y), която изчислява регуляризирания градиент. Реализирайте векторна форма на градиента (т.е. без да използвате никакъв цикъл за всички обучителни примери). 1.4. Класификация с множество класове 1.4. 1. Построяване на класификатори за всички класове За всеки клас обучаваме отделен класификатор чрез логаритмична регресия. Функцията onevsall връща матрица θ с размерност Kx(N + 1), където K - брой класове, N - брой променливи (features). Матрицата θ съдържа намерените стойности на параметрите за всеки класификатор. Всеки ред от матрицата θ съдържа намерените стойности на параметрите за класификатора на съответния клас. Задача 4. Попълнете параметрите при извикване на функцията onevsall за построяване на класификатори за всеки клас чрез логаритмична регресия. Използвайте стойност 0.1 за параметър на регуляризацията. n j=1

1.4.2. Предсказване чрез построените класификатори След като сме обучили класификаторите за отделните класове, ще ги използваме за предсказване (т.е. за разпознаване) на цифрата в дадено изображение. За всеки обучителен пример изчисляваме каква е вероятността изображението да принадлежи на даден клас, като използваме обучения класификатор за съответния клас. Функцията predictonevsall връща номера на класа, към който цифрата принадлежи с най-голяма вероятност. Задача 5. Довършете функцията predictonevsall, като изчислите вероятностите за принадлежност на всеки обучителен пример към всеки клас. За целта използвайте реализираната по-горе сигмоидна функция. Задача 6. Попълнете параметрите при извикване на функцията predictonevsall. Би трябвало да получите резултат за точност на обучението с логаритмична регресия 93.24 %. 2. Невронни мрежи Логаритмичната регресия не е ефективен метод за построяване на по-сложни нелинейни класификатори. В такива случаи приложение имат невронните мрежи. 2.1. Модел на невронната мрежа Моделът на невронната мрежа за разпознаване на ръкописни цифри е представен на фиг. 2. С лучая мрежата се състои от 3 слоя - входен слой (input layer), скрит слой (hidden layer) и изходен слой (output layer). Входните данни са стойностите на интензитетите на пикселите от изображението на цифра. Тъй като изображенията са с размерност 20x20, входният слой има 400 върха (+1 за допълнителен връх за т.нар. отклонение (bias unit)). Фиг. 2. Модел на невронна мрежа за разпознаване на ръкописни цифри θ (1) - матрица със стойности на параметри в първия слой (input layer) θ (2) - матрица със стойности на параметри в скрития слой (hidden layer) θ (1) се зарежда в Theta1 с размерност 25x401, а θ (2) се зарежда в Theta2 с размерност 10x26. Тези размерност са определени от това, че във втория (скрития слой) слой има 25 върха, а в изходния слой има 10 върха (по един за всеки възможен клас).

Файлът weights.mat съдържа стойности на предварително обучени параметри. 2.2. Feedforward Propagation Feedforward propagation е алгоритъм за изчисляване на стойностите във върховете от всеки слой на невронната мрежа. В дадената невронна мрежа стойностите във върховете се изчисляват по следния начин: За първи слой (input layer): (1) Добавяме връх a 0 = 1. a (1) = X, където a (1) - стойности на върховете на мрежата в първия слой X - матрица със стойности на входните променливи За втори слой (hidden layer) (2) Добавяме връх a 0 = 1. z (2) = θ (1) a (1) a (2) = g(z (2) ) θ (1) - стойности на параметрите в първи слой на мрежата a (1) - стойности на върховете в първи слой на мрежата g(z (2) ) - сигмоидна функция с параметър z (2) За трети слой (output layer) z (3) = θ (2) a (2) a (3) = g(z (3) ) = h θ (x) θ (2) - стойности на параметрите във втори слой на мрежата a (2) - стойности на върховете във втори слой на мрежата g(z (3) ) - сигмоидна функция с параметър z (3) Стойността на хипотезата h θ (x) се получава в изходния слой на мрежата като стойност в интервала 0-1 за всеки възможен клас. Тази стойност определя вероятността за принадлежност на входните данни към дадения клас. Крайният резултат от невронната мрежа е класът с найголяма стойност на хипотезата, т.е. класът с най-голяма вероятност.

Задача 7. Довършете функцията predict, която изчислява стойностите на върховете в невронната мрежа и връща най-високата вероятност за принадлежност на входен пример към даден клас. Задача 8. Попълнете параметрите при извикване на функцията predict. Би трябвало да получите, че точността на обучението с невронната мрежа 97.52 %.