Lab. 10
This commit is contained in:
parent
4498fb3fa0
commit
1c2f3bf500
@ -4,19 +4,7 @@
|
|||||||
"cell_type": "markdown",
|
"cell_type": "markdown",
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"source": [
|
"source": [
|
||||||
"![Logo 1](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech1.jpg)\n",
|
"## Modelowanie języka – laboratoria\n",
|
||||||
"<div class=\"alert alert-block alert-info\">\n",
|
|
||||||
"<h1> Modelowanie języka </h1>\n",
|
|
||||||
"<h2> 0. <i>Informacje na temat przedmiotu</i> [ćwiczenia]</h2> \n",
|
|
||||||
"</div>\n",
|
|
||||||
"\n",
|
|
||||||
"![Logo 2](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech2.jpg)"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"cell_type": "markdown",
|
|
||||||
"metadata": {},
|
|
||||||
"source": [
|
|
||||||
"# Informacje ogólne"
|
"# Informacje ogólne"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
@ -4,13 +4,9 @@
|
|||||||
"cell_type": "markdown",
|
"cell_type": "markdown",
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"source": [
|
"source": [
|
||||||
"![Logo 1](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech1.jpg)\n",
|
"## Modelowanie języka – laboratoria\n",
|
||||||
"<div class=\"alert alert-block alert-info\">\n",
|
"### 28 lutego 2024\n",
|
||||||
"<h2> 1. <i>Kodowanie tekstu</i> [laboratoria]</h2> \n",
|
"# 1. Kodowanie tekstu\n"
|
||||||
"</div>\n",
|
|
||||||
"\n",
|
|
||||||
"![Logo 2](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech2.jpg)\n",
|
|
||||||
"\n"
|
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -4,13 +4,9 @@
|
|||||||
"cell_type": "markdown",
|
"cell_type": "markdown",
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"source": [
|
"source": [
|
||||||
"![Logo 1](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech1.jpg)\n",
|
"## Modelowanie języka – laboratoria\n",
|
||||||
"<div class=\"alert alert-block alert-info\">\n",
|
"### 6 marca 2024\n",
|
||||||
"<h1> Modelowanie Języka </h1>\n",
|
"# 2. Język"
|
||||||
"<h2> 2. <i>Język</i> [laboratoria]</h2> \n",
|
|
||||||
"</div>\n",
|
|
||||||
"\n",
|
|
||||||
"![Logo 2](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech2.jpg)"
|
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -4,8 +4,9 @@
|
|||||||
"cell_type": "markdown",
|
"cell_type": "markdown",
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"source": [
|
"source": [
|
||||||
"<h1> Modelowanie języka </h1>\n",
|
"## Modelowanie języka – laboratoria\n",
|
||||||
"<h2> 3. <i>Entropia</i> [ćwiczenia]</h2> "
|
"### 13 marca 2024\n",
|
||||||
|
"# 3. Entropia"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -512,7 +513,7 @@
|
|||||||
"name": "python",
|
"name": "python",
|
||||||
"nbconvert_exporter": "python",
|
"nbconvert_exporter": "python",
|
||||||
"pygments_lexer": "ipython3",
|
"pygments_lexer": "ipython3",
|
||||||
"version": "3.undefined.undefined"
|
"version": "3.10.12"
|
||||||
},
|
},
|
||||||
"subtitle": "0.Informacje na temat przedmiotu[ćwiczenia]",
|
"subtitle": "0.Informacje na temat przedmiotu[ćwiczenia]",
|
||||||
"title": "Ekstrakcja informacji",
|
"title": "Ekstrakcja informacji",
|
||||||
|
@ -4,8 +4,9 @@
|
|||||||
"cell_type": "markdown",
|
"cell_type": "markdown",
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"source": [
|
"source": [
|
||||||
"<h1> Modelowanie języka </h1>\n",
|
"## Modelowanie języka – laboratoria\n",
|
||||||
"<h2> 4. <i>Statystyczny model językowy</i> [ćwiczenia]</h2> "
|
"### 20 marca 2024\n",
|
||||||
|
"# 4. Statystyczny model językowy – część 1"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -4,8 +4,9 @@
|
|||||||
"cell_type": "markdown",
|
"cell_type": "markdown",
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"source": [
|
"source": [
|
||||||
"<h1> Ekstrakcja informacji </h1>\n",
|
"## Modelowanie języka – laboratoria\n",
|
||||||
"<h2> 5. <i>Statystyczny model językowy część 2</i> [ćwiczenia]</h2> "
|
"### 27 marca 2024\n",
|
||||||
|
"# 4. Statystyczny model językowy – część 2"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -4,8 +4,9 @@
|
|||||||
"cell_type": "markdown",
|
"cell_type": "markdown",
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"source": [
|
"source": [
|
||||||
"<h1> Modelowanie Języka</h1>\n",
|
"## Modelowanie języka – laboratoria\n",
|
||||||
"<h2> 6. Biblioteki do statystycznych modeli językowych [ćwiczenia]</h2> "
|
"### 3 kwietnia 2024\n",
|
||||||
|
"# 6. Biblioteki do statystycznych modeli językowych"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -4,8 +4,9 @@
|
|||||||
"cell_type": "markdown",
|
"cell_type": "markdown",
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"source": [
|
"source": [
|
||||||
"<h1> Modelowanie Języka</h1>\n",
|
"## Modelowanie języka – laboratoria\n",
|
||||||
"<h2> 8. <i>Neuronowe modele językowe</i> [ćwiczenia]</h2>"
|
"### 10 kwietnia 2024\n",
|
||||||
|
"# 7. Neuronowe modele językowe"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -4,8 +4,9 @@
|
|||||||
"cell_type": "markdown",
|
"cell_type": "markdown",
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"source": [
|
"source": [
|
||||||
"<h1> Modelowanie Języka</h1>\n",
|
"## Modelowanie języka – laboratoria\n",
|
||||||
"<h2> 9. <i>Model neuronowy typu word2vec</i> [ćwiczenia]</h2> "
|
"### 17 kwietnia 2024\n",
|
||||||
|
"# 8. Model neuronowy typu word2vec "
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -4,8 +4,9 @@
|
|||||||
"cell_type": "markdown",
|
"cell_type": "markdown",
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"source": [
|
"source": [
|
||||||
"<h1> Modelowanie Języka</h1>\n",
|
"## Modelowanie języka – laboratoria\n",
|
||||||
"<h2> 10. <i>Model neuronowy rekurencyjny</i> [ćwiczenia]</h2> "
|
"### 24 kwietnia 2024\n",
|
||||||
|
"# 9. Model neuronowy rekurencyjny"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -4,41 +4,36 @@
|
|||||||
"cell_type": "markdown",
|
"cell_type": "markdown",
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"source": [
|
"source": [
|
||||||
"![Logo 1](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech1.jpg)\n",
|
"## Modelowanie języka – laboratoria\n",
|
||||||
"<div class=\"alert alert-block alert-info\">\n",
|
"### 15 maja 2024\n",
|
||||||
"<h1> Modelowanie Języka</h1>\n",
|
"# 10. Regularyzacja modeli neuronowych"
|
||||||
"<h2> 11. <i>Regularyzacja modeli neuronowych</i> [ćwiczenia]</h2> \n",
|
|
||||||
"<h3> Jakub Pokrywka (2022)</h3>\n",
|
|
||||||
"</div>\n",
|
|
||||||
"\n",
|
|
||||||
"![Logo 2](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech2.jpg)"
|
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "markdown",
|
"cell_type": "markdown",
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"source": [
|
"source": [
|
||||||
"## Overfitting modeli"
|
"## Nadmierne dopasowanie (*overfitting*)\n",
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"cell_type": "markdown",
|
|
||||||
"metadata": {},
|
|
||||||
"source": [
|
|
||||||
"Trenując model uczenia maszynowego zależy nam, aby model miał dobrą zdolność predykcji. Zdolności predykcyjne powinny być wysokie na jakichkolwiek danych, a nie wyłącznie na tych, na których model się uczył. \n",
|
|
||||||
"\n",
|
"\n",
|
||||||
|
"Gdy uczymy model uczenia maszynowego, zależy nam, aby model miał dobrą zdolność predykcji. Zdolności predykcyjne powinny być wysokie na jakichkolwiek danych, a nie wyłącznie na tych, na których model się uczył. \n",
|
||||||
"\n",
|
"\n",
|
||||||
"Zjawiskiem overfittingu modeli nazywamy nadmierne dopasowanie modelu do zbioru trenującego. Skutkuje to tym, że model świetnie działa na zbiorze trenującym, ale źle dla innych danych, na których się nie uczył.\n",
|
"Zjawiskiem overfittingu modeli nazywamy nadmierne dopasowanie modelu do zbioru uczącego. Skutkuje to tym, że model świetnie działa na zbiorze uczącym, ale źle dla innych danych, na których się nie uczył.\n",
|
||||||
"\n",
|
"\n",
|
||||||
"Overfitting modelu łatwo sprawdzić jako różnicę w metrykach między zbiorem trenującym a zbiorem deweloperskim/testowym. Nim większa jest ta różnica, tym większy overfitting modelu.\n",
|
"Overfitting modelu łatwo sprawdzić jako różnicę w metrykach między zbiorem uczącym a zbiorem walidacyjnym/testowym. Im większa jest ta różnica, tym większy overfitting modelu.\n",
|
||||||
"\n",
|
"\n",
|
||||||
"Zazwyczaj overfitting będzie występował do pewnego stopnia. Nie należy się tym przejmować. Najważniejsze jest, aby model miał jak najlepszy wynik metryki na zbiorze deweloperskim/testowym. Nawet kosztem overfittingu.\n",
|
"Zazwyczaj overfitting będzie występował do pewnego stopnia. Nie należy się tym przejmować. Najważniejsze jest, aby model miał jak najlepszy wynik metryki na zbiorze deweloperskim/testowym. Nawet kosztem overfittingu.\n",
|
||||||
"\n",
|
"\n",
|
||||||
"Aby zmniejszyć overfitting (a tym samym zwiększyć wyniki modelu na zbiorze deweloperskim/testowym), korzysta się z metod regularyzacji.\n",
|
"Aby zmniejszyć overfitting (a tym samym zwiększyć wyniki modelu na zbiorze deweloperskim/testowym), korzysta się z metod regularyzacji."
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "markdown",
|
||||||
|
"metadata": {},
|
||||||
|
"source": [
|
||||||
"\n",
|
"\n",
|
||||||
"## Regularyzacja modelu\n",
|
"## Regularyzacja modelu\n",
|
||||||
"\n",
|
"\n",
|
||||||
"Najbardziej powszechne metody regularyzacji to:\n",
|
"Najbardziej popularne metody regularyzacji sieci neuronowych to:\n",
|
||||||
"\n",
|
"\n",
|
||||||
"- regularyzacja L1\n",
|
"- regularyzacja L1\n",
|
||||||
"- regularyzacja L2\n",
|
"- regularyzacja L2\n",
|
||||||
@ -49,50 +44,44 @@
|
|||||||
"cell_type": "markdown",
|
"cell_type": "markdown",
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"source": [
|
"source": [
|
||||||
"### regularyzacja L1\n",
|
"### Regularyzacja L1 (*lasso*)\n",
|
||||||
"\n",
|
"\n",
|
||||||
"Czynnik regularyzacyjny to $\\lambda \\sum_{i=1}^{N}|w_i|$, gdzie $0<\\lambda$ to parametr, a $w_i$ to parametry modelu.\n",
|
"Czynnik regularyzacyjny to $\\lambda \\sum_{i=1}^{N}|w_i|$, gdzie $0<\\lambda$ to współczynnik regularyzacji, a $w_i$ to parametry modelu.\n",
|
||||||
"\n",
|
"\n",
|
||||||
"Wtedy funkcja kosztu powinna wyglądać: $L(x) = Error(y,\\bar{y}) + \\lambda \\sum_{i=1}^{N}|w_i|$.\n",
|
"Wtedy funkcja kosztu będzie wyglądać następująco: $L(x) = J(y,\\bar{y}) + \\lambda \\sum_{i=1}^{N}|w_i|$.\n"
|
||||||
"\n",
|
|
||||||
"\n",
|
|
||||||
"### regularyzacja L2\n",
|
|
||||||
"\n",
|
|
||||||
"\n",
|
|
||||||
"Czynnik regularyzacyjny to $\\lambda \\sum_{i=1}^{N}(w_i)^2$, gdzie $0<\\lambda$ to parametr, a $w_i$ to parametry modelu.\n",
|
|
||||||
"\n",
|
|
||||||
"Wtedy funkcja kosztu powinna wyglądać: $L(x) = Error(y,\\bar{y}) + \\lambda \\sum_{i=1}^{N}(w_i)^2$."
|
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "markdown",
|
"cell_type": "markdown",
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"source": [
|
"source": [
|
||||||
"## Dropout\n",
|
"### Regularyzacja L2 (*ridge*)\n",
|
||||||
"\n",
|
"\n",
|
||||||
"Dropout to technika polegająca na losowym wygaszania wyjściu z neuronów (przyjmowanie wartości $0$) podczas treningu. Prawpodopobieństwo ignorowania to parametr $p$. Podczas inferencji nie wygasza sie wyjścia, natomiast wszystkie wartości przemnaża się przez $1-p$."
|
"Czynnik regularyzacyjny to $\\lambda \\sum_{i=1}^{N}(w_i)^2$, gdzie $0<\\lambda$ to współczynnik regularyzacji, a $w_i$ to parametry modelu.\n",
|
||||||
|
"\n",
|
||||||
|
"Wtedy funkcja kosztu będzie wyglądać następująco: $L(x) = J(y,\\bar{y}) + \\lambda \\sum_{i=1}^{N}(w_i)^2$."
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "markdown",
|
"cell_type": "markdown",
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"source": [
|
"source": [
|
||||||
"### Zadanie 1 \n",
|
"### Dropout\n",
|
||||||
"\n",
|
"\n",
|
||||||
"Wzorując się na poprzednich zajęciach zaimplementować powyższe metody reguluryzacji i zgłosić na gonito.\n",
|
"Dropout to technika regularyzacji sieci neuronowych polegająca na losowym wygaszaniu wyjścia z neuronów (przyjmowanie wartości $0$) podczas uczenia sieci. Dropout parametryzowany jest przez *prawpodopobieństwo ignorowania* (parametr $p$). Podczas inferencji nie wygasza się wyjścia, natomiast wszystkie wartości przemnaża się przez $1-p$."
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "markdown",
|
||||||
|
"metadata": {},
|
||||||
|
"source": [
|
||||||
|
"## Zadanie\n",
|
||||||
"\n",
|
"\n",
|
||||||
"Warunki zaliczenia:\n",
|
"Wzorując się na zadaniach z poprzednich zajęć, zaimplementuj powyższe metody regularyzacji w rozwiązaniu zadania *Challenging America word gap prediction* (https://gonito.csi.wmi.amu.edu.pl/challenge/challenging-america-word-gap-prediction).\n",
|
||||||
"- wynik widoczny na platformie zarówno dla dev i dla test\n",
|
|
||||||
"- wynik dla dev i test lepszy (niższy) niż 1024.00 (liczone przy pomocy geval)\n",
|
|
||||||
"- deadline do końca dnia 24.04\n",
|
|
||||||
"- commitując rozwiązanie proszę również umieścić rozwiązanie w pliku /run.py (czyli na szczycie katalogu). Można przekonwertować jupyter do pliku python przez File → Download as → Python. Rozwiązanie nie musi być w pythonie, może być w innym języku.\n",
|
|
||||||
"- zadania wykonujemy samodzielnie\n",
|
|
||||||
"- w nazwie commita podaj nr indeksu\n",
|
|
||||||
"- w tagach podaj **neural-network** oraz **bigram**!\n",
|
|
||||||
"- uwaga na specjalne znaki \\\\n w pliku 'in.tsv' oraz pierwsze kolumny pliku in.tsv (które należy usunąć)\n",
|
|
||||||
"\n",
|
"\n",
|
||||||
"Punktacja:\n",
|
"Punktacja: **50 punktów**\n",
|
||||||
"- 50 punktów z najlepszy wynik z 2 grup\n"
|
"\n",
|
||||||
|
"Deadline: **29 maja 2024** przed zajęciami\n"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
Loading…
Reference in New Issue
Block a user