Maybaygiare.org

Blog Network

grundlæggende lineær Algebra til dyb læring

  • introduktion
  • matematiske objekter
  • beregningsregler
  • Inverse og transponere
  • Resume
  • ressourcer

introduktion

lineær Algebra er en kontinuerlig form for matematik og anvendes i hele videnskab og teknik, fordi det giver dig mulighed for at modellere naturfænomener og beregn dem effektivt. Fordi det er en form for kontinuerlig og ikke diskret matematik, har mange computerforskere ikke meget erfaring med det. Lineær Algebra er også centralt for næsten alle områder af matematik som geometri og funktionel analyse. Dens begreber er en afgørende forudsætning for at forstå teorien bag maskinindlæring, især hvis du arbejder med dybe læringsalgoritmer. Du behøver ikke at forstå Lineær Algebra, før du kommer i gang med maskinlæring, men på et tidspunkt vil du måske få en bedre forståelse af, hvordan de forskellige maskinlæringsalgoritmer virkelig fungerer under hætten.
dette vil hjælpe dig med at træffe bedre beslutninger under et Maskinindlæringssystem udvikling. Så hvis du virkelig vil være professionel på dette område, bliver du nødt til at mestre de dele af lineær Algebra, der er vigtige for maskinindlæring. I lineær Algebra er data repræsenteret af lineære ligninger, som præsenteres i form af matricer og vektorer. Derfor beskæftiger du dig mest med matricer og vektorer snarere end med skalarer (vi dækker disse vilkår i det følgende afsnit). Når du har de rigtige biblioteker, som Numpy, til din rådighed, kan du beregne kompleks matrice multiplikation meget nemt med blot et par linjer kode. (Bemærke: dette blogindlæg ignorerer begreber lineær Algebra, der ikke er vigtige for maskinindlæring.)

matematiske objekter

div >

Scalar

en skalar er simpelthen et enkelt tal. For eksempel 24.

Vector

en vektor er en ordnet række af tal og kan være i en række eller en kolonne. En vektor har kun et enkelt indeks, som kan pege på en bestemt værdi inden for vektoren. For eksempel henviser V2 til den anden værdi inden for vektoren, som er -8 i grafikken ovenfor.

Matrix

En Matrix er en bestilt 2D array af tal, og det har to indeks. Den første peger på rækken og den anden til kolonnen. For eksempel henviser M23 til værdien i den anden række og den tredje kolonne, som er 8 i den gule grafik ovenfor. En matrice kan have flere antal rækker og kolonner. Bemærk, at en vektor også er en matrice, men med kun en række eller en kolonne.

matricen i eksemplet i den gule grafik er også en 2 – ved 3-dimensionel Matrice (rækker med kolonner). Nedenfor kan du se et andet eksempel på en matrice sammen med dens notation:

div>

tensor

Du kan tænke på en tensor som en række tal, arrangeret på et almindeligt gitter, med et variabelt antal akser. En Tensor har tre indekser, hvor den første peger på rækken, den anden til kolonnen og den tredje til aksen. For eksempel peger T232 på den anden række, den tredje kolonne og den anden akse. Dette refererer til værdien 0 i højre Tensor i nedenstående grafik:

tensor er den mest generelle betegnelse for alle disse begreber ovenfor, fordi en tensor er et multidimensionelt array, og det kan være en vektor og en matrice, afhængigt af antallet af indekser, den har. For eksempel ville en første ordens Tensor være en vektor (1 indeks). En andenordens Tensor er en matrice (2 indekser) og tredje ordens tensorer (3 indekser) og højere kaldes højere ordens tensorer (3 eller flere indekser).

Matrice-Skalaroperationer

Hvis du multiplicerer, deler, subtraherer eller tilføjer en skalar til en matrice, gør du det med hvert element i matricen. Billedet nedenfor illustrerer dette perfekt til multiplikation:

“2044423508”>

>

matrice-vektormultiplikation

multiplikation af en matrice med en vektor kan betragtes som at multiplicere hver række af matricen med vektorens kolonne. Udgangen vil være en vektor, der har samme antal rækker som matricen. Billedet nedenfor viser, hvordan dette fungerer:

div >

for bedre at forstå konceptet vil vi gennemgå beregningen af det andet billede. For at få den første værdi af den resulterende vektor (16) tager vi numrene på den vektor, vi vil multiplicere med matricen (1 og 5), og multiplicerer dem med numrene på den første række i matricen (1 og 3). Det ser sådan ud:

1*1 + 3*5 = 16

vi gør det samme for værdierne inden for den anden række af matricen:

4*1 + 0*5 = 4

og igen for den tredje række af matricen:

2*1 + 1*5 = 7

Her er et andet eksempel:

And here is a kind of cheat sheet:

Matrix-Matrix Addition and Subtraction

Matrix-Matrix Addition and Subtraction is fairly easy and straightforward. Kravet er, at matricerne har de samme dimensioner, og resultatet er en matrice, der også har de samme dimensioner. Du tilføjer eller trækker bare hver værdi af den første Matrice med den tilsvarende værdi i den anden Matrice. Se nedenfor:

multiplikation af matricer

