
Целта на статията е да предостави подкрепа на начинаещите датасайнтисти. В обяснихме по достъпен начин три метода за решаване на уравнението на линейната регресия: аналитично решение, градиентен спуск и стохастичен градиентен спуск. За аналитичното решение приложихме формулата
. В тази статия, както подсказва заглавието, ще обосновем приложението на тази формула или с други думи, сами ще я извлечем.
Защо е важно да обърнем внимание на формулата
?
Обикновено именно с матричното уравнение започва запознаването с линейната регресия. В същото време, подробни разяснения за това как е изведена формулата се срещат рядко.
Например, в курсовете по машинно обучение на Яндекс, когато слушателите се запознават с регуляризацията, им се предлага да използват функции от библиотеката sklearn, при което не се споменава за матричното представяне на алгоритъма. Точно в този момент някои слушатели може да проявят желание да се задълбочат в този въпрос - да напишат код без използване на готови функции. А за това, първо трябва да представим уравнението с регуляризатора в матричен вид. Тази статия е точно за тези, които искат да овладеят такива умения. Нека да започнем.
Начални условия
Целеви показатели
Имаме редица стойности на целевия показател. Например, целевият показател може да е цената на някакъв актив: нефт, злато, пшеница, долар и т.н. При това, под редица стойности на целевия показател разбираме броя на наблюденията. Такива наблюдения могат да бъдат, например, месечни цени на нефта за една година, т.е. ще имаме 12 стойности на целевия показател. Нека да въведем обозначения. Нека обозначим всяка стойност на целевия показател като
. Общо имаме
наблюдения, което означава, че можем да представим наблюденията си като
.
Регресори
Ще считаме, че съществуват фактори, които в определена степен обясняват стойностите на целевия показател. Например, на курса на двойката долар/рубла силно влияние оказват цената на нефта, ставките на ФРС и други. Такива фактори се наричат регресори. При това, на всяка стойност на целевия показател трябва да отговаря стойност на регресора, тоест, ако имаме 12 целеви показателя за всеки месец през 2018 г., то ще имаме и 12 стойности на регресорите за същия период. Нека обозначим стойностите на всеки регресор чрез
. Нека в нашия случай има
регресори (т.е.
фактори, които оказват влияние на стойностите на целевия показател). Значи нашите регресори могат да се представят по следния начин: за 1-ви регресор (например, цената на нефта):
, за 2-ри регресор (например, ставката на ФРС):
, за „
-ти“ регресор: 
Зависимостта на целевите показатели от регресорите
Предположим, че зависимостта на целевия показател
от регресорите „
-ти“ наблюдение може да бъде изразена чрез уравнение на линейната регресия от вида:

, където
— «
-то“ значение на регресора от 1 до
,
— броя на регресорите от 1 до 
— ъгловите коефициенти, които представляват величината, с която средно ще се промени изчисленият целеви показател при промяна на регресора.
С други думи, за всеки (с изключение на
) регресор определяме „свой“ коефициент
, след това умножаваме коефициентите по стойностите на регресорите „
-то“ наблюдение, в резултат получаваме някакво приближение на „
-ти“ целеви показател.
Следователно, трябва да подберем такива коефициенти
, при които стойностите на нашата апроксимираща функция
ще бъдат разположени максимално близо до стойностите на целевите показатели.
Оценка на качеството на апроксимиращата функция
Ще определим оценката на качеството на апроксимиращата функция с метода на най-малките квадрати. Функцията за оценка на качеството в такъв случай ще приеме следния вид:

Необходимо е да подберем такива стойности на коефициентите $w$, при които стойността
ще бъде най-малката.
Превеждаме уравнението в матричен вид
Векторно представяне
Първо, за да си улесним живота, следва да обърнем внимание на уравнението на линейната регресия и да забележим, че първият коефициент
не се умножава с нито един регресор. В същото време, когато преобразуваме данните в матричен вид, горепосоченото обстоятелство ще усложни сериозно изчисленията. В тази връзка се предлага да въведем още един регресор за първия коефициент
и да го приравним на единица. По-скоро, всяко "
-то" значение на този регресор да се приравни на единица — нали при умножение с единица от гледна точка на резултата от изчисленията нищо няма да се промени, а от гледна точка на правилата за произведение на матрици, значително ще се намалят нашите страдания.
Сега, за кратко време, с цел опростяване на материала, нека предположим, че имаме само едно "
-то" наблюдение. Тогава, нека си представим стойностите на регресорите на "
-то" наблюдение като вектор
. Векторът
има размерност
, тоест
редове и 1 колона:

