Lineaire regressie en methoden voor het herstel ervan

Lineaire regressie en methoden voor het herstel ervan
Bron: xkcd

Lineaire regressie is een van de basisalgoritmen voor veel gebieden die verband houden met data-analyse. De reden hiervoor is duidelijk. Het is een zeer eenvoudig en begrijpelijk algoritme, wat bijdraagt aan het brede gebruik ervan al tientallen, zo niet honderden jaren. Het idee is dat we een lineaire afhankelijkheid van één variabele veronderstellen van een set andere variabelen, en vervolgens proberen we deze afhankelijkheid te herstellen.

Maar dit artikel gaat niet over de toepassing van lineaire regressie voor het oplossen van praktische problemen. Hier worden interessante kenmerken van de implementatie van gedistribueerde algoritmen voor het herstel ervan besproken, waarmee we te maken kregen bij het schrijven van de machine learning-module in Apache Ignite. Een beetje basiswiskunde, fundamenten van machine learning en gedistribueerde computing zullen helpen begrijpen hoe we lineaire regressie kunnen herstellen, zelfs als de gegevens zijn verspreid over duizenden knooppunten.

Waar gaat het over?

We hebben de taak om een lineaire afhankelijkheid te herstellen. Als invoergegevens krijgen we een set vectoren van verondersteld onafhankelijke variabelen, elk gekoppeld aan een bepaalde waarde van de afhankelijke variabele. Deze gegevens kunnen worden weergegeven in de vorm van twee matrices:

Lineaire regressie en methoden voor het herstel ervan

Nu, aangezien we een afhankelijkheid veronderstellen, en bovendien ook nog lineair, laten we onze hypothese opschrijven in de vorm van matrixvermenigvuldiging (ter vereenvoudiging van de notatie wordt hier en in het vervolg aangenomen dat de constante term van de vergelijking verborgen is achter Lineaire regressie en methoden voor het herstel ervan, en de laatste kolom van de matrix Lineaire regressie en methoden voor het herstel ervan bevat enen):

Lineaire regressie en methoden voor het herstel ervan

Het lijkt heel erg op een systeem van lineaire vergelijkingen, nietwaar? Het lijkt zo, maar deze vergelijking zal hoogstwaarschijnlijk geen oplossingen hebben. De reden hiervoor is de ruis die in bijna alle werkelijke gegevens aanwezig is. Een andere reden kan zijn het ontbreken van een echte lineaire afhankelijkheid, waarmee we kunnen proberen te worstelen door extra variabelen in te voeren die niet-lineair afhangen van de oorspronkelijke. Laten we het volgende voorbeeld bekijken:
Lineaire regressie en methoden voor het herstel ervan
Bron: Wikipedia

Dit is een eenvoudig voorbeeld van lineaire regressie dat de afhankelijkheid van één variabele (langs de as Lineaire regressie en methoden voor het herstel ervan) van een andere variabele (langs de as Lineaire regressie en methoden voor het herstel ervan). Om te voldoen aan het voorbeeld moet het systeem van lineaire vergelijkingen een oplossing hebben, waarbij alle punten precies op één lijn liggen. Maar dat is niet het geval. Ze liggen niet op één lijn juist vanwege de ruis (of omdat de veronderstelling over de aanwezigheid van een lineaire afhankelijkheid onjuist was). Om de lineaire afhankelijkheid te herstellen op basis van echte gegevens, is het gebruikelijk om nog een veronderstelling in te voeren: de invoergegevens bevatten ruis en deze ruis heeft een normale verdeling. Je kunt ook veronderstellingen doen over andere soorten van ruisverdelingen, maar in de overgrote meerderheid van de gevallen wordt de normale verdeling beschouwd, waarover hier verder zal worden gesproken.

De methode van maximale waarschijnlijkheid

. Dus we nemen aan dat er een willekeurige normaal verdeelde ruis is. Hoe gaan we om met zo'n situatie? Hiervoor bestaat er in de wiskunde een populaire en veelgebruikte methode, de methode van maximale waarschijnlijkheid. In het kort komt het erop neer dat we de waarschijnlijkheidsfunctie kiezen en deze vervolgens maximaliseren.

