{"id":15057514,"url":"https://github.com/dmitrijsc/practical-rl","last_synced_at":"2025-04-10T11:10:44.236Z","repository":{"id":97310505,"uuid":"113484721","full_name":"dmitrijsc/practical-rl","owner":"dmitrijsc","description":"Reinforcement learning in Julia. Solving OpenAI gym.","archived":false,"fork":false,"pushed_at":"2018-03-14T22:55:25.000Z","size":47,"stargazers_count":43,"open_issues_count":0,"forks_count":3,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-03-24T09:53:00.326Z","etag":null,"topics":["cross-entropy","frozenlake","julia","julialang","mxnet","openai","openai-gym","q-learning","reinforcement-learning"],"latest_commit_sha":null,"homepage":"https://solveai.net","language":"Julia","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dmitrijsc.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-12-07T18:24:07.000Z","updated_at":"2024-02-25T10:16:09.000Z","dependencies_parsed_at":"2023-05-07T02:46:47.128Z","dependency_job_id":null,"html_url":"https://github.com/dmitrijsc/practical-rl","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dmitrijsc%2Fpractical-rl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dmitrijsc%2Fpractical-rl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dmitrijsc%2Fpractical-rl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dmitrijsc%2Fpractical-rl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dmitrijsc","download_url":"https://codeload.github.com/dmitrijsc/practical-rl/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248208560,"owners_count":21065202,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cross-entropy","frozenlake","julia","julialang","mxnet","openai","openai-gym","q-learning","reinforcement-learning"],"created_at":"2024-09-24T22:07:31.566Z","updated_at":"2025-04-10T11:10:44.230Z","avatar_url":"https://github.com/dmitrijsc.png","language":"Julia","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Reinforcement learning in Julia\n\nPurpose of this project/ repository is to replicate [Practical RL course](https://github.com/yandexdataschool/Practical_RL) exercises in Julia.\n\nAbout Practical RL (from their GitHub): A course on reinforcement learning in the wild. Taught on-campus in HSE and Yandex SDA.\n\n## Setup\n\nThis code was tested on Julia 0.6.1. It will be using MXNet for all deep learning activities.\n\nPlease follow standard process to configure `Open AI gym`, `POMDPs.jl` and `MXNet.jl` from the corresponding package repository.\n\n## Table of contents\n\nThe following objectives are implemented and available as a separate Julia files:\n\nweek_0: FrozenLake with genetic algorithms\n- FrozenLake (4x4): average score 0.86 ([post](https://solveai.net/2017/12/07/playing-frozenlake-with-genetic-algorithms/))\n- FrozenLake (8x8): average score 0.97\n\nweek_1: Cross-Entropy Method\n- FrozenLake8x8, Taxi-v2 (CEM) ([post](https://solveai.net/2017/12/24/playing-frozenlake-using-cross-entropy-method/), [post2](https://solveai.net/2017/12/24/difference-between-evolutionary-methods-and-methods-that-learn-value-functions/))\n- CartPole-v0 (Deep Cross-Entropy Method using MXNet): average score 200.0 ([post](https://solveai.net/2018/01/06/playing-cartpole-with-deep-cross-entropy-method-using-julia-and-mxnet/), [post 2](https://solveai.net/2018/01/08/importance-of-learning-rate-when-running-deep-cross-entropy-method/))\n\nweek_2: Q-learning (Value-table method)\n- Taxi-v2: average score 8.7/8.5 ([post](https://solveai.net/2018/01/15/julia-q-learning-using-value-table-to-solve-taxi-v2/), [post 2](https://solveai.net/2018/02/01/julia-q-learning-and-epsilon-discount-factor/))\n\nweek_3: SARSA\n- Taxi-v2: 8.5/8.5 ([post](https://solveai.net/2018/02/01/julia-solving-open-ai-taxi-v2-using-sarsa-algorithm/))\n\nweek_4: DQN\n- CartPole-v0: 100/100 in 1 episode ([post](https://solveai.net/2018/02/27/playing-cartpole-using-julia-and-mxnet-implementation-of-dqn/))\n- Space Invaders: ~220 in average ([post](https://solveai.net/2018/03/12/playing-space-invader-using-dqn-julia-and-mxnet/))\n\n## T\u0026C\n\nI will try to follow Julia best practices when writing code and optimize it whenever and wherever possible.\n\nPlease excuse in case of any serious issues and you are welcome to submit your PR.\n\n## Contacts\n\nFeel free to contact me over Issues, solveai.net or Julia Slack channel @dmitrijsc.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdmitrijsc%2Fpractical-rl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdmitrijsc%2Fpractical-rl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdmitrijsc%2Fpractical-rl/lists"}