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łowo | Indeks |
---|---|
Podaj | 0 |
login | 1 |
hasło | 2 |
3 |
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] |
3 | [0,0,0,1] |
Korzystając z tabeli powyżej możemy zakodować całą sentencję z pomocą wektorów:
Sentencja | Reprezentacja 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]] |
Korzystając z „mini partii” (mini batch) nasze dane wejściowe będą wyglądać następująco:
[[[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)