Regresioni linear dhe metodat e tij të rikthimit

Regresioni linear dhe metodat e tij të rikthimit
Burimi: xkcd

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

Но в этой статье речь пойдет не про применение линейной регрессии для решения практических задач. Здесь будут рассмотрены интересные особенности реализации распределенных алгоритмов её восстановления, с которыми мы столкнулись при написании модуля машинного обучения в Apache Ignite. Немного базовой математики, основ машинного обучения и распределенных вычислений помогут разобраться, как восстанавливать линейную регрессию, даже если данные распределены между тысячами узлов.

Për çfarë bëhet fjalë?

Перед нами стоит задача восстановления линейной зависимости. В качестве входных данных дается множество векторов предположительно независимых переменных, каждому из которых ставится в соответствие некоторое значение зависимой переменной. Эти данные можно представить в виде двух матриц:

Regresioni linear dhe metodat e tij të rikthimit

Теперь, раз уж предполагается зависимость, да к тому же еще и линейная, запишем наше предположение в виде произведения матриц (для упрощения записи здесь и далее предполагается, что свободный член уравнения скрывается за Regresioni linear dhe metodat e tij të rikthimit, а последний столбец матрицы Regresioni linear dhe metodat e tij të rikthimit содержит единицы):

Regresioni linear dhe metodat e tij të rikthimit

Очень похоже на систему линейных уравнений, не так ли? Похоже, но решений у такой системы уравнений скорее всего не будет. Причиной тому является шум, который присутствует практически в любых реальных данных. Так же причиной может быть отсутствие линейной зависимости как таковой, с которой можно пытаться бороться введением дополнительных переменных, нелинейно зависящих от исходных. Рассмотрим следующий пример:
Regresioni linear dhe metodat e tij të rikthimit
Burimi: Wikipedia

Это простой пример линейной регрессии, который демонстрирует зависимость одной переменной (по оси Regresioni linear dhe metodat e tij të rikthimit) от другой переменной (по оси Regresioni linear dhe metodat e tij të rikthimit). Чтобы соответствующая данному примеру система линейных уравнений имела решение, все точки должны лежать точно на одной прямой. Но это не так. А не лежат они на одной прямой именно из-за шума (или из-за того что предположение о наличии линейной зависимости было ошибочным). Таким образом, чтобы восстановить линейную зависимость по реальным данным обычно требуется ввести еще одно предположение: входные данные содержат шум и этот шум имеет нормальное распределение. Можно делать предположения и о других типах распределения шума, но в подавляющем большинстве случаев рассматривают именно нормальное распределение, о котором далее и пойдет речь.

Metoda e maksimalit të mundësisë

Итак, мы предположили наличие случайного нормально распределенного шума. Как же быть в такой ситуации? На этот случай в математике существует и широко используется metoda e maksimumit të mundësisë. Если кратко, его суть заключается в выборе funksionin e mundësisë и последующей её максимизации.

Возвращаемся к восстановлению линейной зависимости по данным с нормальным шумом. Заметим, что предполагаемая линейная зависимость является математическим ожиданием Regresioni linear dhe metodat e tij të rikthimit имеющегося нормального распределения. В то же время, вероятность того, что Regresioni linear dhe metodat e tij të rikthimit принимает то или иное значение, при условии наличия наблюдаемых Regresioni linear dhe metodat e tij të rikthimit, выглядит следующим образом:

Regresioni linear dhe metodat e tij të rikthimit

Подставим теперь вместо Regresioni linear dhe metodat e tij të rikthimit dhe Regresioni linear dhe metodat e tij të rikthimit нужные нам переменные:

Regresioni linear dhe metodat e tij të rikthimit

Осталось только найти вектор Regresioni linear dhe metodat e tij të rikthimit, при котором эта вероятность максимальна. Чтобы максимизировать такую функцию удобно сначала её прологарифмировать (логарифм функции будет достигать максимума в той же точке, что и сама функция):

