ТЕОРИЯ ЗА МАШИННОТО ОБУЧЕНИЕ

Разделяне на хиперравнини за класификация

Произходът на 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).

https://twitter.com/CrunchyML