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)

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *