Czym jest tensor? – Uproszczenie

1 – Definicja

Według definicji – Tensor jest obiektem algebraicznym, który opisuje wieloliniową relację między zbiorami obiektów algebraicznych związanych z przestrzenią wektorową.

Dla zrozumienia, poniżej mamy różne poziomy, zaczynając od skalaru, a kończąc na tensorze:

Poziom Typ Przykład
0 Skalar \(\mathbf{[1]}\)
1 Wektor \(\mathbf{[1,1]}\)
2 Macierz \(\mathbf{[[1,1],[1,1]]}\)
3 3 Tensor \(\mathbf{[[[1,1],[1,1]],[[1,1],[1,1]]]}\)
N Tensor (…)

Powyższa tabela przedstawia struktury od skalaru (poziom 0) do tensora (poziom 3).

2 – Przykład w NLP

Sentencja
Podaj login
Podaj hasło
Podaj email

Przekształcając powyższą tabelę w słownik unikalnych słów otrzymujemy:

Unikalne słowoIndeks
Podaj0
login1
hasło2
email3
Słownik unikalnych słów

Możemy zakodować podane słowa za pomocą wektora (One-hot encoding vector)

Unikalne słowo indeks Kod 1 z n
Podaj 0 [1,0,0,0]
login 1 [0,1,0,0]
hasło 2 [0,0,1,0]
 email 3 [0,0,0,1]
Słownik unikalnych słów z wartościami one hot encoding vector

Korzystając z tabeli powyżej możemy zakodować całą sentencję z pomocą wektorów:

SentencjaReprezentacja wektorowa
Podaj login[[1,0,0,0], [0,1,0,0]]
Podaj hasło[[1,0,0,0], [0,0,1,0]]
Podaj Email[[1,0,0,0], [0,0,0,1]]
Sentencje z reprezentacją wektorową

Korzystając z „mini partii” (mini batch) nasze dane wejściowe będą wyglądać następująco:

Podaj login Podaj hasło Podaj email

[[[1,0,0,0], [0,1,0,0]], [[1,0,0,0], [0,0,1,0]], [[1,0,0,0], [0,0,0,1]]]

W skrócie, zakodowujemy sentencje i wysyłamy wszystkie na raz w tablicy.

Zbudujmy teraz tensor, wiedząc, że każde słowo może przyjąć jedną z 4 wartości (od 0 do 3):
(4)
Kolejno każda sentencja składa się z dwóch słów:
(2,4)
Oraz posiadamy 3 sentencje
(3,2,4) w wyniku daje nam 3d tensor.

Dla podsumowania:
[[[1,0,0,0], [0,1,0,0]], [[1,0,0,0], [0,0,1,0]], [[1,0,0,0], [0,0,0,1]]]
(3,2,4)
Pierwsza liczba oznacza rozmiar próbki.

Druga liczba określa maksymalną długość sentencji:
[[[1,0,0,0], [0,1,0,0]], [[1,0,0,0], [0,0,1,0]], [[1,0,0,0], [0,0,0,1]]]
(3,2,4)

Trzecia liczba określa rozmiar wektora słowa:
[[[1,0,0,0], [0,1,0,0]], [[1,0,0,0], [0,0,1,0]], [[1,0,0,0], [0,0,0,1]]]
(3,2,4)

Klasyfikatory – Typy – Uproszczone

1 – KNN (K- Nearest Neighbors, K-Najbliższych sąsiadów)

Dla określonego K, klasyfikator zwróci „większość spośród K”.
Dla przykładu K =3, algorytm wybierze 3 najbliższych sąsiadów i określi wynik, który pojawił sie najczęściej. (Zasada podobna do meczy np. BO3)

Na poniższym obrazku widać, że dla K=3, dwóch sąsiadów przeżyło, jeden nie, klasyfikator zwróci „przeżył

Na poniższym obrazku widać, że dla K=5, dwóch sąsiadów przeżyło trzech nie przeżyło, klasyfikator zwróci „nie przeżył

2 – Decision tree (Drzewo Decyzyjne)

Algortym na podstawie zdefiniowanych atrybutów (fetaures) podaje wynik końcowy z zastosowaniem jednego drzewa.

3 – Random forest (Las losowy)

Algorytm konstruuje wiele drzew na podstawie wybranych atrybutów po czym zlicza „większość spośród” (ile razy przeżył na ile prób), poniższy przykład pokazuje losowo wybrane trzy pary atrybutów (features) dla których dwie pary wskazały na śmierć co w wyniku dało śmierć.

4 – Naive Bayes – Naiwny klasyfikator Bayesa

Klasyfikator korzysta z prawdopodobieństwa wystąpienia zdarzenia na podstawie atrybutów, na przykładzie podane jest wyliczenie prawdopodobieństwa przy wzięciu pod uwagę atrybutów jak płeć i wiek.

5 – SVM (Support Vector Machine, Maszyna wektorów nośnych)

Dzieli obszar prób na dwie części za pomocą prostej wyznaczającą granicę decyzyjną (decision boundry).