Laten we terugkeren naar het herstellen van de lineaire afhankelijkheid met gegevens met normale ruis. Opmerkelijk is dat de veronderstelde lineaire afhankelijkheid het mathematisch verwachtingswaarde is Lineaire regressie en methoden voor het herstel ervan van de huidige normale verdeling. Tegelijkertijd is de kans dat Lineaire regressie en methoden voor het herstel ervan een bepaalde waarde aanneemt, afhankelijk van de waargenomen Lineaire regressie en methoden voor het herstel ervan, ziet het er als volgt uit:

Lineaire regressie en methoden voor het herstel ervan

Laten we nu de juiste variabelen substitueren: Lineaire regressie en methoden voor het herstel ervan en Lineaire regressie en methoden voor het herstel ervan We moeten alleen de vector vinden

Lineaire regressie en methoden voor het herstel ervan

, waar de kans maximaal is. Om zo'n functie te maximaliseren, is het handig om deze eerst te logaritmeren (de logaritme van de functie bereikt zijn maximum op hetzelfde punt als de functie zelf): Lineaire regressie en methoden voor het herstel ervanWat op zijn beurt neerkomt op het minimaliseren van de volgende functie:

Lineaire regressie en methoden voor het herstel ervan

Overigens wordt dit de methode genoemd

Lineaire regressie en methoden voor het herstel ervan

van de kleinste kwadraten . Vaak worden alle bovenstaande redeneringen overgeslagen en wordt deze methode eenvoudig toegepast.QR-decompositie

. Het minimum van de hierboven genoemde functie kan worden gevonden door het punt te vinden waar de gradiënt van deze functie gelijk is aan nul. De gradiënt zal als volgt worden weergegeven:

is een matrixmethode voor het oplossen van een minimaliseringsprobleem dat in de methode van de kleinste kwadraten wordt gebruikt. Daarom herschrijven we de vergelijking in matrixvorm:

Lineaire regressie en methoden voor het herstel ervan

. Het minimum van de hierboven genoemde functie kan worden gevonden door het punt te vinden waar de gradiënt van deze functie gelijk is aan nul. De gradiënt zal als volgt worden weergegeven: Dus we decomponeren de matrix

Lineaire regressie en methoden voor het herstel ervan

in matrices Lineaire regressie en methoden voor het herstel ervan op de matrices Lineaire regressie en methoden voor het herstel ervan en Lineaire regressie en methoden voor het herstel ervan en we voeren een aantal transformaties uit (het algoritme voor QR-decompositie wordt hier niet behandeld, alleen het gebruik ervan met betrekking tot de gestelde taak):

Lineaire regressie en methoden voor het herstel ervan

Matrix Lineaire regressie en methoden voor het herstel ervan is orthogonaal. Dit stelt ons in staat om het product kwijt te raken van Lineaire regressie en methoden voor het herstel ervan:

Lineaire regressie en methoden voor het herstel ervan

Als we vervangen Lineaire regressie en methoden voor het herstel ervan en een werkende opdracht krijgen. Lineaire regressie en methoden voor het herstel ervan, dan krijgen we Lineaire regressie en methoden voor het herstel ervan. Gezien dat Lineaire regressie en methoden voor het herstel ervan een bovenste driehoeksmatrix is, ziet dit er als volgt uit:

Lineaire regressie en methoden voor het herstel ervan

Dit kan worden opgelost met de substitutiemethode. Het element Lineaire regressie en methoden voor het herstel ervan wordt gevonden als Lineaire regressie en methoden voor het herstel ervan, het vorige element Lineaire regressie en methoden voor het herstel ervan wordt gevonden als Lineaire regressie en methoden voor het herstel ervan en zo verder.

Het is vermeldenswaard dat de complexiteit van het resulterende algoritme door het gebruik van QR-decompositie gelijk is aan Lineaire regressie en methoden voor het herstel ervan. Ondanks het feit dat de matrixvermenigvuldiging goed kan worden geparallelliseerd, is het niet mogelijk om een efficiënte gedistribueerde versie van dit algoritme te schrijven.

Gradiëntafdalingsmethode

Als we het hebben over de minimalisatie van een bepaalde functie, is het altijd goed om de (stochastische) gradiëntafdalingsmethode in gedachten te houden. Dit is een eenvoudige en effectieve methode voor minimalisatie, gebaseerd op iteratieve berekening van de gradiënt van de functie op een punt en de daaropvolgende verschuiving in de tegenrichting van de gradiënt. Elke dergelijke stap brengt de oplossing dichter bij het minimum. De gradiënt ziet er als volgt uit:

