Skip to content

Commit

Permalink
pré-aula da atividade de implementação do mountain car
Browse files Browse the repository at this point in the history
  • Loading branch information
fbarth committed Feb 26, 2025
1 parent 9d5371e commit 1ac0b4a
Show file tree
Hide file tree
Showing 4 changed files with 69 additions and 3 deletions.
1 change: 1 addition & 0 deletions docs/assessment.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ A avaliação dos estudantes será realizada através de **exercícios**, **proj
| [Manipulando os hiperparâmetros do Q-Learning](./classes/05_x_hyperparameters/index.md) | 13/02/2025 |
| [Implementação do SARSA](./classes/05_x_sarsa/index.md) | 20/02/2025 |
| [Ambientes não determinísticos](./classes/06_non_determ/index.md) | 24/02/2025 |
| [Implementação de agente para o ambiente Mountain Car](./classes/09_more_complex/index.md) | 27/02/2025 |

## Projetos

Expand Down
52 changes: 52 additions & 0 deletions docs/classes/06_non_determ_comments/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,56 @@ Seguem exemplos de resultados bem apresentados.

<img src="img/frozenlake_learning_qlearning_sarsa_option-2.jpg" style="height: 500px;"/>

## Validação final do modelo

Para validar o modelo treinado, foi utilizado o código abaixo:

```python
import gymnasium as gym
import numpy as np
from numpy import loadtxt

env = gym.make('FrozenLake-v1', render_mode='ansi').env
q_table = loadtxt('data/q-table-frozen-lake-qlearning_conf1.csv', delimiter=',')

rewards_list = []
for j in range(0,100):
rewards = 0
for i in range(0,100):
(state, _) = env.reset()
done = False
while not done:
action = np.argmax(q_table[state])
state, reward, done, _, info = env.step(action)
rewards += reward
rewards_list.append(rewards)

print(f'média = {np.mean(rewards_list)}, desvio padrão = {np.std(rewards_list)}')
```

Para a primeira opção de configuração de hiperparâmetros, o resultado foi:

```
média = 82.68, desvio padrão = 3.5408473562129164
```

Para a segunda opção:

```
média = 5.22, desvio padrão = 1.967638178121171
```

Reforçando que a segunda configuração não foi capaz de aprender a tarefa.

Inclusive, o problema da segunda configuração está no valor de $\epsilon_{dec}$ que é muito alto. Se mudarmos o valor para 0.999, o resultado melhora:

```
média = 78.93, desvio padrão = 4.667451124543244
```


<!--
## Alguns hiperparâmetros utilizados e com bons resultados
Expand All @@ -21,3 +71,5 @@ Seguem exemplos de resultados bem apresentados.
| SARSA (Segunda Melhor) | 0.05 | 0.95 | 0.95 | 0.0001 | 0.9996 | 20_000 | 4x4 | 0.808 |
Estes valores foram obtidos pelos alunos Ricardo Rodrigues e Pedro Henrique no 1o semestre de 2024.
-->
15 changes: 14 additions & 1 deletion docs/classes/09_more_complex/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -184,4 +184,17 @@ env.close()

* Faça uma análise do aprendizado do agente mais robusta. Execute o treinamento do agente diversas vezes (por exemplo, 5 vezes) e analise a variabilidade do aprendizado.

* Teste diferentes hiperparâmetros e analise o impacto no aprendizado do agente. Faça um gráfico com várias curvas de aprendizado.
* Teste diferentes hiperparâmetros e analise o impacto no aprendizado do agente. Faça um gráfico com várias curvas de aprendizado.

## Rubrica

| Conceito | Descrição |
|----------|-----------|
| I | Entregou incompleto |
| C | Implementou o agente para o ambiente Mountain Car-v0, mas não fez uma análise robusta do aprendizado |
| B | Implementou o agente para o ambiente Mountain Car-v0 e fez uma análise robusta do aprendizado testando mais de uma configuração de hiperparâmetros |
| A+ | Implementou o agente para o ambiente Mountain Car-v0 e fez uma análise robusta do aprendizado testando mais de uma configuração de hiperparâmetros e definiu uma forma para persistência da Q-table 3D |

## Entrega

O trabalho deve ser entregue no GitHub Classroom. O link para o repositório é [https://classroom.github.com/a/DT6edFQw](https://classroom.github.com/a/DT6edFQw). O trabalho é individual. O prazo para entrega é até o dia 27/02/2025.
4 changes: 2 additions & 2 deletions mkdocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,10 +27,10 @@ nav:
- 'Ambientes e metodologias':
- 'classes/11_evaluation/index.md'
- 'classes/06_non_determ/index.md'
# - 'classes/06_non_determ_comments/index.md'
- 'classes/06_non_determ_comments/index.md'
## - 'classes/07_game_env/index.md'
## - 'classes/08_game_env_random/index.md'
# - 'classes/09_more_complex/index.md'
- 'classes/09_more_complex/index.md'
### - 'classes/13_nn_review/index.md'
### - 'classes/14_nn_policies/index.md'
# - 'Deep Q-Learning':
Expand Down

0 comments on commit 1ac0b4a

Please sign in to comment.