Ръководство стъпка по стъпка към теорията зад красотата на затворените решения

Ако искате да навлезете в машинното обучение, „линейната регресия“ е чудесна отправна точка за разбиране на основите на машинното обучение. Линейната регресия е много прост, но многофункционален инструмент за машинно обучение. Използва се широко както в промишлеността, така и в научните изследвания, така че ако искате да приложите знанията и уменията си за машинно обучение в професионална или академична среда, от ключово значение е да се справите добре с него.

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

Винаги трябва да се използват решения в затворена форма вместо итеративни алгоритми, ако са налични, тъй като това е най-прекият начин за намиране на оптималното решение.

Какво е решение със затворена форма?

Решението в затворена форма е уравнение, което може да бъде решено по отношение на функции и математически операции. Wolfram MathWorld има много „обширна и теоретична дефиниция“ за него, но тя е заплетена.

Един прост начин да помислите за това е дали е възможно да решите вашия проблем с оптимизацията с някакво смятане от старата школа вместо пълен алгоритъм за машинно обучение. Вместо да позволите на вашия алгоритъм да подобрява итеративно функцията за оптимизация, като когато използвате „градиентно спускане“, „генетични алгоритми“ и т.н., вие вземате производната на вашата функция за минимизиране на загубите, задавате я равна на нула и намирате оптималната стойност за теглата и отклонението (известно още като m и b на вашето уравнение y = mx + b).

Това не е възможно да се направи във всички сценарии, но ще очертая кога може да се използва по-късно. Ако е възможно, обикновеното математическо решение всъщност ще ви отведе направо до оптималното решение. Нека да разгледаме малко повече как работят решенията със затворена форма.

Обяснение в затворен формат

Оптимизационен проблем е разрешим в затворена форма, ако е диференцируем по отношение на теглата w и производната може да бъде решена, но това е вярно само в случай на минимален/максимален оптимизационен проблем.

За да разберете дали това е така, взимате оптимизационното уравнение, извеждате го по отношение на теглата w, задавате го равно на нула и решавате за w .

Извеждането на решението в затворена форма за линейна регресия

В машинното обучение често използваме 2D визуализации за нашите бедни, малки човешки очи и мозъци, за да разберат по-добре. Почти никога обаче нямаме 2D данни. Въпреки че графиките, използвани в цялата статия, са 2D, това решение се прилага за проблеми с многоизмерни входове и изходи.

Даден е набор от N входни вектори с D измерение (във визуализацията D=1, така че имаме едномерни входни данни) и набор от изходни вектори с S измерение (във визуализацията, S=1), търсим да намерим функция за картографиране от входове към цели.

Наблюдения:

Цели:

Функция за картографиране:

Тъй като използваме линейна регресия, функцията fе линейна. Всяка линейна функция е във формата y = mx + b. Едномерно картографиране като y = mx + b означава, че една стойност x извежда една стойност y, например ако y = 2x+ 3, когато x = 2, y = 7. В този случай нашата функция изглежда като f: 1 - ›1. В сценарий от реалния свят обаче имаме многоизмерни данни, така че формулировката е малко по-различна. Търсим да съпоставим многоизмерни входове с многоизмерни изходи.

Нека да направим това стъпка по стъпка и първо да картографираме от многоизмерен вход към едноизмерен изход, така че f: D -›1. В този случай входът x става вектор и се нуждаем от тегловния фактор m да бъде вектор на теглата, а не скаларна стойност. Нашата функция за картографиране се развива до: f: D -›1:

Ако отидем още една крачка напред и направим скок към многомерно картографиране на входа към многомерен изход, трябва да намерим картографиране f: D -›S, където D е измерението на нашия вход и S този на изхода. Един от начините да мислите за това е да намерите вектора на теглото mи отклонението b за всяко измерение на изхода. Сякаш подреждаме куп от тези функции:

където i = 1, 2, …, S. Ако формално подредим тези съпоставяния заедно, отклонението b е просто подредените отклонения bi и матрицата на теглото Wможе да бъде формулирана чрез подреждане на всички mвектори така