multiplikation af to matricer sammen er heller ikke så svært, hvis du ved, hvordan man multiplicerer en matrice med en vektor. Bemærk, at du kun kan gange matricer sammen, hvis antallet af den første Matrices kolonner svarer til antallet af den anden Matrices rækker. Resultatet bliver en matrice med det samme antal rækker som den første Matrice og det samme antal kolonner som den anden Matrice. Det fungerer som følger:

du deler simpelthen den anden Matrice i kolonnevektorer og multiplicerer den første Matrice separat med hver af disse vektorer. Så sætter du resultaterne i en ny Matrice (uden at tilføje dem op!). Billedet nedenfor forklarer dette trin for trin:

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 starter med at forklare disse begreber med skalarer og derefter med matricer, fordi dette giver dig en bedre forståelse af processen.

ikke kommutativ

skalar multiplikation er kommutativ, men Matrice multiplikation er ikke. Dette betyder, at når vi multiplicerer skalarer, er 7*3 det samme som 3*7. Men når vi multiplicerer matricer med hinanden, er A*B ikke det samme som B*A.

associativ

Scalar og Matrice multiplikation er begge associative. Dette betyder, at den skalære multiplikation 3(5*3) er den samme som (3*5)3, og at matricen multiplikation A(B*C) er den samme som (A*B)C.

distributiv

skalar og Matrice multiplikation er også begge distributive. Det betyder, at
3(5 + 3) er det samme som 3*5 + 3*3 og at A(B+C) er det samme som A*B + A*C.

Identitetsmatrice

Identitetsmatricen er en speciel slags Matrice, men først skal vi definere, hvad en identitet er. Tallet 1 er en identitet, fordi alt, hvad du multiplicerer med 1, er lig med sig selv. Derfor er hver Matrice, der multipliceres med en Identitetsmatrice, lig med sig selv. For eksempel er matricen A gange dens Identitetsmatrice lig med A.

Du kan få øje på en Identitetsmatrice ved at den har dem langs dens diagonaler, og at hver anden værdi er nul. Det er også en “kvadreret matrice”, hvilket betyder, at antallet af rækker svarer til antallet af kolonner.

vi diskuterede tidligere, at matrice-multiplikation ikke er kommutativ, men der er en undtagelse, nemlig hvis vi multiplicerer en matrice med en identitetsmatrice. Derfor er følgende ligning sand: a * i = i * A = A

Inverse og transponere

matricen inverse og matricen transponerer er to specielle slags Matricsegenskaber. Igen vil vi starte med at diskutere, hvordan disse egenskaber relaterer til reelle tal og derefter hvordan de relaterer til matricer.

invers

først og fremmest, hvad er en invers? Et tal, der multipliceres med dets inverse, er lig med 1. Bemærk, at hvert tal undtagen 0 har en invers. Hvis du multiplicerer en matrice med dens inverse, er resultatet dens Identitetsmatrice. Eksemplet nedenfor viser, hvordan det inverse af skalarer ser ud:

men ikke alle matricer har en invers. Du kan beregne det inverse af en matrice, hvis det er en” kvadreret Matrice”, og hvis den har en invers. At diskutere, hvilke matricer der har en invers, ville desværre være uden for dette indlæg.

hvorfor har vi brug for en invers? Fordi vi ikke kan opdele matricer. Der er ikke noget begreb om at dividere med en matrice, men vi kan multiplicere en matrice med en invers, hvilket i det væsentlige resulterer i den samme ting.

billedet nedenfor viser en matrice ganget med dens inverse, hvilket resulterer i en 2-by-2 identitetsmatrice.

Du kan nemt beregne den inverse af en Matrix (hvis den har en) hjælp Numpy. Her er linket til dokumentationen: https://docs.scipy.org/doc/numpy-1.14.0/reference/generated/numpy.linalg.inv.html.

transponere

og endelig vil vi diskutere matricen transponere ejendom. Dette er dybest set spejlbilledet af en matrice langs en 45-graders akse. Det er ret nemt at få transponeret en matrice. Dens første kolonne er den første række af matricen transponere og den anden kolonne er den anden række af matricen transponere. En M * N-Matrice omdannes til en n*m-Matrice. AIJ-elementet i A er også lig med Aji (transpose) – elementet. Billedet nedenfor illustrerer det:

Oversigt

I dette indlæg, du har lært om de matematiske objekter af Lineær Algebra, der bruges i Machine Learning. Du lærte at multiplicere, opdele, tilføje og trække disse matematiske objekter. Desuden har du lært om de vigtigste egenskaber ved matricer, og hvorfor de gør det muligt for os at foretage mere effektive beregninger. Derudover har du lært, hvad inverse og transponere matricer er, og hvad du kan gøre med dem. Selvom der også er andre dele af lineær Algebra, der bruges i maskinlæring, gav dette indlæg dig en ordentlig introduktion til de vigtigste begreber.

Resources

dyb læring (bog) — Ian Godmedhjælper, Joshua Bengio, Aaron Courville

Linear Algebra for Machine Learning

Andreas NGS Maskinlæringskursus 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

dette indlæg blev oprindeligt offentliggjort på min blog (https://machinelearning-blog.com).

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.