uczenie-maszynowe/wyk/15_Uczenie_przez_wzmacnianie.ipynb

309 lines
8.1 KiB
Plaintext
Raw Permalink Normal View History

2023-01-23 15:42:40 +01:00
{
"cells": [
{
"cell_type": "markdown",
2023-01-23 16:01:45 +01:00
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
2023-01-23 15:42:40 +01:00
"source": [
2023-01-23 16:01:45 +01:00
"### Uczenie maszynowe\n",
2023-01-23 15:42:40 +01:00
"# 15. Uczenie przez wzmacnianie i systemy dialogowe"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
2023-01-23 16:01:45 +01:00
"## 15.1. Uczenie przez wzmacnianie"
2023-01-23 15:42:40 +01:00
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"### Paradygmat uczenia przez wzmacnianie"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "subslide"
}
},
"source": [
"![Rys. 15.1. Paradygmaty uczenia maszynowego](paradygmaty_um.png \"Rys. 15.1. Paradygmaty uczenia maszynowego\")"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "subslide"
}
},
"source": [
"* Paradygmat uczenia przez wzmacnianie naśladuje sposób, w jaki uczą się dzieci.\n",
"* Interakcja ze środowiskiem."
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "subslide"
}
},
"source": [
"* W chwili $t$ agent w stanie $S_t$ podejmuje akcję $A_t$, następnie obserwuje zmianę w środowisku w stanie $S_{t+1}$ i otrzymuje nagrodę $R_{t+1}$ (rys. 13.2)."
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "fragment"
}
},
"source": [
2023-01-23 16:01:45 +01:00
"![Rys. 15.2. Agent i środowisko](agent_i_srodowisko.png \"Rys. 15.2. Agent i środowisko\")"
2023-01-23 15:42:40 +01:00
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "subslide"
}
},
"source": [
"* Celem jest znalezienie takiej taktyki wyboru kolejnej akcji, aby zmaksymalizować wartość końcowej nagrody. "
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "subslide"
}
},
"source": [
"Zastosowanie uczenia przez wzmacnianie:\n",
"* strategie gier\n",
"* systemy dialogowe\n",
"* sterowanie"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"### Uczenie przez wzmacnianie jako proces decyzyjny Markowa"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "subslide"
}
},
"source": [
"Paradygmat uczenia przez wzmacnianie można formalnie opisać jako proces decyzyjny Markowa:\n",
"$$ (S, A, T, R) $$\n",
"gdzie:\n",
"* $S$ skończony zbiór stanów\n",
"* $A$ skończony zbiór akcji\n",
"* $T \\colon A \\times S \\to S$ funkcja przejścia która opisuje, jak zmienia się środowisko pod wpływem wybranych akcji\n",
"* $R \\colon A \\times S \\to \\mathbb{R}$ funkcja nagrody"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "subslide"
}
},
"source": [
"Albo, jeśli przyjmiemy, że środowisko zmienia się w sposób niedeterministyczny:\n",
"$$ (S, A, P, R) $$\n",
"gdzie:\n",
"* $S$ skończony zbiór stanów\n",
"* $A$ skończony zbiór akcji\n",
"* $P \\colon A \\times S \\times S \\to [0, 1]$ prawdopodobieństwo przejścia\n",
"* $R \\colon A \\times S \\times S \\to \\mathbb{R}$ funkcja nagrody"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "subslide"
}
},
"source": [
"Na przykład, prawdopodobieństwo, że akcja $a$ spowoduje przejście ze stanu $s$ do $s'$:\n",
"$$ P_a(s, s') \\; = \\; \\mathbf{P}( \\, s_{t+1} = s' \\, | \\, s_t = s, a_t = a \\,) $$"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"### Strategia\n",
"\n",
"* Strategią (*policy*) nazywamy odwzorowanie $\\pi \\colon S \\to A$, które bieżącemu stanowi przyporządkuje kolejną akcję do wykonania.\n",
"* Algorytm uczenia przez wzmacnianie będzie starał się zoptymalizować strategię tak, żeby na koniec otrzymać jak najwyższą nagrodę.\n",
"* W chwili $t$, ostateczna końcowa nagroda jest zdefiniowana jako:\n",
"$$ R_t := r_{t+1} + \\gamma \\, r_{t+2} + \\gamma^2 \\, r_{t+3} + \\ldots = \\sum_{k=0}^T \\gamma^k \\, r_{t+k+1} \\; , $$\n",
2024-02-01 16:48:51 +01:00
"gdzie $0 < \\gamma < 1$ jest czynnikiem, który określa, jak bardzo bierzemy pod uwagę nagrody, które otrzymamy w odległej przyszłości."
2023-01-23 15:42:40 +01:00
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "subslide"
}
},
"source": [
"Algorytm szuka optymalnej strategii metodą prób i błędów podejmując akcje i obserwując ich wpływ na środowisko. W podejmowaniu decyzji pomoże mu oszacowanie wartości następujących funkcji:\n",
"* Funkcja wartości ($V$) odzwierciedla, jak atrakcyjne w dalekiej perspektywie jest przejście do danego stanu:\n",
"$$ V_{\\pi}(s) = \\mathbf{E}_{\\pi}(R \\, | \\, s_t = s) $$\n",
"* Funkcja $Q$ odzwierciedla, jak atrakcyjne w dalekiej perspektywie jest przejście do danego stanu przez podjęcie danej akcji:\n",
"$$ Q_{\\pi}(s, a) = \\mathbf{E}_{\\pi}(R \\, | \\, s_t = s, a_t = a) $$"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"## Algorytmy uczenia przez wzmacnianie\n",
"* Programowanie dynamiczne (DP):\n",
" * *bootstrapping* aktualizacja oczacowań dla danego stanu na podstawie oszacowań dla możliwych stanów następnych\n",
"* Metody Monte Carlo (MC)\n",
"* Uczenie oparte na różnicach czasowych (*temporal difference learning*, TD):\n",
" * *on-policy* aktualizacja bieżącej strategii:\n",
" * SARSA (*stateactionrewardstateaction*)\n",
" * *off-policy* eksploracja strategii innych niż bieżąca:\n",
" * *Q-Learning*\n",
" * *ActorCritic*"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Przykłady\n",
"\n",
"* Odwrócone wahadło (*cart and pole*): https://www.youtube.com/watch?v=46wjA6dqxOM\n",
"* Symulacja autonomicznego samochodu: https://www.youtube.com/watch?v=G-GpY7bevuw"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"# 15.2. Systemy dialogowe"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "subslide"
}
},
"source": [
"## Rodzaje systemów dialogowych\n",
"* Chatboty\n",
"* Systemy zorientowane na zadania (*task-oriented systems*, *goal-oriented systems*):\n",
" * szukanie informacji\n",
" * wypełnianie formularzy\n",
" * rozwiązywanie problemów\n",
" * systemy edukacyjne i tutorialowe\n",
" * inteligentni asystenci"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "subslide"
}
},
"source": [
"## Architektura systemu dialogowego\n",
"\n",
2023-01-23 16:01:45 +01:00
"(rys. 15.3)\n",
2023-01-23 15:42:40 +01:00
"\n",
2023-01-23 16:01:45 +01:00
"![Rys. 15.3. Architektura systemu dialogowego](system_dialogowy.png \"Rys. 15.3. Architektura systemu dialogowego\")"
2023-01-23 15:42:40 +01:00
]
}
],
"metadata": {
"author": "Paweł Skórzewski",
"celltoolbar": "Slideshow",
"email": "pawel.skorzewski@amu.edu.pl",
"kernelspec": {
2023-01-23 16:01:45 +01:00
"display_name": "Python 3 (ipykernel)",
2023-01-23 15:42:40 +01:00
"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",
2024-02-01 16:48:51 +01:00
"version": "3.10.12"
2023-01-23 15:42:40 +01:00
},
"livereveal": {
"start_slideshow_at": "selected",
"theme": "white"
},
"subtitle": "15.Uczenie przez wzmacnianie i systemy dialogowe[wykład]",
"title": "Uczenie maszynowe",
"vscode": {
"interpreter": {
"hash": "31f2aee4e71d21fbe5cf8b01ff0e069b9275f58929596ceb00d14d90e3e16cd6"
}
},
"year": "2021"
},
"nbformat": 4,
"nbformat_minor": 4
}