Lineaire regressie en methoden voor het herstel ervan

Bovendien kan deze methode goed worden geparallelliseerd en verdeeld vanwege de lineaire eigenschappen van de gradiëntoperator. Merk op dat in de bovenstaande formule onder het somteken onafhankelijke termen staan. Met andere woorden, we kunnen de gradiënt onafhankelijk voor alle indexen berekenen Lineaire regressie en methoden voor het herstel ervan van de eerste tot Lineaire regressie en methoden voor het herstel ervan, terwijl we parallel de gradiënt voor de indexen van Lineaire regressie en methoden voor het herstel ervan tot Lineaire regressie en methoden voor het herstel ervanberekenen. Vervolgens worden de resulterende gradiënten bij elkaar opgeteld. Het resultaat van de optelling zal hetzelfde zijn als als we de gradiënt onmiddellijk voor de indexen van de eerste tot Lineaire regressie en methoden voor het herstel ervan. Dus, als de gegevens zijn verdeeld over verschillende gegevensdelen, kan de gradiënt onafhankelijk op elk deel worden berekend, en vervolgens kunnen de resultaten van deze berekeningen worden opgeteld om het uiteindelijke resultaat te krijgen:

Lineaire regressie en methoden voor het herstel ervan

Vanuit het perspectief van implementatie past dit binnen de paradigma MapReduce. Bij elke stap van de gradiëntafdalingsmethode wordt een taak naar elke gegevensknop verzonden om de gradiënt te berekenen, vervolgens worden de berekende gradiënten samengevoegd en het resultaat van hun optelling wordt gebruikt om het resultaat te verbeteren.

Hoewel gradient descent eenvoudig te implementeren is en uitgevoerd kan worden in de MapReduce-paradigma, heeft het ook zijn nadelen. In het bijzonder is het aantal stappen dat nodig is om convergentie te bereiken veel groter in vergelijking met andere, meer gespecialiseerde methoden.

LSQR

LSQR is een andere methode om het probleem op te lossen, die zowel geschikt is voor het herstel van lineaire regressie als voor het oplossen van systemen van lineaire vergelijkingen. Het belangrijkste kenmerk is dat het de voordelen van matrixmethoden en een iteratieve aanpak combineert. Implementaties van deze methode zijn te vinden in de bibliotheek SciPy, alsook in MATLAB. Een beschrijving van deze methode zal hier niet worden gegeven (deze is te vinden in het artikel LSQR: An algorithm for sparse linear equations and sparse least squares). In plaats daarvan zal een benadering worden gedemonstreerd die het mogelijk maakt om LSQR aan te passen aan een gedistribueerde omgeving.

De basis van de LSQR-methode is de procedure van badiagonalisatie. Dit is een iteratieve procedure, waarbij elke iteratie uit de volgende stappen bestaat:
Lineaire regressie en methoden voor het herstel ervan

Maar als we ervan uitgaan dat de matrix Lineaire regressie en methoden voor het herstel ervan horizontaal is gepartitioneerd, kan elke iteratie worden weergegeven als twee MapReduce-stappen. Dit minimaliseert de gegevensoverdracht tijdens elke iteratie (alleen vectoren met een lengte die gelijk is aan het aantal onbekenden):

Lineaire regressie en methoden voor het herstel ervan

Deze benadering wordt gebruikt bij de implementatie van lineaire regressie in Apache Ignite ML.

Conclusie

Er zijn veel algoritmen voor het herstellen van lineaire regressie, maar niet alle kunnen onder alle omstandigheden worden toegepast. QR-ontbinding is uitstekend voor nauwkeurige oplossingen op kleine datasets. Gradient descent is eenvoudig te implementeren en stelt in staat om snel een benadering van de oplossing te vinden. LSQR combineert de beste eigenschappen van de vorige twee algoritmen, aangezien het kan worden gedistribueerd, sneller convergeert in vergelijking met gradient descent en bovendien een vroegtijdige stop van het algoritme mogelijk maakt, in tegenstelling tot QR-ontbinding voor het vinden van een benaderde oplossing.

Bron: habr.com

Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers 🔥 Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers | ProHoster