
Цель статьи — оказание поддержки начинающим датасайнтистам. В предыдущей статье мы на пальцах разобрали три способа решения уравнения линейной регрессии: аналитическое решение, градиентный спуск, стохастический градиентный спуск. Тогда для аналитического решения мы применили формулу
Почему имеет смысл уделить повышенное внимание к формуле
Именно с матричного уравнения в большинстве случаев начинается знакомство с линейной регрессией. При этом, подробные выкладки того, как формула была выведена, встречаются редко.
Например, на курсах по машинному обучению от Яндекса, когда слушателей знакомят с регуляризацией, то предлагают воспользоваться функциями из библиотеки sklearn, при этом ни слова не упоминается о матричном представлении алгоритма. Именно в этот момент у некоторых слушателей может появится желание разобраться в этом вопросе подробнее — написать код без использования готовых функций. А для этого, надо сначала представить уравнение с регуляризатором в матричном виде. Данная статья, как раз, позволит желающим овладеть такими умениями. Приступим.
Исходные условия
Целевые показатели
У нас имеется ряд значений целевого показателя. Например, целевым показателем может быть цена на какой-либо актив: нефть, золото, пшеница, доллар и т.д. При этом, под рядом значений целевого показателя мы понимаем количество наблюдений. Такими наблюдениями могут быть, например, ежемесячные цены на нефть за год, то есть у нас будет 12 значений целевого показателя. Начнем вводить обозначения. Обозначим каждое значение целевого показателя как
Регрессоры
Будем считать, что существуют факторы, которые в определенной степени объясняют значения целевого показателя. Например, на курс пары доллар/рубль сильное влияние оказывает цена на нефть, ставка ФРС и др. Такие факторы называются регрессорами. При этом, каждому значению целевого показателя должно соответствовать значение регрессора, то есть, если у нас имеется 12 целевых показателей за каждый месяц в 2018 году, то и значений регрессоров у нас тоже должно быть 12 за тот же период. Обозначим значения каждого регрессора через
Зависимость целевых показателей от регрессоров
Предположим, что зависимость целевого показателя
, где
Другими словами, мы для каждого (за исключением
Следовательно, нам нужно подобрать такие коэффициенты
Оценка качества апроксиммирующей функции
Будем определять оценку качества апроксимирующей функции методом наименьших квадратов. Функция оценки качества в таком случае примет следующий вид:
Нам требуется подобрать такие значения коэффициентов $w$, при которых значение
Переводим уравнение в матричный вид
Векторное представление
Для начала, чтобы облегчить себе жизнь, следует обратить внимание на уравнение линейной регрессии и заметить, что первый коэффициент
Теперь, на некоторое время, с целью упрощения материала, предположим, что у нас только одно "
Искомые коэффициенты представим в виде вектора
Уравнение линейной регрессии для "
Функция оценки качества линейной модели примет вид:
Обратим внимание, что в соответствии с правилами умножения матриц, нам потребовалось транспонировать вектор
Матричное представление
В результате умножения векторов, мы получим число:
Теперь уравнение линейной регрессии примет вид:
Обозначим значения целевых показателей (все
Теперь мы можем записать в матричном формате уравнение оценки качества линейной модели:
Собственно, из этой формулы далее получают известную нам формулу
Как это делается? Раскрываются скобки, проводится дифференцирование, преобразуются полученные выражения и т.д., и именно этим мы сейчас и займемся.
Матричные преобразования
Раскроем скобки
Подготовим уравнение для дифференцирования
Для этого проведем некоторые преобразования. В последующих расчетах нам будет удобнее, если вектор
Преобразование 1
Как это получилось? Для ответа на этот вопрос достаточно посмотреть на размеры умножаемых матриц и увидеть, что на выходе мы получаем число или иначе
Запишем размеры матричных выражений.
Преобразование 2
Распишем аналогично преобразованию 1
На выходе получаем уравнение, которое нам предстоит продифференцировать:
Дифференцируем функцию оценки качества модели
Продифференцируем по вектору
Вопросов почему
Дифференцирование 1
Раскроем дифференцирование:
Для того, чтобы определить производную от матрицы или вектора требуется посмотреть, что у них там внутри. Смотрим:
Обозначим произведение матриц
Теперь наша задача правильно перемножить вектора на матрицу и не получить «дважды два пять», поэтому сосредоточимся и будем предельно внимательны.
Однако, замысловатое выражение у нас получилось! На самом деле мы получили число — скаляр. И теперь, уже по-настоящему, переходим к дифференцированию. Необходимо найти производную полученного выражения по каждому коэффициенту
1) продифференцируем по
2) продифференцируем по
3) продифференцируем по
На выходе — обещанный вектор размером
Если присмотреться к вектору повнимательнее, то можно заметить, что левые и соответствующие правые элементы вектора можно сгруппировать таким образом, что в итоге из представленного вектора можно выделить вектор
Вынесем вектор
Теперь, присмотримся к получившейся матрице. Матрица представляет собой сумму двух матриц
Вспомним, что несколько ранее, мы отметили одно важное свойство матрицы
Вернемся к нашему выражению. После наших преобразований оно получилось таким, каким мы и хотели его увидеть:
Итак, с первым дифференцированием мы справились. Переходим ко второму выражению.
Дифференцирование 2
Пойдем по протоптанной дорожке. Она будет намного короче предыдущей, так что не уходите далеко от экрана.
Раскроем поэлементно вектора и матрицу:
На время уберем из расчетов двойку — она большой роли не играет, потом вернем ее на место. Перемножим вектора на матрицу. В первую очередь умножим матрицу
Выполним следующее действие — умножим вектор
Его то мы и продифференцируем. На выходе получим вектор размерности
Что-то напоминает? Все верно! Это произведение матрицы
Таким образом, второе дифференцирование успешно завершено.
Вместо заключения
Теперь мы знаем, как получилось равенство
Напоследок опишем быстрый путь преобразований основных формул.
Оценим качество модели в соответствии с методом наименьших квадратов:
Дифференцируем полученное выражение:
Литература
Интернет источники:
1) habr.com/ru/post/278513
2) habr.com/ru/company/ods/blog/322076
3) habr.com/ru/post/307004
4) nabatchikov.com/blog/view/matrix_der
Учебники, сборники задач:
1) Конспект лекций по высшей математике: полный курс / Д.Т. Письменный – 4-е изд. – М.: Айрис-пресс, 2006
2) Прикладной регрессионный анализ / Н. Дрейпер, Г. Смит – 2-е изд. – М.: Финансы и статистика, 1986 (перевод с английского)
3) Задачи на решение матричных уравнений:
function-x.ru/matrix_equations.html
mathprofi.ru/deistviya_s_matricami.html