Пошаговое руководство по теории красоты решений замкнутой формы

Если вы хотите заняться машинным обучением, линейная регрессия — отличная отправная точка для понимания основ машинного обучения. Линейная регрессия — очень простой, но универсальный инструмент для машинного обучения. Он широко используется как в промышленности, так и в исследованиях, поэтому, если вы хотите применить свои знания и навыки в области машинного обучения в профессиональной или академической среде, очень важно хорошо с ним справиться.

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

Решения в закрытой форме всегда следует использовать вместо итерационных алгоритмов, если они доступны, поскольку это самый прямой способ найти оптимальное решение.

Что такое закрытое решение?

Решение в закрытой форме — это уравнение, которое можно решить с помощью функций и математических операций. В Wolfram MathWorld есть очень обширное и теоретическое определение, но оно запутанное.

Простой способ подумать об этом — можно ли решить проблему оптимизации с помощью какого-нибудь исчисления старой школы вместо полного алгоритма машинного обучения. Вместо того, чтобы позволять вашему алгоритму итеративно улучшать функцию оптимизации, например, когда вы используете градиентный спуск, генетические алгоритмы и т. д., вы берете производную своей функции минимизации потерь, устанавливаете ее равной нулю и находите оптимальное значение. для весов и смещения (также известных как m и b вашего уравнения y = mx + b).

Это невозможно сделать во всех сценариях, но я расскажу, когда это можно использовать позже. Если это возможно, простое математическое решение приведет вас прямо к оптимальному решению. Давайте еще немного углубимся в то, как работают решения в закрытой форме.

Объяснение в закрытой форме

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

Чтобы выяснить, так ли это, вы берете уравнение оптимизации, выводите его относительно весов w, устанавливаете его равным нулю и решаете для w .

Вывод решения в закрытой форме для линейной регрессии

В машинном обучении мы часто используем 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, добавив в конец столбец с единицами, создав:

и матрицу 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]. Я занимаюсь наукой о данных и интерфейсным программированием.