anowell / are-we-learning-yet

How ready is Rust for Machine Learning?
http://arewelearningyet.com
Creative Commons Attribution 4.0 International
441 stars 61 forks source link

Add crate: rsrl - reinforcement learning library #23

Closed tspooner closed 6 years ago

tspooner commented 6 years ago

Hey, so this is a request (shameless, I know) to add my reinforcement learning library rsrl (https://github.com/tspooner/rsrl) to your list of crates. It is still in alpha, but only because I have a few API changes in mind before a version 1.0 release. It currently works well and has many state-of-the-art algorithms implemented as well as the classics. It is somewhat inspired by the rlpy library and is intended for use in academia and industry.

I hope you find it interesting!

Cheers, Tom

Note: I'm currently working on extracting some code from this crate into sub-crates, such as lfa for linear function approximation which will be worked on separately.

anowell commented 6 years ago

Sorry I'm really behind on this.

Do you think this fits into any of the existing categories. At first glance, I'm wondering if Reinforcement Learning deserves its own category. If you agree, do you care to summarize up the "reinforcement learning and the state of it in rust" (in 2-3 sentences) and mention any other crates in the space you might be aware of; then I would be happy to put together the page for it.

tspooner commented 6 years ago

No worries.

So no, RL doesn't really fall into any one of the categories you currently have on your site. It is certainly it's own thing, though it makes use of a number of the categories you currently have. For example, neural networks are often used to approximate "value functions" in RL problems.

As far as I know there are not any crates out there that are as far along as rsrl. I am aware of https://github.com/NivenT/REnforce which has some interesting stuff but it doesn't appear to be in active development.

If I were to summarise RL and it's place in the ecosystem I'd say the following:

Reinforcement learning is the branch of machine learning concerned with sequential decision making problems. A few interesting libraries exist for applying classical methods (such as Q-learning), including REnforce and rurel. However, implementations of state-of-art learning algorithms are currently limited to rsrl; to the best of our knowledge.

tspooner commented 6 years ago

Thanks!

anowell commented 6 years ago

http://www.arewelearningyet.com/reinforment-learning/

Maybe someday I'll come up with a better ranking heuristic that gives weight to recent activity, but till then, looks you're a couple GH stars from being top of your own category. ;-) (fwiw, CI auto-republishes with new stats about once-per-week)

tspooner commented 6 years ago

Haha that's fine. Just cool to see it up there.

Cheers!