Търсените коефициенти да представим във вид на вектор
, който има размерност
:

Уравнението на линейната регресия за "
-то" наблюдение ще има вида:

Функцията за оценка на качеството на линейния модел ще придобие вида:

Обърнете внимание, че в съответствие с правилата за умножение на матрици, ни беше необходимо да транспонираме вектора
.
Матичен представяне
В резултат на умножение на вектори, ще получим число:
, което и заслужаваше да се очаква. Това число е приближаването на "
-ия" целеви показател. Но ние трябва да получим приближение не на едно значение на целевия показател, а на всички. За това ще запишем всички "
-и" регресори в формат на матрица
. Получената матрица има размерност
:

Сега уравнението на линейната регресия ще бъде:

Да обозначим стойностите на целевите показатели (всички
) за вектор
с размерност
:

Сега можем да запишем уравнението за оценка на качеството на линейния модел в матричен формат:

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


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

Как стана това? За да отговорим на този въпрос, е достатъчно да погледнем размерите на матриците, които множим, и да видим, че на изхода получаваме число или иначе
.
Да запишем размерите на матричните изрази.



Преобразуване 2

Нека запишем аналогично преобразуване 1


На изхода получаваме уравнение, което трябва да диференцираме:

Диференцираме функцията на оценка на качеството на модела
Диференцираме по вектора
:




Въпросите защо
няма да има, а операциите по определяне на производните в два други израза ще разгледаме по-подробно.
Диференциране 1
Нека разгърнем диференцирането: 
За да определим производната на матрица или вектор, е необходимо да погледнем какво има вътре. Погледнете:



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

Сега задачата ни е да умножим правилно векторите с матрицата и да не получим "два пъти по две е пет", затова нека се съсредоточим и да бъдем изключително внимателни.




Обаче, получихме сложно изражение! Всъщност получихме число - скаляр. И сега, наистина, преминаваме към диференцирането. Необходимо е да намерим производната на полученото изражение по всеки коефициент
и на изхода да получим вектор с размерност
. За всеки случай ще опиша процедурите стъпка по стъпка:
1) диференцираме по
, получаваме: 
2) диференцираме по
, получаваме: 
3) диференцираме по
, получаваме: 
На изхода - обещания вектор с размер
:

Ако се вгледате в вектора внимателно, можете да забележите, че левите и съответстващите десни елементи на вектора могат да се групират по такъв начин, че в крайна сметка от представения вектор може да бъде отделен вектор
с размер
. Например,
(левият елемент на горния ред на вектора)
(десният елемент на горния ред на вектора) може да се представи като
, а
- като
и т.н. по всеки ред. Нека групираме:

Извесем вектора
и на изхода ще получим:

Сега, да се вгледаме в получената матрица. Матрицата представлява сумата на две матрици
:

Нека си припомним, че преди малко отбелязахме едно важно свойство на матрицата
- тя е симетрична. Въз основа на това свойство, можем с увереност да заявим, че изразът
равен на
. Това е лесно да се провери, разкривайки поелементно произведението на матриците
. Ние няма да го правим тук, който желае, може да направи проверката самостоятелно.
Нека се върнем към нашето изразяване. След преобразуванията, които направихме, то изглежда така, както искахме да го видим:

И така, справихме се с първото диференциране. Преминаваме към второто изразяване.
Диференциране 2

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



За момента ще премахнем двойката от изчисленията — тя не играе голяма роля, после ще я върнем на място. Умножаваме векторите с матрицата. Първо умножаваме матрицата
с вектора
, тук нямаме никакви ограничения. Ще получим вектор с размер
:

Нека направим следното действие — да умножим вектора
с получения вектор. На изхода ни чака число:

Това е, което ще диференцираме. На изхода ще получим вектор с размерност
:

Нещо ви напомня ли? Правилно! Това е произведението на матрицата
с вектора
.
По този начин второто диференциране е успешно завършено.
Вместо заключение
Сега знаем как е получено равенството
.
Накрая ще опишем бързия начин за преобразуване на основните формули.
Оценяваме качеството на модела съгласно метода на най-малките квадрати:


Диференцираме полученото изразяване:


Литература
Интернет източници:
1)
2)
3)
4)
Учебници, сборници с задачи:
1) Конспект на лекции по висша математика: пълен курс / Д.Т. Писмен – 4-то издание – М.: Айрис-прес, 2006
2) Приложен регресионен анализ / Н. Дрейпер, Г. Смит – 2-ро издание – М.: Финанси и статистика, 1986 (превод от английски)
3) Задачи за решаване на матрични уравнения:
Източник: habr.com
