diff --git a/docs/assessment.md b/docs/assessment.md index 11d7a9d..c157588 100644 --- a/docs/assessment.md +++ b/docs/assessment.md @@ -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 diff --git a/docs/classes/06_non_determ_comments/index.md b/docs/classes/06_non_determ_comments/index.md index c78c53a..8303e5c 100644 --- a/docs/classes/06_non_determ_comments/index.md +++ b/docs/classes/06_non_determ_comments/index.md @@ -10,6 +10,56 @@ Seguem exemplos de resultados bem apresentados. +## 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 +``` + + + \ No newline at end of file diff --git a/docs/classes/09_more_complex/index.md b/docs/classes/09_more_complex/index.md index 0c3daa1..638093f 100644 --- a/docs/classes/09_more_complex/index.md +++ b/docs/classes/09_more_complex/index.md @@ -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. \ No newline at end of file +* 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. \ No newline at end of file diff --git a/mkdocs.yml b/mkdocs.yml index cf77f88..6f49968 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -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':