moj-2024/lab/10_Regularyzacja_modeli_neuronowych.ipynb
Paweł Skórzewski 9b538831ae Lab. 10
2024-05-22 11:47:50 +02:00

116 lines
4.0 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{
"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
}