forked from filipg/aitech-eks-pub
up
This commit is contained in:
parent
340197a94c
commit
a6a4106844
File diff suppressed because one or more lines are too long
@ -840,7 +840,7 @@ Można spróbować uzyskać bogatszą reprezentację dla słowa biorąc pod uwag
|
|||||||
- długość słowa
|
- długość słowa
|
||||||
- kształt słowa (/word shape/), np. czy pisany wielkimi literami, czy składa się z cyfr itp.
|
- kształt słowa (/word shape/), np. czy pisany wielkimi literami, czy składa się z cyfr itp.
|
||||||
- n-gramy znakowe wewnątrz słowa (np. słowo /Kowalski/ można zakodować jako sumę wektorów
|
- n-gramy znakowe wewnątrz słowa (np. słowo /Kowalski/ można zakodować jako sumę wektorów
|
||||||
trigramów znakówych $\vec{v}(Kow) + \vec{v}(owa) + \vec{v}(wal) + \vec{v}(als) + \vec{v}(lsk) + + \vec{v}(ski)$
|
trigramów znakówych $\vec{v}(Kow) + \vec{v}(owa) + \vec{v}(wal) + \vec{v}(als) + \vec{v}(lsk) + \vec{v}(ski)$
|
||||||
|
|
||||||
Cały czas nie rozpatrujemy jednak w tej metodzie kontekstu wyrazu.
|
Cały czas nie rozpatrujemy jednak w tej metodzie kontekstu wyrazu.
|
||||||
(/Renault/ w pewnym kontekście może być nazwą firmy, w innym —
|
(/Renault/ w pewnym kontekście może być nazwą firmy, w innym —
|
||||||
@ -852,7 +852,7 @@ Za pomocą wektora można przedstawić nie pojedynczy token $t^k$, lecz
|
|||||||
cały kontekst, dla /okna/ o długości $c$ będzie to kontekst $t^{k-c},\dots,t^k,\dots,t^{k+c}$.
|
cały kontekst, dla /okna/ o długości $c$ będzie to kontekst $t^{k-c},\dots,t^k,\dots,t^{k+c}$.
|
||||||
Innymi słowy klasyfikujemy token na podstawie jego samego oraz jego kontekstu:
|
Innymi słowy klasyfikujemy token na podstawie jego samego oraz jego kontekstu:
|
||||||
|
|
||||||
$$p(l^k=j) = \frac{e^{(W\vec{v}(t^{k-c},\dots,t^k,\dots,t^{k+c}))_j}}{Z_k}.$$
|
$$p(l^k=j) = \frac{e^{(W\vec{v}(t^{k-c},\dots,t^k,\dots,t^{k+c}))_j}}{Z}.$$
|
||||||
|
|
||||||
Zauważmy, że w tej metodzie w ogóle nie rozpatrujemy sensowności
|
Zauważmy, że w tej metodzie w ogóle nie rozpatrujemy sensowności
|
||||||
sekwencji wyjściowej (etykiet), np. może być bardzo mało
|
sekwencji wyjściowej (etykiet), np. może być bardzo mało
|
||||||
@ -861,12 +861,12 @@ prawdopodobne, że bezpośrednio po nazwisku występuje data.
|
|||||||
Napiszmy wzór określający prawdopodobieństwo całej sekwencji, nie
|
Napiszmy wzór określający prawdopodobieństwo całej sekwencji, nie
|
||||||
tylko pojedynczego tokenu. Na razie będzie to po prostu iloczyn poszczególnych wartości.
|
tylko pojedynczego tokenu. Na razie będzie to po prostu iloczyn poszczególnych wartości.
|
||||||
|
|
||||||
$$p(l) = \prod_{k=1}^K \frac{e^{(W\vec{v}(t^{k-c},\dots,t^k,\dots,t^{k+c}))_{l^k}}}{Z_k} = \frac{e^{\sum_{k=1}^K (W\vec{v}(t^{k-c},\dots,t^k,\dots,t^{k+c}))_{l^k}}}{\prod_{k=1}^K Z_k}$$
|
$$l = (l^1,\\dots,l^k), p(l) = \prod_{k=1}^K \frac{e^{(W\vec{v}(t^{k-c},\dots,t^k,\dots,t^{k+c}))_{l^k}}}{Z_k} = \frac{e^{\sum_{k=1}^K (W\vec{v}(t^{k-c},\dots,t^k,\dots,t^{k+c}))_{l^k}}}{\prod_{k=1}^K Z_k}$$
|
||||||
|
|
||||||
Reprezentacja kontekstu może być funkcją embeddingów wyrazów
|
Reprezentacja kontekstu może być funkcją embeddingów wyrazów
|
||||||
(zakładamy, że embedding nie zależy od pozycji słowa).
|
(zakładamy, że embedding nie zależy od pozycji słowa).
|
||||||
|
|
||||||
$$\vec{v}(t^{k-c},\dots,t^k,\dots,t^{k+c}) = f(\vec{E}(t^{k-c}),\dots,\vec{E}(t^k),\dots,\vec{E}({t^{k+c}})$$
|
$$\vec{v}(t^{k-c},\dots,t^k,\dots,t^{k+c}) = f(\vec{E}(t^{k-c}),\dots,\vec{E}(t^k),\dots,\vec{E}({t^{k+c}}))$$
|
||||||
|
|
||||||
** Warunkowe pola losowe
|
** Warunkowe pola losowe
|
||||||
|
|
||||||
@ -934,6 +934,8 @@ Aby uzyskać cały ciąg, kierujemy się /wstecz/ używając wskaźników:
|
|||||||
|
|
||||||
$$y^i = b[i, y^{i+1}]$$
|
$$y^i = b[i, y^{i+1}]$$
|
||||||
|
|
||||||
|
[[./crf-viterbi.png]]
|
||||||
|
|
||||||
*** Złożoność obliczeniowa
|
*** Złożoność obliczeniowa
|
||||||
|
|
||||||
Zauważmy, że rozmiar tabel $s$ i $b$ wynosi $K \times |L|$, a koszt
|
Zauważmy, że rozmiar tabel $s$ i $b$ wynosi $K \times |L|$, a koszt
|
||||||
@ -985,10 +987,10 @@ macierzy $W$ i $V$ (samego procesu uczenia nie pokazujemy tutaj):
|
|||||||
import torch.nn as nn
|
import torch.nn as nn
|
||||||
|
|
||||||
matrixW = torch.tensor(
|
matrixW = torch.tensor(
|
||||||
[[-1., 3.0, 3.0],
|
[[-1., 3.0, 3.0], # C
|
||||||
[0., 2.0, -2.0],
|
[0., 2.0, -2.0], # P
|
||||||
[4., -2.0, 3.0]])
|
[4., -2.0, 3.0]]) # R
|
||||||
|
# Ala ma powieść
|
||||||
# rozkład prawdopodobieństwa, gdyby patrzeć tylko na słowo
|
# rozkład prawdopodobieństwa, gdyby patrzeć tylko na słowo
|
||||||
nn.functional.softmax(matrixW @ onehot['powieść'], dim=0)
|
nn.functional.softmax(matrixW @ onehot['powieść'], dim=0)
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
@ -1005,9 +1007,10 @@ macierzy $W$ i $V$ (samego procesu uczenia nie pokazujemy tutaj):
|
|||||||
import torch.nn as nn
|
import torch.nn as nn
|
||||||
|
|
||||||
matrixV = torch.tensor(
|
matrixV = torch.tensor(
|
||||||
[[-0.5, 1.5, 2.0],
|
[[-0.5, 1.5, 2.0], # C
|
||||||
[0.5, 0.8, 2.5],
|
[0.5, 0.8, 2.5], # P
|
||||||
[2.0, 0.8, 0.2]])
|
[2.0, 0.8, 0.2]]) # R
|
||||||
|
# C P R
|
||||||
|
|
||||||
# co występuje po przymiotniku? - rozkład prawdopodobieństwa
|
# co występuje po przymiotniku? - rozkład prawdopodobieństwa
|
||||||
nn.functional.softmax(matrixV[1], dim=0)
|
nn.functional.softmax(matrixV[1], dim=0)
|
||||||
|
1
wyk/crf-viterbi.drawio
Normal file
1
wyk/crf-viterbi.drawio
Normal file
@ -0,0 +1 @@
|
|||||||
|
<mxfile host="app.diagrams.net" modified="2021-05-26T13:43:59.377Z" agent="5.0 (X11)" etag="4emVx1cQBqc02lQgOp_X" version="14.6.13" type="device"><diagram id="7pFB8Xg2-vPC_YrQG171" name="Page-1">5ZpNc5swEIZ/Dcd2jAQ2PsbYTQ/pTKaZTt3eFJCNWowYWY5xf31FEAa0dr4DDLl40IIk9Lyr1UrYwv4muxQkjb7xkMYWGoWZhecWQlPHVr+54VAYXIwLw1qwsDDZleGG/aPaONLWHQvptvGg5DyWLG0aA54kNJANGxGC75uPrXjc7DUlawoMNwGJofUnC2VUWD00qexfKVtHZc/2eFrc2ZDyYT2SbURCvq+Z8MLCvuBcFlebzKdxzq7kUtT7cubu8cUETeRTKiwvJ+j3gvFb5s3Dq/2PdDlzPulW7ki80wO+iIl+X3koIUiaqS5mkdzEymCry60U/C/1ecyFsiQ8UU/OViyODROJ2TpRxUC9JFX22R0Vkim8F/rGhoVh3s1sHzFJb1IS5H3ulS8pm+C7JKT5+49USb+qaoBmZxnYR7LKIynfUCkO6pGywliLob3RdnR5X2lbmqKarKWGRHvT+thyBVxdaObP4I8A/82A8SO3Z/gxwJ/yPaOW71rTmeU7ljcZrhq4b2o4QA0f0FfNqNB/jlFNFLJNi/VgxbKc2tuED7dJzIPE8Ali+L2IjQGx634TQyd8rFViE0Dse7+J4VHHxJAHAYUqR9JFLmTE1zwh8aKyGsGqeuaK81TD+0OlPOiEj+wkb6KlGZPL2vWvvKnPri7NM93yfeFQFhI13mW9UKuVF6tq96WyXjG+fFAPa6YY8J0I6AOwNCtJxJrKh/KuM04gaEwku2u+yJtL6vU90CIzT+s60E7fNdDWcwUL4ZUX0CAAiYW6c+u5jvtWyZjBuPPQXG75+hubTWSdx2Yb7t96NpOx27OUyYZbrp7lTCay7icm3Cb1bGKayLqfmHAvs7XcmQKp2hvZljsHAIezr/SMKT+GYrS6r7Rh0m8PFz844zoxF9rFD9NNNFz83uNZVbv0YeqKh0sfO0bs6dr5EUxqBxx7DOe3y5WgM/ow2Rtw6AHH6507P0wcBxx7DOfHo66d3wX08xwUFTkoGnQOCpZh1PVUgEf1NTGGvSEAy8K465kBNwQ1MfCHEgN1vUZjeIYF6NMkvMj/zJFjjMl2y4KmFi89QH38zB9yrHFyT3AqbU8+ydc9XHOmOq5kmhoyuQb/4lOErlVJABrC5jGvbTRUfKsADd1reRz2K+SFOcCz5X3dx6Dq+8+vso12PgaVpF/8NagdVzselpUeMn6pq03OLLptuRo8dLv9KIdujiGiPe044cGn11g1Cn/YSthTM9t5NyVUsfr/YDGLqj9h4sV/</diagram></mxfile>
|
BIN
wyk/crf-viterbi.png
Normal file
BIN
wyk/crf-viterbi.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 13 KiB |
Loading…
Reference in New Issue
Block a user