Maybaygiare.org

Blog Network

grundläggande linjär Algebra för djupinlärning

  • introduktion
  • matematiska objekt
  • beräkningsregler
  • Matrix multiplikation Properties
  • Inverse och transponera
  • sammanfattning
  • resurser

introduktion

linjär Algebra är en kontinuerlig form av matematik och tillämpas i hela vetenskap och teknik eftersom det gör att du kan modellera naturfenomen och för att skapa en beräkna dem effektivt. Eftersom det är en form av kontinuerlig och inte diskret matematik, har många datavetare inte mycket erfarenhet av det. Linjär Algebra är också centralt för nästan alla områden av matematik som geometri och funktionell analys. Dess begrepp är en avgörande förutsättning för att förstå teorin bakom maskininlärning, särskilt om du arbetar med djupa inlärningsalgoritmer. Du behöver inte förstå linjär Algebra innan du börjar med maskininlärning, men någon gång kanske du vill få en bättre förståelse för hur de olika Maskininlärningsalgoritmerna verkligen fungerar under huven.
Detta kommer att hjälpa dig att fatta bättre beslut under ett maskininlärningssystem utveckling. Så om du verkligen vill vara professionell inom detta område måste du behärska de delar av linjär Algebra som är viktiga för maskininlärning. I linjär Algebra representeras data av linjära ekvationer, vilka presenteras i form av matriser och vektorer. Därför handlar du mest om matriser och vektorer snarare än med skalärer (vi kommer att täcka dessa termer i följande avsnitt). När du har rätt bibliotek, som Numpy, till ditt förfogande, kan du beräkna komplex matrismultiplikation mycket enkelt med bara några rader kod. (Observera: detta blogginlägg ignorerar begrepp av linjär Algebra som inte är viktiga för maskininlärning.)

matematiska objekt

div>

skalär

en skalär är helt enkelt ett enda nummer. Till exempel 24.

vektor

en vektor är en ordnad uppsättning siffror och kan vara i en rad eller en kolumn. En vektor har bara ett enda index, vilket kan peka på ett specifikt värde inom vektorn. Till exempel hänvisar V2 till det andra värdet inom vektorn, vilket är -8 i bilden ovan.

matrix

en matris är en ordnad 2D-matris med siffror och den har två index. Den första pekar på raden och den andra till kolumnen. Till exempel hänvisar M23 till värdet i den andra raden och den tredje kolumnen, vilket är 8 i den gula bilden ovan. En matris kan ha flera antal rader och kolumner. Observera att en vektor också är en matris, men med endast en rad eller en kolumn.

matrisen i exemplet i den gula grafiken är också en 2 – till 3-dimensionell matris (rader x kolumner). Nedan kan du se ett annat exempel på en matris tillsammans med dess notation:

tensor

Du kan tänka på en tensor som en rad siffror, ordnade på ett vanligt rutnät, med ett variabelt antal axlar. En Tensor har tre index, där den första pekar på raden, den andra till kolumnen och den tredje till axeln. T232 pekar till exempel på den andra raden, den tredje kolumnen och den andra axeln. Detta hänvisar till värdet 0 i rätt Tensor i bilden nedan:

tensor är den mest allmänna termen för alla dessa begrepp ovan eftersom en tensor är en flerdimensionell array och den kan vara en vektor och en matris, beroende på antalet index Den har. Till exempel skulle en första ordningens Tensor vara en vektor (1 index). En andra ordningens Tensor är en matris (2 index) och tredje ordningens tensorer (3 index) och högre kallas högre ordningens tensorer (3 eller flera index).

Matrix-skalära operationer

om du multiplicerar, dividerar, subtraherar eller lägger till en skalär i en matris gör du det med varje element i matrisen. Bilden nedan illustrerar detta perfekt för multiplikation:

Matrix-Vector multiplikation

multiplicera en matris med en vektor kan betraktas som att multiplicera varje rad i matrisen med vektorns kolumn. Utgången kommer att vara en vektor som har samma antal rader som matrisen. Bilden nedan visar hur detta fungerar:

för att bättre förstå konceptet kommer vi att gå igenom beräkningen av den andra bilden. För att få det första värdet av den resulterande vektorn (16) tar vi siffrorna på vektorn vi vill multiplicera med matrisen (1 och 5) och multiplicera dem med siffrorna i den första raden i matrisen (1 och 3). Detta ser ut så här:

1*1 + 3*5 = 16

vi gör detsamma för värdena inom matrisens andra rad:

4*1 + 0*5 = 4

och igen för den tredje raden i matrisen:

2*1 + 1*5 = 7

Här är ett annat exempel:

And here is a kind of cheat sheet:

Matrix-Matrix Addition and Subtraction

Matrix-Matrix Addition and Subtraction is fairly easy and straightforward. Kravet är att matriserna har samma dimensioner och resultatet är en matris som också har samma dimensioner. Du lägger bara till eller subtraherar varje värde i den första matrisen med motsvarande värde i den andra matrisen. Se nedan:

Matrix-matrix multiplikation

att multiplicera två matriser tillsammans är inte så svårt heller om du vet hur man multiplicerar en matris med en vektor. Observera att du bara kan multiplicera matriser tillsammans om numret på den första matrisens kolumner matchar numret på den andra matrisens rader. Resultatet blir en matris med samma antal rader som den första matrisen och samma antal kolumner som den andra matrisen. Det fungerar som följer:

du delar helt enkelt den andra matrisen i kolumnvektorer och multiplicerar den första matrisen separat med var och en av dessa vektorer. Sedan lägger du resultaten i en ny matris (utan att lägga till dem!). Bilden nedan förklarar detta steg för steg:

And here is again some kind of cheat sheet:

Matrix Multiplication Properties

Matrix Multiplication has several properties that allow us to bundle a lot of computation into one Matrix multiplication. We will discuss them one by one below. Vi börjar med att förklara dessa begrepp med skalärer och sedan med matriser eftersom detta ger dig en bättre förståelse för processen.

inte kommutativ

skalär multiplikation är kommutativ men matrismultiplikation är inte. Det betyder att när vi multiplicerar skalärer är 7 * 3 detsamma som 3*7. Men när vi multiplicerar matriser med varandra är A*B inte detsamma som B * A.

associativ

skalär och matrismultiplikation är båda associativa. Detta betyder att skalär multiplikation 3 (5 * 3)är densamma som (3*5) 3 och att Matrismultiplikationen A(B*C)är densamma som (A*B) C.

distributiv

skalär och Matrismultiplicering är också båda fördelande. Det betyder att
3 (5 + 3) är samma som 3*5 + 3*3 och att A (B+C) är detsamma som A*B + A*C.

Identitetsmatris

identitetsmatrisen är en speciell typ av matris men först måste vi definiera vad en identitet är. Siffran 1 är en identitet eftersom allt du multiplicerar med 1 är lika med sig själv. Därför är varje matris som multipliceras med en Identitetsmatris lika med sig själv. Till exempel är matris A gånger dess Identitetsmatris lika med A.

Du kan upptäcka en Identitetsmatris genom att den har sådana längs dess diagonaler och att alla andra värden är noll. Det är också en” kvadratmatris”, vilket betyder att antalet rader matchar antalet kolumner.

vi diskuterade tidigare att matrismultiplikation inte är kommutativ men det finns ett undantag, nämligen om vi multiplicerar en matris med en identitetsmatris. Därför är följande ekvation sant: A*I = i*A = A

Inverse och transponera

matrisen inverse och Matristransponsen är två speciella typer av Matrisegenskaper. Återigen börjar vi med att diskutera hur dessa egenskaper relaterar till reella tal och sedan hur de relaterar till matriser.

Inverse

först av allt, vad är en inverse? Ett tal som multipliceras med dess inversa är lika med 1. Observera att varje nummer utom 0 har en invers. Om du multiplicerar en matris med dess inversa, är resultatet dess Identitetsmatris. Exemplet nedan visar hur inversen av skalärer ser ut:

men inte varje matris har en invers. Du kan beräkna invers av en matris om det är en ”kvadratmatris” och om den har en invers. Att diskutera vilka matriser som har en invers skulle tyvärr inte omfattas av detta inlägg.

Varför behöver vi en invers? Eftersom vi inte kan dela matriser. Det finns inget begrepp att dela med en matris men vi kan multiplicera en matris med en invers, vilket resulterar i huvudsak i samma sak.

bilden nedan visar en matris multiplicerad med dess inversa, vilket resulterar i en 2-by-2-identitetsmatris.

Du kan enkelt beräkna inversen av en matris (om den har en) med numpy. Här är länken till dokumentationen: https://docs.scipy.org/doc/numpy-1.14.0/reference/generated/numpy.linalg.inv.html.

transponera

och slutligen kommer vi att diskutera egenskapen Matrix transponera. Detta är i grunden spegelbilden av en matris, längs en 45-graders axel. Det är ganska enkelt att få transponering av en matris. Dess första kolumn är den första raden i Matristransponeringen och den andra kolumnen är den andra raden i Matristransponeringen. En m * n-matris omvandlas till en n*m-matris. Aij-elementet i A är också lika med aji (transponera) – elementet. Bilden nedan illustrerar det:

sammanfattning

i det här inlägget lärde du dig om de matematiska objekten för linjär algebra som används i maskininlärning. Du lärde dig att multiplicera, dela, lägga till och subtrahera dessa matematiska objekt. Dessutom har du lärt dig om de viktigaste egenskaperna hos matriser och varför de gör det möjligt för oss att göra effektivare beräkningar. Dessutom har du lärt dig vad inversa och transponera matriser är och vad du kan göra med dem. Även om det också finns andra delar av linjär Algebra som används i maskininlärning, gav det här inlägget dig en ordentlig introduktion till de viktigaste begreppen.

resurser

djupt lärande (bok) — Ian Goodfellow, Joshua Bengio, Aaron Courville

Linear Algebra for Machine Learning

Andrew ngs Maskininlärningskurs på Coursera

https://en.wikipedia.org/wiki/Linear_algebra

https://www.mathsisfun.com/algebra/scalar-vector-matrix.html

https://www.quantstart.com/articles/scalars-vectors-matrices-and-tensors-linear-algebra-for-deep-learning-part-1

Understanding Scalar and Vector Quantities

detta inlägg publicerades ursprungligen på min blogg (https://machinelearning-blog.com).

Lämna ett svar

Din e-postadress kommer inte publiceras.