Maybaygiare.org

Blog Network

podstawy algebry liniowej do głębokiego uczenia

  • wprowadzenie
  • obiekty matematyczne
  • Zasady obliczeniowe
  • właściwości mnożenia macierzy
  • odwrotność i Transpozycja
  • podsumowanie
  • zasoby

wprowadzenie

Algebra liniowa jest ciągłą formą matematyki i jest stosowana w całej nauce i inżynierii, ponieważ pozwala modelować zjawiska naturalne i Oblicz je efektywnie. Ponieważ jest to forma matematyki ciągłej, a nie dyskretnej, wielu informatyków nie ma z nią dużego doświadczenia. Algebra liniowa jest również centralnym elementem prawie wszystkich dziedzin matematyki, takich jak geometria i analiza funkcjonalna. Jego koncepcje są kluczowym warunkiem zrozumienia teorii uczenia maszynowego, zwłaszcza jeśli pracujesz z algorytmami uczenia głębokiego. Nie musisz rozumieć algebry liniowej przed rozpoczęciem uczenia maszynowego, ale w pewnym momencie możesz chcieć lepiej zrozumieć, jak różne algorytmy uczenia maszynowego naprawdę działają pod maską.
to pomoże Ci podejmować lepsze decyzje podczas rozwoju systemu uczenia maszynowego. Więc jeśli naprawdę chcesz być profesjonalistą w tej dziedzinie, będziesz musiał opanować części algebry liniowej, które są ważne dla uczenia maszynowego. W algebrze liniowej dane są reprezentowane przez równania liniowe, które są przedstawione w postaci macierzy i wektorów. Dlatego najczęściej mamy do czynienia z macierzami i wektorami, a nie ze skalarami (omówimy te pojęcia w dalszej części). Kiedy masz do dyspozycji odpowiednie biblioteki, takie jak Numpy, możesz bardzo łatwo obliczyć złożone mnożenie macierzy za pomocą zaledwie kilku linii kodu. (Uwaga: ten wpis na blogu ignoruje pojęcia algebry liniowej, które nie są ważne dla uczenia maszynowego.)

obiekty matematyczne

Skalar

Skalar jest po prostu liczbą pojedynczą. Na przykład 24.

Wektor

wektor jest uporządkowaną tablicą liczb i może być w wierszu lub kolumnie. Wektor ma tylko jeden indeks, który może wskazywać określoną wartość w wektorze. Na przykład, V2 odnosi się do drugiej wartości w wektorze, która na powyższym rysunku wynosi -8.

macierz

macierz jest uporządkowaną dwuwymiarową tablicą liczb i ma dwa indeksy. Pierwszy wskazuje na wiersz, a drugi na kolumnę. Na przykład M23 odnosi się do wartości w drugim wierszu i trzeciej kolumnie, która jest 8 na żółtej grafice powyżej. Macierz może mieć wiele liczb wierszy i kolumn. Zauważ, że wektor jest również Macierzą, ale z tylko jednym wierszem lub jedną kolumną.

macierz w przykładzie na żółtej grafice jest również Macierzą 2 – na 3-wymiarową (wiersze x kolumny). Poniżej możesz zobaczyć inny przykład macierzy wraz z jej notacją:

tensor

możesz myśleć o tensorze jako tablicy liczb, ułożonej na regularnej siatce, ze zmienną liczbą osi. Tensor ma trzy indeksy, gdzie pierwszy wskazuje na wiersz, drugi na kolumnę, a trzeci na oś. Na przykład T232 wskazuje na drugi rząd, trzecią kolumnę i drugą oś. Odnosi się to do wartości 0 W prawym Tensorze na poniższym rysunku:

tensor jest najbardziej ogólnym terminem dla wszystkich powyższych pojęć, ponieważ tensor jest tablicą wielowymiarową i może być wektorem i Macierzą, w zależności od liczby indeksów, które ma. Na przykład Tensor pierwszego rzędu byłby wektorem (indeks 1). Tensor drugiego rzędu jest macierzą (2 indeksy), a tensory trzeciego rzędu (3 indeksy), a wyższe nazywane są Tensorami wyższego rzędu (3 lub więcej indeksów).

macierz-operacje skalarne

Jeśli mnożysz, dzielisz, odejmujesz lub dodajesz Skalar do macierzy, robisz to z każdym elementem macierzy. Poniższy obrazek doskonale ilustruje to do mnożenia:

macierz-mnożenie wektora

mnożenie macierzy przez wektor można traktować jako mnożenie każdego wiersza macierzy przez kolumnę wektora. Wyjście będzie wektorem, który ma taką samą liczbę wierszy jak macierz. Poniższy obraz pokazuje, jak to działa:

aby lepiej zrozumieć koncepcję, przejdziemy przez obliczenie drugiego obrazu. Aby otrzymać pierwszą wartość wektora wynikowego (16), bierzemy liczby wektora, który chcemy pomnożyć przez Macierz (1 i 5), i mnożymy je liczbami pierwszego rzędu macierzy (1 i 3). Wygląda to tak:

1*1 + 3*5 = 16

robimy to samo dla wartości w drugim wierszu macierzy:

4*1 + 0*5 = 4

i znowu trzeci rząd macierzy:

2*1 + 1*5 = 7

oto kolejny przykład:

And here is a kind of cheat sheet:

Matrix-Matrix Addition and Subtraction

Matrix-Matrix Addition and Subtraction is fairly easy and straightforward. Wymaganiem jest to, że macierze mają te same wymiary, a wynikiem jest macierz, która ma również te same wymiary. Po prostu dodajesz lub odejmujesz każdą wartość pierwszej macierzy z odpowiadającą jej wartością w drugiej macierzy. Zobacz poniżej:

macierz-mnożenie macierzy

mnożenie dwóch macierzy razem też nie jest takie trudne, jeśli wiesz jak mnożyć macierz przez wektor. Zauważ, że Macierze można mnożyć tylko wtedy, gdy liczba kolumn pierwszej macierzy odpowiada liczbie wierszy drugiej macierzy. Wynikiem będzie macierz z taką samą liczbą wierszy jak pierwsza macierz i taką samą liczbą kolumn jak druga macierz. Działa to w następujący sposób:

Po prostu dzielisz drugą macierz na wektory kolumnowe i mnożysz pierwszą macierz oddzielnie przez każdy z tych wektorów. Następnie umieszczasz wyniki w nowej macierzy(bez ich sumowania!). Poniższy obrazek wyjaśnia ten krok po kroku:

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. Zaczniemy od wyjaśnienia tych pojęć za pomocą skalarów, a następnie za pomocą macierzy, ponieważ da to lepsze zrozumienie procesu.

Nie przemienne

mnożenie skalarne jest przemienne, ale mnożenie macierzy nie jest. Oznacza to, że gdy mnożymy Skalary, 7*3 jest tym samym co 3*7. Ale kiedy mnożymy Macierze przez siebie, A * B nie jest tym samym co B*A.

asocjacyjne

mnożenie skalarne i macierzy są asocjacyjne. Oznacza to, że mnożenie skalarne 3(5*3) jest takie samo jak (3*5)3 i że mnożenie macierzy A(B*C) jest takie samo jak (A*B)C.

Dystrybutywne

Skalar i mnożenie macierzy są również dystrybutywne. Oznacza to, że
3 (5 + 3) jest tym samym co 3*5 + 3*3 i że A (B+C) jest tym samym Co A*B + A*C.

macierz tożsamościowa

macierz tożsamościowa jest specjalnym rodzajem macierzy, ale najpierw musimy zdefiniować czym jest tożsamość. Liczba 1 jest tożsamością, ponieważ wszystko, co mnożysz przez 1, jest sobie równe. Dlatego każda macierz pomnożona przez Macierz jednostkową jest sobie równa. Na przykład macierz a razy jej tożsamość-macierz jest równa A.

można zauważyć macierz tożsamości przez to, że ma ona jedynki wzdłuż przekątnych i że każda inna wartość jest równa zero. Jest to również „macierz kwadratowa”, co oznacza, że jej liczba wierszy odpowiada liczbie kolumn.

wcześniej omawialiśmy, że mnożenie macierzy nie jest przemienne, ale jest jeden wyjątek, mianowicie, jeśli pomnożymy macierz przez macierz jednostkową. Zatem prawdziwe jest następujące równanie:A*i = I * A = a

odwrotność i Transpozycja

odwrotność macierzy i Transpozycja macierzy to dwa specjalne rodzaje własności macierzy. Ponownie, zaczniemy od omówienia, jak te właściwości odnoszą się do liczb rzeczywistych, a następnie jak odnoszą się do macierzy.

odwrotność

Po pierwsze, czym jest odwrotność? Liczba pomnożona przez jej odwrotność jest równa 1. Zauważ, że każda liczba oprócz 0 mA odwrotność. Jeśli pomnożymy macierz przez jej odwrotność, otrzymamy jej macierz jednostkową. Poniższy przykład pokazuje jak wygląda odwrotność skalarów:

ale nie każda macierz ma odwrotność. Można obliczyć odwrotność macierzy, jeśli jest to „macierz kwadratowa” i jeśli ma odwrotność. Omówienie, które Macierze mają odwrotność, byłoby niestety poza zakresem tego postu.

Po co nam odwrotność? Ponieważ nie możemy podzielić macierzy. Nie ma pojęcia dzielenia przez Macierz, ale możemy pomnożyć macierz przez odwrotność, co daje zasadniczo to samo.

poniższy obraz przedstawia macierz pomnożoną przez jej odwrotność, co skutkuje macierzą tożsamościową 2 na 2.

możesz łatwo obliczyć odwrotność macierzy (jeśli ją posiada) używając numpy. Oto link do dokumentacji: https://docs.scipy.org/doc/numpy-1.14.0/reference/generated/numpy.linalg.inv.html.

Transpozycja

i na koniec omówimy właściwość transpozycji macierzy. To jest w zasadzie lustrzane odbicie matrycy, wzdłuż 45-stopniowej osi. Transponowanie macierzy jest dość proste. Jego pierwsza kolumna to pierwszy wiersz macierzy Transponowanej, a druga kolumna to drugi wiersz macierzy Transponowanej. Macierz m*N jest przekształcana w macierz N * M. Ponadto element Aij a jest równy elementowi Aji (transponowanemu). Poniższy obrazek ilustruje, że:

podsumowanie

w tym poście dowiedzieliście się o matematycznych obiektach algebry liniowej, które są używane w uczeniu maszynowym. Nauczyłeś się mnożyć, dzielić, dodawać i odejmować te obiekty matematyczne. Ponadto dowiedzieliście się o najważniejszych właściwościach macierzy i dlaczego pozwalają nam one na bardziej wydajne obliczenia. Poza tym, nauczyłeś się czym są macierze odwrotne i transponujące i co możesz z nimi zrobić. Chociaż istnieją również inne części algebry liniowej używane w uczeniu maszynowym, ten post dał ci właściwe wprowadzenie do najważniejszych pojęć.

zasoby

Deep Learning (książka) — Ian Goodfellow, Joshua Bengio, Aaron Courville

Linear Algebra for Machine Learning

kurs uczenia maszynowego Andrew Ng na 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

ten post został pierwotnie opublikowany na moim blogu (https://machinelearning-blog.com).

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.