uczenie-maszynowe/wyk/15_Uczenie_przez_wzmacnianie.ipynb
2024-02-01 16:48:51 +01:00

309 lines
8.1 KiB
Plaintext
Raw 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": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"### Uczenie maszynowe\n",
"# 15. Uczenie przez wzmacnianie i systemy dialogowe"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"## 15.1. Uczenie przez wzmacnianie"
]
},
{
"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": [
"![Rys. 15.2. Agent i środowisko](agent_i_srodowisko.png \"Rys. 15.2. Agent i środowisko\")"
]
},
{
"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",
"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."
]
},
{
"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",
"(rys. 15.3)\n",
"\n",
"![Rys. 15.3. Architektura systemu dialogowego](system_dialogowy.png \"Rys. 15.3. Architektura systemu dialogowego\")"
]
}
],
"metadata": {
"author": "Paweł Skórzewski",
"celltoolbar": "Slideshow",
"email": "pawel.skorzewski@amu.edu.pl",
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"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.10.12"
},
"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
}