Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions Capítulo 1/Ex_1.03.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,3 +27,8 @@ Resposta 3:
```
Neste caso o algoritmo aprenderia com ele mesmo qual seria a melhor jogada para um determinado estado, porém poderia ocorrer um certo bias devido ao inimigo sempre repetir algum determinado passo acreditando que aquele movimento seria o melhor movimento para o estado, porém ao jogar com um ser humano o oponente poderia realizar uma jogada 'blafer' para confundir o algoritmo e assim o ser humano poderia tirar vantagem sobre o jogo.
```

---
Resposta 4:

As recompensas obtidas dessas seriam subótimas em relação à uma política $\varepsilon-greedy$, por exemplo. Dado que a ação gulosa escolhida veio necessariamente de um conhecimento anterior que pode estar limitado ou viesado em relação ao problema atual, disperdiçando a oportunidade então de explorar novas ações que podem ser melhores que a ação gulosa atual.
68 changes: 68 additions & 0 deletions Capítulo 3/Ex_3.10(1).ipynb
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"\n",
"\n",
"Os retornos podem ser descritos como: \n",
"\n",
"$$G_{t} = R_{t+1} + \\gamma R_{t+2} + \\gamma^{2} R_{t+3}... = \\sum_{k=0}^{+\\infty}\\gamma^{k}R_{t+k+1}$$ \n",
"para o caso de recompensas constantes igual a $1$, então: \n",
"$$G_{t} = 1 + \\gamma + \\gamma^{2}... = \\sum_{k=0}^{+\\infty}\\gamma^{k} = \\frac{1}{1-\\gamma}$$ \n",
" \n",
"Para provar essa última relação, basta lembramos do conceito de limite de uma sequência numérica, em que uma sequência numérica $a_{n}$ tem limite $L$ se, e somente se:\n",
"$$\\forall \\varepsilon >0;\\exists n_{0} \\in \\mathbb{N} : n>n_{0}\\Rightarrow \\mid a_{n}-L \\mid < \\varepsilon$$\n",
"Para nossa sequência numérica, temos que provar então que para qualquer $\\varepsilon$, existe $n$ tal que: \n",
"$$\\mid \\sum_{k=0}^{n}\\gamma^{k} - \\frac{1}{1-\\gamma}\\mid < \\varepsilon$$\n",
"$$\\mid \\frac{1 - \\gamma^{n+1}}{1 - \\gamma} - \\frac{1}{1 - \\gamma} \\mid < \\varepsilon$$\n",
"$$\\mid \\frac{1 - \\gamma^{n+1} - 1}{1 - \\gamma} \\mid < \\varepsilon$$\n",
"$$\\mid \\frac{ - \\gamma^{n+1}}{1 - \\gamma} \\mid = \\mid \\frac{\\gamma^{n+1}}{1 - \\gamma} \\mid < \\varepsilon$$\n",
"$$\\mid \\gamma^{n}\\frac{\\gamma}{1-\\gamma} \\mid < \\varepsilon$$\n",
"\n",
"$$\\mid \\gamma^{n} \\mid < \\varepsilon\\mid\\frac{1 - \\gamma}{\\gamma}\\mid$$ pois $\\mid \\gamma \\mid <1 \\Rightarrow \\mid \\frac{1 - \\gamma}{\\gamma} \\mid >0$. \n",
"Aplicando o logaritmo natural (uma função injetora), em ambos os lados da desigualdade, temos: \n",
"$$nlog(\\mid \\gamma \\mid) < log(\\varepsilon\\mid\\frac{1 - \\gamma}{\\gamma}\\mid)$$\n",
"Que implica em: \n",
"$$nlog(\\mid \\gamma \\mid) < log(\\varepsilon\\mid\\frac{1 - \\gamma}{\\gamma}\\mid)$$\n",
"$$n > \\frac{log(\\varepsilon\\mid\\frac{1 - \\gamma}{\\gamma}\\mid)}{log(\\mid \\gamma \\mid)} $$\n",
"pois como $\\mid \\gamma \\mid < 1$, então $log(\\mid \\gamma \\mid) < 0$. \n",
"Portanto, para qualquer $\\varepsilon > 0$ escolhido, basta escolher um $n$ natural tal que $n > \\frac{log(\\varepsilon\\mid\\frac{1 - \\gamma}{\\gamma}\\mid)}{log(\\mid \\gamma \\mid)} $. \n",
"Logo é verdade que $G_{t} = 1 + \\gamma + \\gamma^{2}... = \\sum_{k=0}^{+\\infty}\\gamma^{k} = \\frac{1}{1-\\gamma}$. \n",
"Q.E.D.\n",
"\n",
"\n",
"\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"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.5"
}
},
"nbformat": 4,
"nbformat_minor": 4
}
21 changes: 21 additions & 0 deletions Capítulo 5/Ex_5.04.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
---
output: pdf_document
---

Lembrando que foi estabelecido que:

$Q_{n+1} = \frac{1}{n}\sum_{i=1}^{n}R_{i}$
$Q_{n+1} = \frac{1}{n}(R_{n} + \sum_{i=1}^{n-1}R_{i})$
$Q_{n+1} = \frac{1}{n}(R_{n} + (n-1)\frac{1}{(n-1)}\sum_{i=1}^{n-1}R_{i})$
$Q_{n+1} = \frac{1}{n}(R_{n} + (n-1)Q_{n})$
$Q_{n+1} = \frac{1}{n}(R_{n} + nQ_{n} - Q_{n})$
$Q_{n+1} = Q_{n} + \frac{1}{n}(R_{n} - Q_{n})$

De maneira similar, faremos então a modificação no algoritmo de Monte Carlo ES:

$Q_{n}(S_{t},A_{t}) = \frac{1}{n}\sum_{i=1}^{n}G_{i}(S_{t},A_{t})$
$Q_{n}(S_{t},A_{t}) = \frac{1}{n}(G_{n}(S_{t},A_{t}) + \sum_{i=1}^{n-1}G_{i}(S_{t},A_{t}))$
$Q_{n}(S_{t},A_{t}) = \frac{1}{n}(G_{n}(S_{t},A_{t}) + (n-1)\frac{1}{(n-1)}\sum_{i=1}^{n-1}G_{i}(S_{t},A_{t}))$
$Q_{n}(S_{t},A_{t}) = \frac{1}{n}(G_{n}(S_{t},A_{t}) + (n-1)Q_{n-1}(S_{t},A_{t}))$
$Q_{n}(S_{t},A_{t}) = \frac{1}{n}(G_{n}(S_{t},A_{t}) + nQ_{n-1}(S_{t},A_{t}) - Q_{n-1}(S_{t},A_{t}))$
$Q_{n}(S_{t},A_{t}) = Q_{n-1}(S_{t},A_{t}) + \frac{1}{n}(G_{n}(S_{t},A_{t}) - Q_{n-1}(S_{t},A_{t}))$
2 changes: 2 additions & 0 deletions Capítulo 6/Ex_6.11.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@

O Q-learning pode ser entendido como um método de controle *off-policy* pois a estimação dos retornos para cada par estado-ação é feita assumindo uma política gulosa, mesmo que essa não esteja sendo empregada.
6 changes: 6 additions & 0 deletions Capítulo 9/Ex_9.03.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
output: pdf_document
---

O espaço de características $\texttt{x}(s)$ contém 9 *features*. Como $9$ é uma potência de $3$, temos que $9 = 3^{k}$, implicando que:
$9 = (n+1)^{2}$ para $n=1$ ou $9 = (n+1)^{1}$ para $n=8$. Como há duas escolhas possíveis para os estados no problema, então $n=2$.