Lab. 10
This commit is contained in:
parent
4498fb3fa0
commit
1c2f3bf500
@ -4,19 +4,7 @@
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"![Logo 1](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech1.jpg)\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": [
|
||||
"## Modelowanie języka – laboratoria\n",
|
||||
"# Informacje ogólne"
|
||||
]
|
||||
},
|
||||
|
@ -4,13 +4,9 @@
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"![Logo 1](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech1.jpg)\n",
|
||||
"<div class=\"alert alert-block alert-info\">\n",
|
||||
"<h2> 1. <i>Kodowanie tekstu</i> [laboratoria]</h2> \n",
|
||||
"</div>\n",
|
||||
"\n",
|
||||
"![Logo 2](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech2.jpg)\n",
|
||||
"\n"
|
||||
"## Modelowanie języka – laboratoria\n",
|
||||
"### 28 lutego 2024\n",
|
||||
"# 1. Kodowanie tekstu\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
|
@ -4,13 +4,9 @@
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"![Logo 1](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech1.jpg)\n",
|
||||
"<div class=\"alert alert-block alert-info\">\n",
|
||||
"<h1> Modelowanie Języka </h1>\n",
|
||||
"<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)"
|
||||
"## Modelowanie języka – laboratoria\n",
|
||||
"### 6 marca 2024\n",
|
||||
"# 2. Język"
|
||||
]
|
||||
},
|
||||
{
|
||||
|
@ -4,8 +4,9 @@
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"<h1> Modelowanie języka </h1>\n",
|
||||
"<h2> 3. <i>Entropia</i> [ćwiczenia]</h2> "
|
||||
"## Modelowanie języka – laboratoria\n",
|
||||
"### 13 marca 2024\n",
|
||||
"# 3. Entropia"
|
||||
]
|
||||
},
|
||||
{
|
||||
@ -512,7 +513,7 @@
|
||||
"name": "python",
|
||||
"nbconvert_exporter": "python",
|
||||
"pygments_lexer": "ipython3",
|
||||
"version": "3.undefined.undefined"
|
||||
"version": "3.10.12"
|
||||
},
|
||||
"subtitle": "0.Informacje na temat przedmiotu[ćwiczenia]",
|
||||
"title": "Ekstrakcja informacji",
|
||||
|
@ -4,8 +4,9 @@
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"<h1> Modelowanie języka </h1>\n",
|
||||
"<h2> 4. <i>Statystyczny model językowy</i> [ćwiczenia]</h2> "
|
||||
"## Modelowanie języka – laboratoria\n",
|
||||
"### 20 marca 2024\n",
|
||||
"# 4. Statystyczny model językowy – część 1"
|
||||
]
|
||||
},
|
||||
{
|
||||
|
@ -4,8 +4,9 @@
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"<h1> Ekstrakcja informacji </h1>\n",
|
||||
"<h2> 5. <i>Statystyczny model językowy część 2</i> [ćwiczenia]</h2> "
|
||||
"## Modelowanie języka – laboratoria\n",
|
||||
"### 27 marca 2024\n",
|
||||
"# 4. Statystyczny model językowy – część 2"
|
||||
]
|
||||
},
|
||||
{
|
||||
|
@ -4,8 +4,9 @@
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"<h1> Modelowanie Języka</h1>\n",
|
||||
"<h2> 6. Biblioteki do statystycznych modeli językowych [ćwiczenia]</h2> "
|
||||
"## Modelowanie języka – laboratoria\n",
|
||||
"### 3 kwietnia 2024\n",
|
||||
"# 6. Biblioteki do statystycznych modeli językowych"
|
||||
]
|
||||
},
|
||||
{
|
||||
|
@ -4,8 +4,9 @@
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"<h1> Modelowanie Języka</h1>\n",
|
||||
"<h2> 8. <i>Neuronowe modele językowe</i> [ćwiczenia]</h2>"
|
||||
"## Modelowanie języka – laboratoria\n",
|
||||
"### 10 kwietnia 2024\n",
|
||||
"# 7. Neuronowe modele językowe"
|
||||
]
|
||||
},
|
||||
{
|
||||
|
@ -4,8 +4,9 @@
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"<h1> Modelowanie Języka</h1>\n",
|
||||
"<h2> 9. <i>Model neuronowy typu word2vec</i> [ćwiczenia]</h2> "
|
||||
"## Modelowanie języka – laboratoria\n",
|
||||
"### 17 kwietnia 2024\n",
|
||||
"# 8. Model neuronowy typu word2vec "
|
||||
]
|
||||
},
|
||||
{
|
||||
|
@ -4,8 +4,9 @@
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"<h1> Modelowanie Języka</h1>\n",
|
||||
"<h2> 10. <i>Model neuronowy rekurencyjny</i> [ćwiczenia]</h2> "
|
||||
"## Modelowanie języka – laboratoria\n",
|
||||
"### 24 kwietnia 2024\n",
|
||||
"# 9. Model neuronowy rekurencyjny"
|
||||
]
|
||||
},
|
||||
{
|
||||
|
@ -4,41 +4,36 @@
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"![Logo 1](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech1.jpg)\n",
|
||||
"<div class=\"alert alert-block alert-info\">\n",
|
||||
"<h1> Modelowanie Języka</h1>\n",
|
||||
"<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)"
|
||||
"## Modelowanie języka – laboratoria\n",
|
||||
"### 15 maja 2024\n",
|
||||
"# 10. Regularyzacja modeli neuronowych"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"## Overfitting modeli"
|
||||
]
|
||||
},
|
||||
{
|
||||
"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",
|
||||
"## Nadmierne dopasowanie (*overfitting*)\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",
|
||||
"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",
|
||||
"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",
|
||||
"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",
|
||||
"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",
|
||||
"## Regularyzacja modelu\n",
|
||||
"\n",
|
||||
"Najbardziej powszechne metody regularyzacji to:\n",
|
||||
"Najbardziej popularne metody regularyzacji sieci neuronowych to:\n",
|
||||
"\n",
|
||||
"- regularyzacja L1\n",
|
||||
"- regularyzacja L2\n",
|
||||
@ -49,50 +44,44 @@
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"### regularyzacja L1\n",
|
||||
"### Regularyzacja L1 (*lasso*)\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",
|
||||
"Wtedy funkcja kosztu powinna wyglądać: $L(x) = Error(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$."
|
||||
"Wtedy funkcja kosztu będzie wyglądać następująco: $L(x) = J(y,\\bar{y}) + \\lambda \\sum_{i=1}^{N}|w_i|$.\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"## Dropout\n",
|
||||
"### Regularyzacja L2 (*ridge*)\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",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"### Zadanie 1 \n",
|
||||
"### Dropout\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",
|
||||
"Warunki zaliczenia:\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",
|
||||
"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",
|
||||
"\n",
|
||||
"Punktacja:\n",
|
||||
"- 50 punktów z najlepszy wynik z 2 grup\n"
|
||||
"Punktacja: **50 punktów**\n",
|
||||
"\n",
|
||||
"Deadline: **29 maja 2024** przed zajęciami\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
|
Loading…
Reference in New Issue
Block a user