ТЕОРИЯ ЗА МАШИННОТО ОБУЧЕНИЕ
Разделяне на хиперравнини за класификация
Произходът на Deep Learning и Support Vector Machines
Процедурата за разделяне на хиперравнини изгражда линейни граници на решения, които изрично се опитват да разделят данните в различни класове възможно най-добре. С тях ще дефинираме класификатора на опорния вектор.
Понякога LDA и логистичната регресия, обяснена в предишната публикация, правят грешки, които могат да бъдат избегнати, това може да бъде разрешено чрез следните методи.
Перцептронът на Розенблат
Този алгоритъм е предшественик на съвременния напредък в дълбокото обучение, той се опитва да намери разделяща хиперравнина чрез минимизиране на разстоянието на грешно класифицираните точки до границата на решението. Целта е да се сведе до минимум следната функция:
където Mиндексира набора от неправилно класифицирани точки. Количеството е неотрицателно и пропорционално на разстоянието между грешно класифицираните точки до границата на решение, дефинирана от β^T x + β0 = 0.Ако приемем, че M е фиксиран, градиентът се дава от:
Алгоритъмът използва стохастичен градиентен низход, за да минимизира частично линейния критерий. Това означава, че изчисляваме една стъпка в посоката на отрицателния градиент след всяка входна стойност, вместо да я изчисляваме след обработката на всички данни. Следователно стойностите на грешно класифицираните данни се посещават в определена последователност и βсе актуализират като:
където p е скоростта на обучение, която трябва да бъде избрана в зависимост от данните. Ако има отделимо решение за хиперравнина, този алгоритъм се сближава с него, но има някои проблеми:
- Когато данните са разделими, има много решения и това, което е намерено, зависи от началната стойност.
- Крайният брой стъпки за намиране на решението може да бъде огромен. Колкото по-малка е разликата между класовете, толкова по-дълго е времето за намирането му.
- Когато данните не могат да се разделят, алгоритъмът няма да се сближи и ще започне да преминава през възможни оптимуми.
Чрез създаване на базови функции и увеличаване на оригиналното пространство можем да решим втората точка и чрез добавяне на ограничения към данните можем да решим първата точка.
Оптимални разделящи хиперравнини, поддържащи векторни класификатори
Оптималната разделителна хиперравнина разделя двата класа и максимизира разстоянията до затварящата точка от всеки клас. С тях можем да постигнем уникално решение чрез максимизиране на разликата между двата класа.
Проблемът с оптимизацията е:
С условията гарантираме, че всички точки са поне на разстояние M от границата на решението. Можем да се отървем от ограничението ||β||=1използвайки като условие:
Тъй като за всяко βи β0задоволяване на тези неравенства, всяко положително мащабирано кратно също ги удовлетворява, така че можем задайте ||β||= 1/M.
След това използваме функцията LaGrange, за да решим проблема с минимизирането:
Задаване на производните на 0:
Като ги извадим от Lp, получаваме дуала на Улф:
Чрез максимизиране на L_D ние намираме решението и трябва да удовлетворим условията на Karush-Khun-Tucker.
Сега можем да кажем това
Векторът на решението се дефинира, като се използват само стойностите, които са в лабораторията за вземане на решения, които се дефинират като опорни точки.
Заключение
Използвайки само стойностите на лабораторията за вземане на решения, решението е по-стабилно за грешна спецификация на модела. Сравнете с предишните обяснени модели, по-добре е, когато данните не са гаусови. Ако е Гаус, LDA ще бъде по-бърз и ще работи по-добре.
Когато данните не могат да се разделят, няма осъществим модел, можете да опитате да увеличите пространството, като използвате базови трансформации, но това може да доведе до проблеми с пренастройването.
Това е тридесет и осмата публикация от моя конкретен #100daysofML, ще публикувам напредъка на това предизвикателство в GitHub, Twitter и Medium (Adrià Serra).