Regresioni linear dhe metodat e tij të rikthimit

Что, в свою очередь, сводится к минимизации следующей функции:

Regresioni linear dhe metodat e tij të rikthimit

Кстати, это называется методом наименьших квадратов. Зачастую все приведенные выше рассуждения опускаются и просто используется этот метод.

QR разложение

Минимум приведенной выше функции можно найти, если найти точку в которой градиент этой функции равен нулю. А градиент будет записан следующим образом:

Regresioni linear dhe metodat e tij të rikthimit

QR разложение является матричным методом решения задачи минимизации используемом в методе наименьших квадратов. В связи с этим перепишем уравнение в матричной форме:

Regresioni linear dhe metodat e tij të rikthimit

Итак, мы раскладываем матрицу Regresioni linear dhe metodat e tij të rikthimit на матрицы Regresioni linear dhe metodat e tij të rikthimit dhe Regresioni linear dhe metodat e tij të rikthimit и выполняем ряд преобразований (сам алгоритм QR разложения здесь рассматриваться не будет, только его использование применительно к поставленной задаче):

Regresioni linear dhe metodat e tij të rikthimit

Матрица Regresioni linear dhe metodat e tij të rikthimit është ortogonale. Kjo na lejon të heqim dorë nga produkti Regresioni linear dhe metodat e tij të rikthimit:

Regresioni linear dhe metodat e tij të rikthimit

Dhe nëse zëvendësojmë Regresioni linear dhe metodat e tij të rikthimitRegresioni linear dhe metodat e tij të rikthimit, atëherë do të dalë Regresioni linear dhe metodat e tij të rikthimit. Duke marrë parasysh se Regresioni linear dhe metodat e tij të rikthimit është një matricë e sipërme trekëndore, duket kështu:

Regresioni linear dhe metodat e tij të rikthimit

Kjo mund të zgjidhet me metodën e zëvendësimit. Elementi Regresioni linear dhe metodat e tij të rikthimit gjehet si Regresioni linear dhe metodat e tij të rikthimit, elementi paraprak Regresioni linear dhe metodat e tij të rikthimit gjehet si Regresioni linear dhe metodat e tij të rikthimit etj.

Këtu duhet të theksohet se kompleksiteti i algoritmit të rezultuar për shkak të përdorimit të ndarjes QR është i barabartë me Regresioni linear dhe metodat e tij të rikthimit. Megjithatë, pavarësisht se operacioni i shumzimit të matricave është mirë i ndarë në mënyrë paralele, të shkruash një version efektiv të shpërndarë të këtij algoritmi nuk duket se është e mundur.

Rënia gradiente

Duke folur për minimizimin e një funksioni të caktuar, gjithmonë duhet të kujtojmë metodën e (stohastik) shpimit të gradienteve. Kjo është një metodë e thjeshtë dhe efektive për minimizimin, e cila bazohet në llogaritjen iteruese të gradienteve të funksionit në një pikë dhe më pas zhvendosjen e saj në drejtim të kundërt me gradientin. Çdo hap i tillë afron zgjidhjen me minimumin. Gradienti këtu duket gjithashtu kështu:

Regresioni linear dhe metodat e tij të rikthimit

Gjithashtu, kjo metodë është mirë e ndarë dhe shpërndarë për shkak të pronarive lineare të operatorit të gradienteve. Vërejmë se në formulën e mësipërme nën shenjën e shumës janë terma të pavarur. Në fjalë të tjera, ne mund të llogaritim gradientin pavarësisht për të gjitha indekset Regresioni linear dhe metodat e tij të rikthimit nga i pari deri në Regresioni linear dhe metodat e tij të rikthimit, paralelisht me këtë llogaritim gradientin për indekset nga Regresioni linear dhe metodat e tij të rikthimit deri te Regresioni linear dhe metodat e tij të rikthimit. Pastaj do të mbledhim gradientet e marra. Rezultati i mbledhjes do të jetë i njëjtë si nëse do të llogaritnim menjëherë gradientin për indekset nga i pari deri në Regresioni linear dhe metodat e tij të rikthimit. Pra, nëse të dhënat janë të shpërndara midis disa pjesëve të të dhënave, gradienti mund të llogaritet pavarësisht në secilën pjesë, dhe më pas rezultatet e këtyre llogaritjeve mund të mblidhen për të marrë rezultatin përfundimtar:

