diff --git a/wyk/09_Rekurencyjny_model_jezyka.ipynb b/wyk/12_Rekurencyjny_model_jezyka.ipynb similarity index 93% rename from wyk/09_Rekurencyjny_model_jezyka.ipynb rename to wyk/12_Rekurencyjny_model_jezyka.ipynb index 2617202..459e1cd 100644 --- a/wyk/09_Rekurencyjny_model_jezyka.ipynb +++ b/wyk/12_Rekurencyjny_model_jezyka.ipynb @@ -1,5 +1,20 @@ { "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "![Logo 1](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech1.jpg)\n", + "
\n", + "

Modelowanie języka

\n", + "

12. Model języka oparty na rekurencyjnej sieci neuronowej [wykład]

\n", + "

Filip Graliński (2022)

\n", + "
\n", + "\n", + "![Logo 2](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech2.jpg)\n", + "\n" + ] + }, { "cell_type": "markdown", "metadata": {}, @@ -94,7 +109,7 @@ "Zauważmy, że stosowane tutaj podejście jest tożsame z zastosowaniem funkcji typu `fold`\n", "w językach funkcyjnych:\n", "\n", - "![img](./09_Rekurencyjny_model_jezyka/fold.png \"Opis funkcji foldl w języku Haskell\")\n", + "![img](./12_Rekurencyjny_model_jezyka/fold.png \"Opis funkcji foldl w języku Haskell\")\n", "\n", "W Pythonie odpowiednik `fold` jest funkcja `reduce` z pakietu `functools`:\n", "\n" @@ -171,7 +186,7 @@ "rekurencyjną, a czasami szerszą klasę sieci rekurencyjnych\n", "obejmujących również sieci GRU czy LSTM (zob. poniżej).\n", "\n", - "![img](./09_Rekurencyjny_model_jezyka/rnn.drawio.png \"Schemat prostego modelu języka opartego na zwykłej sieci rekurencyjnych\")\n", + "![img](./12_Rekurencyjny_model_jezyka/rnn.drawio.png \"Schemat prostego modelu języka opartego na zwykłej sieci rekurencyjnych\")\n", "\n", "**Uwaga**: powyższy schemat nie obejmuje już „całego” działania sieci,\n", " tylko pojedynczy krok czasowy.\n", @@ -258,7 +273,7 @@ "\n", "$$\\vec{s_t} = \\Gamma_u \\bullet \\vec{\\xi_t} + (1 - \\Gamma_u) \\bullet \\vec{s_{t-1}}.$$\n", "\n", - "Skąd się biorą bramki $\\Gamma_\\gamma$ i $\\Gamma_u$? Również z poprzedniego stanu i z biężacego wyrazu.\n", + "Skąd się biorą bramki $\\Gamma_\\gamma$ i $\\Gamma_u$? Również z poprzedniego stanu i z bieżącego wyrazu.\n", "\n", "$$\\Gamma_\\gamma = \\sigma(W_\\gamma[\\vec{s_{t-1}},E(w_t)] + \\vec{b_\\gamma}),$$\n", "\n", @@ -302,7 +317,7 @@ "metadata": {}, "source": [ "Komórka pamięci modulowana jest za pomocą bramki zapominania ($\\Gamma_f$) i bramki\n", - "wejścia ($\\Gamma_i$), bramki te określają na ile uwzględniamy, odpowiednio,\n", + "wejścia ($\\Gamma_i$), bramki te określają, na ile uwzględniamy, odpowiednio,\n", "poprzednią wartość komórki pamięci $\\vec{c_{t-1}}$ i wejście, a\n", "właściwie wejście w połączeniu z poprzednim stanem:\n", "\n", @@ -405,7 +420,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.10.2" + "version": "3.10.5" }, "org": null }, diff --git a/wyk/09_Rekurencyjny_model_jezyka.org b/wyk/12_Rekurencyjny_model_jezyka.org similarity index 97% rename from wyk/09_Rekurencyjny_model_jezyka.org rename to wyk/12_Rekurencyjny_model_jezyka.org index 3ec2335..0543094 100644 --- a/wyk/09_Rekurencyjny_model_jezyka.org +++ b/wyk/12_Rekurencyjny_model_jezyka.org @@ -53,7 +53,7 @@ Zauważmy, że stosowane tutaj podejście jest tożsame z zastosowaniem funkcji w językach funkcyjnych: #+CAPTION: Opis funkcji foldl w języku Haskell -[[./09_Rekurencyjny_model_jezyka/fold.png]] +[[./12_Rekurencyjny_model_jezyka/fold.png]] W Pythonie odpowiednik ~fold~ jest funkcja ~reduce~ z pakietu ~functools~: @@ -99,7 +99,7 @@ rekurencyjną, a czasami szerszą klasę sieci rekurencyjnych obejmujących również sieci GRU czy LSTM (zob. poniżej). #+CAPTION: Schemat prostego modelu języka opartego na zwykłej sieci rekurencyjnych -[[./09_Rekurencyjny_model_jezyka/rnn.drawio.png]] +[[./12_Rekurencyjny_model_jezyka/rnn.drawio.png]] *Uwaga*: powyższy schemat nie obejmuje już „całego” działania sieci, tylko pojedynczy krok czasowy. @@ -150,7 +150,7 @@ Ostateczna wartość stanu jest średnią ważoną poprzedniego stanu i bieżąc $$\vec{s_t} = \Gamma_u \bullet \vec{\xi_t} + (1 - \Gamma_u) \bullet \vec{s_{t-1}}.$$ -Skąd się biorą bramki $\Gamma_\gamma$ i $\Gamma_u$? Również z poprzedniego stanu i z biężacego wyrazu. +Skąd się biorą bramki $\Gamma_\gamma$ i $\Gamma_u$? Również z poprzedniego stanu i z bieżącego wyrazu. $$\Gamma_\gamma = \sigma(W_\gamma[\vec{s_{t-1}},E(w_t)] + \vec{b_\gamma}),$$ @@ -170,7 +170,7 @@ niż GRU, jest od niej nieco bardziej skomplikowana. *** Wzory Komórka pamięci modulowana jest za pomocą bramki zapominania ($\Gamma_f$) i bramki -wejścia ($\Gamma_i$), bramki te określają na ile uwzględniamy, odpowiednio, +wejścia ($\Gamma_i$), bramki te określają, na ile uwzględniamy, odpowiednio, poprzednią wartość komórki pamięci $\vec{c_{t-1}}$ i wejście, a właściwie wejście w połączeniu z poprzednim stanem: diff --git a/wyk/09_Rekurencyjny_model_jezyka/fold.png b/wyk/12_Rekurencyjny_model_jezyka/fold.png similarity index 100% rename from wyk/09_Rekurencyjny_model_jezyka/fold.png rename to wyk/12_Rekurencyjny_model_jezyka/fold.png diff --git a/wyk/09_Rekurencyjny_model_jezyka/rnn.drawio b/wyk/12_Rekurencyjny_model_jezyka/rnn.drawio similarity index 100% rename from wyk/09_Rekurencyjny_model_jezyka/rnn.drawio rename to wyk/12_Rekurencyjny_model_jezyka/rnn.drawio diff --git a/wyk/09_Rekurencyjny_model_jezyka/rnn.drawio.png b/wyk/12_Rekurencyjny_model_jezyka/rnn.drawio.png similarity index 100% rename from wyk/09_Rekurencyjny_model_jezyka/rnn.drawio.png rename to wyk/12_Rekurencyjny_model_jezyka/rnn.drawio.png