Skip to content

Commit

Permalink
Apply suggestions from code review
Browse files Browse the repository at this point in the history
Co-authored-by: FelipeAugustoMachado <[email protected]>
Co-authored-by: Fernando Matsumoto <[email protected]>
  • Loading branch information
3 people authored Jul 29, 2021
1 parent 05549e5 commit e3ca6f7
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 5 deletions.
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ O projeto será dividido em duas partes:

<img src="img/tarefa1.png" width="100%" />

Nessa primeira etapa do projeto você construirá um agente simples de Aprendizado por Reforço para entender um pouco melhor os principais conceitos da área aplicados em algum tipo de código. Aqui você aprenderá sobre o que é o clássico problema dos *k*-Armed Bandits, como conseguir estimar valores para determinada ações com base na recompensa, como selecionar ações com esse maior valor estimado e como conseguir explorar o ambiente para que o agente descubra novas ações. Você também aprenderá como treinar esse agentes criados.
Nessa primeira etapa do projeto você, construirá um agente simples de Aprendizado por Reforço para entender um pouco melhor os principais conceitos da área aplicados em algum tipo de código. Aqui você aprenderá sobre o que é o clássico problema dos *k*-Armed Bandits, como conseguir estimar valores para determinada ações com base na recompensa, como selecionar ações com esse maior valor estimado e como conseguir explorar o ambiente para que o agente descubra novas ações. Você também aprenderá como treinar esse agentes criados.

Para isso, recomendamos nosso **[📰 Turing Talks](https://medium.com/turing-talks/sua-primeira-ia-o-problema-dos-k-armed-bandits-cc63732567b2)** sobre e também a nossa implementação dele no nosso **[🎰 Repositório](https://github.com/turing-usp/Aprendizado-por-Reforco/tree/main/Aprendizado%20por%20Refor%C3%A7o%20Cl%C3%A1ssico/Bandits)**.

Expand All @@ -18,4 +18,4 @@ Comece agora mesmo acessando o notebook da [Tarefa 1 - Bandits](Tarefa%201%20-%2

Na segunda parte do projeto, você deverá implementar e comparar diferentes algoritmos de Aprendizado por Reforço Profundo utilizando a biblioteca [Stable Baselines 3](https://stable-baselines3.readthedocs.io/en/master/).

Este repositório já contém um tutorial simples de como utilizar a biblioteca, que você pode conferir **[aqui](Tutorial%20-%20Stable%20Baselines.ipynb)**!
Este repositório já contém um tutorial simples de como utilizar a biblioteca, que você pode conferir **[aqui](Tutorial%20-%20Stable%20Baselines.ipynb)**!
6 changes: 3 additions & 3 deletions Tarefa 1 - Bandits.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@
"source": [
"<h2 align=\"center\">💸 Falindo o Cassino de Monte Carlo 💸</h2>\n",
"\n",
"Imagine que após uma bem sucedida corrida no *Circuit de Monaco*, você decidiu dar uma pausa na adrenalina do asfalto e passar em outra renomada atração turística da cidade, o famoso **Cassino de Monte Carlo**.\n",
"Imagine que, após uma bem sucedida corrida no *Circuito de Mônaco*, você decidiu dar uma pausa na adrenalina do asfalto e passar em outra renomada atração turística da cidade, o famoso **Cassino de Monte Carlo**.\n",
"\n",
"Por conta de sua excentricidade e luxúria, os caça-níqueis (às vezes chamados de *one-armed bandits* em inglês) desse cassino funcionavam de uma maneira diferente que a de costume: cada máquina possuía 10 alavancas, com cada alavanca tendo uma certa chance de devolver uma certa quantidade de dinheiro. Como essas máquinas eram muito diferentes daquelas com que você estava acostumado, você decidiu observar um pouco alguns apostadores antes de participar do jogo. Com isso você observou que na média algumas alavancas devolviam mais dinheiro do que outras.\n",
"\n",
Expand Down Expand Up @@ -424,13 +424,13 @@
{
"source": [
"# 🧭 Criando um Algoritmo ε-Guloso\n",
"A ideia de um algoritmo é adicionar um parâmetro $\\varepsilon$, que controla um probabilidade do agente, realizar uma ação aleatória de exploração. A seguir discutimos um pouco mais sobre esses dois conceitos:\n",
"A ideia de um algoritmo é adicionar um parâmetro $\\varepsilon$, que controla a probabilidade do agente realizar uma ação aleatória de exploração. A seguir, discutimos um pouco mais sobre esses dois conceitos.\n",
"\n",
"## Exploração e Explotação\n",
"\n",
"Como no agente guloso nós sempre pegamos a ação de maior valor estimado até aquele momento, é fácil dele cair em soluções subótimas. Para resolver isso, introduzimos a ideia de **exploração** no algoritmo.\n",
"\n",
"Na exploração ele tentará conhecer melhor os valores de cada ação, para que na explotação ele já conheça uma variedade de valores diferentes e assim poderá escolher os melhores. Uma analogia com o mundo real seria o menu de um restaurante: imagine que você pediu um prato lá e acabou gostando deste prato, você poderia sempre pedi-lo quando fosse nesse restaurante e acabaria feliz, porém, se não se arriscar a pedir nenhum outro prato nunca saberá se pode haver um prato do qual você acabe gostando mais!\n",
"A exploração é uma maneira do agente identificar cenários ainda não vistos, conhecendo melhor o valor de cada ação. A explotação, por sua vez, é utilizar esse conhecimento para tomar a melhor decisão. Uma analogia com o mundo real seria o menu de um restaurante: imagine que você pediu um prato lá e acabou gostando deste prato, você poderia sempre pedi-lo quando fosse nesse restaurante e acabaria feliz, porém, se não se arriscar a pedir nenhum outro prato nunca saberá se pode haver um prato do qual você acabe gostando mais!\n",
"\n",
"## Definindo o Agente\n",
"No geral, o agente $\\varepsilon$-guloso é bem parecido com o agente guloso, a maior diferença sendo a presença desse novo parâmetro $\\varepsilon$ e a chance $\\varepsilon$ dele executar uma ação aleatória ao invés da de maior valor estimado.\n",
Expand Down

0 comments on commit e3ca6f7

Please sign in to comment.