Рядко имаме само една извадка в набор от данни. Обикновено, както бе споменато по-горе, имаме набор от N проби от данни. Можем да добавим всички тези проби от данни в две матрици, една за вход и изход.

Искаме да прекараме всичко това през функцията едновременно, което означава, че трябва да разширим функцията, за да имаме формата

Функцията на тази стъпка е:

Изненадващо е доста лесно да се стигне до тази формулировка. Просто трябва да абсорбираме пристрастията. Ще променим матрицата X, като добавим колона от 1s към края, създавайки:

и матрицата W чрез добавяне на вектора на отклонение като последен ред, така че W става

Нашите нови измерения са:

Ние успешно абсорбирахме отклонението и XW се доближава до Y.

Сега трябва да формулираме оптимизацията. Тъй като искаме да стигнем XW възможно най-близо до Y, оптимизацията е минимизиране на разстоянието между f(X) = XW и Y или:

Това по същество е функцията на загуба на най-малките квадрати, която класически изглежда така:

но ние го адаптирахме за работа с матрици. ½ е там само за да улесни живота ни, когато стигнем до производната. Ние използваме стратегията на най-малките квадрати, защото когато анализираме линейна регресия, ако y = 3, няма значение дали f(x) = 1 или f(x) = 5, тъй като и двете създават еднакво количество грешка.

Както споменах в началото, за да намерим решение в затворена форма, сега трябва да вземем картографирането и да го извлечем.

Ура! Успешно извлечехме нашата функция за картографиране по отношение на теглата W. Сега всичко, което трябва да направим, е да го занулим и да намерим W, за да намерим оптималното решение.

И това е! W* представлява оптималните тегла.

За тези, които наистина обичат тяхната теоретична линейна алгебра, не се колебайте да се разровите в озадачаващия свят на псевдообратните. Псевдообратното е:

Има и официално доказателство, което показва защо можем да обърнем първия член, тъй като това не може да се приеме. Първо, приемаме, че X е пълен ранг. X е матрица с размери N x D. Пълен ранг означава, че има D или N линейно независими колони и редове, което от двете е по-малко. N е размерът на нашата извадка, а D е броят характеристики на входните данни. За да работи, броят на образците N трябва да бъде по-голям от броя на характеристиките D. Трябва само да докажем, че колоните са линейно независими. Можем да предположим, че защото ако не бяха, имаме функции в набора от данни, които не добавят никаква информация, като например ако имахме температури по Целзий и Фаренхайт като характеристики на всяка точка от данни. Тези две стойности са линейно зависими, така че можем просто да изхвърлим една от тези колони. Ако X е пълен ранг, по дефиниция на ранг,

това също пълен ранг и квадрат. Следователно може да се обърне!

Кога да използвате разтвор със затворена форма

Когато е възможно, трябва да се използва решение със затворена форма, тъй като то осигурява най-доброто решение. При машинното обучение ние обикновено се стремим да минимизираме функция за грешка или еквивалентен проблем, а проблемът има решение в затворени форми, ако оптимизираната функция е диференцируема и диференциацията може да бъде решена за променливата, върху която оптимизираме. Въпреки че машинното обучение обръща много глави, понякога малко базова линейна алгебра е по-чисто решение.

Има няколко слабости по отношение на този подход, най-очевидната от които е, че можем да решаваме само линейни проблеми. Това силно ограничава набора от проблеми, които могат да бъдат разрешени с помощта на този метод.

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

Решенията в затворена форма са прост, но елегантен начин за намиране на оптимално решение на проблем с линейна регресия. В повечето случаи намирането на решение в затворена форма е значително по-бързо от оптимизирането с помощта на итеративен алгоритъм за оптимизация като градиентно спускане.

Отворено за техническо писане на свободна практика и писане на призраци:[email protected]. Фокусирам се върху науката за данните и програмирането на интерфейса.