116 lines
4.0 KiB
Plaintext
116 lines
4.0 KiB
Plaintext
{
|
||
"cells": [
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"## Modelowanie języka – laboratoria\n",
|
||
"### 22 maja 2024\n",
|
||
"# 10. Regularyzacja modeli neuronowych"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"## 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 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 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."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"\n",
|
||
"## Regularyzacja modelu\n",
|
||
"\n",
|
||
"Najbardziej popularne metody regularyzacji sieci neuronowych to:\n",
|
||
"\n",
|
||
"- regularyzacja L1\n",
|
||
"- regularyzacja L2\n",
|
||
"- dropout"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"### Regularyzacja L1 (*lasso*)\n",
|
||
"\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 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": [
|
||
"### Regularyzacja L2 (*ridge*)\n",
|
||
"\n",
|
||
"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": [
|
||
"### Dropout\n",
|
||
"\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",
|
||
"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: **50 punktów**\n",
|
||
"\n",
|
||
"Deadline: **5 czerwca 2024** przed zajęciami\n"
|
||
]
|
||
}
|
||
],
|
||
"metadata": {
|
||
"author": "Jakub Pokrywka",
|
||
"email": "kubapok@wmi.amu.edu.pl",
|
||
"kernelspec": {
|
||
"display_name": "Python 3",
|
||
"language": "python",
|
||
"name": "python3"
|
||
},
|
||
"lang": "pl",
|
||
"language_info": {
|
||
"codemirror_mode": {
|
||
"name": "ipython",
|
||
"version": 3
|
||
},
|
||
"file_extension": ".py",
|
||
"mimetype": "text/x-python",
|
||
"name": "python",
|
||
"nbconvert_exporter": "python",
|
||
"pygments_lexer": "ipython3",
|
||
"version": "3.8.3"
|
||
},
|
||
"subtitle": "0.Informacje na temat przedmiotu[ćwiczenia]",
|
||
"title": "Ekstrakcja informacji",
|
||
"year": "2021"
|
||
},
|
||
"nbformat": 4,
|
||
"nbformat_minor": 4
|
||
}
|