Regresioni linear dhe metodat e tij të rikthimit

Nga pikëpamja e realizimit, kjo përputhet me paradigmat MapReduce. Në çdo hap të shpimit të gradienteve, në çdo nyje të dhënave dërgohet një detyrë për llogaritjen e gradienteve, pastaj gradientet e llogaritura mblidhen bashkë dhe rezultati i shumimit të tyre përdoret për të përmirësuar rezultatin.

Megjithëse është e thjeshtë për t'u realizuar dhe mund të ekzekutohet në paradigmën MapReduce, shpimi i gradienteve ka gjithashtu disavantazhet e tij. Në veçanti, numri i hapave të nevojshëm për të arritur konvergjencën është dukshëm më i lartë në krahasim me metoda të tjera më të specializuara.

LSQR

LSQR — është një metodë tjetër për zgjidhjen e problemit të caktuar, e cila është e përshtatshme si për rikthimin e regresionit linear, ashtu edhe për zgjidhjen e sistemeve të ekuacioneve lineare. Karakteristika e saj kryesore është se ajo kombinon avantazhet e metodave matriciale dhe qasjes iteruese. Realizimet e kësaj metode mund të gjenden si në bibliotekat SciPy, si dhe në MATLAB. Përshkrimi i kësaj metode nuk do të paraqitet këtu (mund të gjendet në artikullin LSQR: An algorithm for sparse linear equations and sparse least squares). Në vend të kësaj, do të demonstrohet një qasje që lejon adaptimin e LSQR për ekzekutim në një mjedis të shpërndarë.

Në thelb të metodës LSQR qëndron procedura e bidiagonalizimit. Kjo është një procedurë iteruese, e cila përbëhet nga hapat e mëposhtëm:
Regresioni linear dhe metodat e tij të rikthimit

Por nëse e marrim parasysh se matrica Regresioni linear dhe metodat e tij të rikthimit është e ndarë horizontalisht, atëherë çdo iteracion mund të paraqitet në formën e dy hapave MapReduce. Kështu arrijmë të minimizojmë dërgimin e të dhënave gjatë çdo iteracioni (vetëm vektorë me një gjatësi të barabartë me numrin e të panjohurave):

Regresioni linear dhe metodat e tij të rikthimit

Ky është pikërisht qasja që përdoret në realizimin e regresionit linear në Apache Ignite ML.

Përfundimi

Ekzistojnë shumë algoritmo për rikthimin e regresionit linear, por jo të gjitha prej tyre mund të aplikohen në çdo kushte. Kështu, ndarja QR është e përshtatshme për zgjidhje të saktë në grupe të vogla të të dhënave. Spimi i gradienteve është lehtësisht i realizueshëm dhe lejon gjetjen e një zgjidhjeje të përafërt me shpejtësi. Ndërsa LSQR kombinon karakteristikat më të mira të dy algoritmave të mëparshëm, pasi ai mund të shpërndahet, konvergon më shpejt krahasuar me shpimin e gradienteve dhe gjithashtu lejon ndaljen e hershme të algoritmit në kundërshtim me ndarjen QR për gjetjen e një zgjidhjeje të përafërt.

Burimi: habr.com

Bleni hostim të besueshëm për faqe me mbrojtje nga DDoS, serverë VPS VDS 🔥 Bleni hostim të besueshëm për faqe me mbrojtje nga DDoS, serverë VPS VDS | ProHoster