From 04d93198d0e7c98f85b03409b89143388f9e7e88 Mon Sep 17 00:00:00 2001 From: Joseph Suarez Date: Sun, 14 Jan 2024 00:41:42 +0000 Subject: [PATCH] Ocean blog post --- docs/build/doctrees/environment.pickle | Bin 34440 -> 35173 bytes docs/build/doctrees/rst/blog.doctree | Bin 54831 -> 65574 bytes docs/build/doctrees/rst/ocean.doctree | Bin 64790 -> 65021 bytes docs/build/html/_images/ocean.png | Bin 0 -> 24730 bytes docs/build/html/_sources/rst/blog.rst.txt | 33 ++++++++++ docs/build/html/_sources/rst/ocean.rst.txt | 2 + docs/build/html/genindex.html | 3 +- docs/build/html/index.html | 6 +- docs/build/html/objects.inv | Bin 897 -> 970 bytes docs/build/html/rst/api.html | 3 +- docs/build/html/rst/blog.html | 69 +++++++-------------- docs/build/html/rst/landing.html | 3 +- docs/build/html/rst/ocean.html | 8 ++- docs/build/html/search.html | 3 +- docs/build/html/searchindex.js | 2 +- docs/source/resource/ocean.png | Bin 0 -> 24730 bytes docs/source/rst/blog.rst | 33 ++++++++++ docs/source/rst/ocean.rst | 2 + 18 files changed, 112 insertions(+), 55 deletions(-) create mode 100644 docs/build/html/_images/ocean.png create mode 100755 docs/source/resource/ocean.png diff --git a/docs/build/doctrees/environment.pickle b/docs/build/doctrees/environment.pickle index 579174b2ec75af64f27c81bbec67728be3d97156..1cc018d3dbc5a5d9dcf88ec24d9ee4caf0b36a5a 100644 GIT binary patch literal 35173 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 W=tVa4E~P5oiy=V*ydE>I%>5rqVZIFj literal 34440 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 U3+N=%O$@0l`rz_LZ*KPg0*Cgy2mk;8 diff --git a/docs/build/html/_images/ocean.png b/docs/build/html/_images/ocean.png new file mode 100644 index 0000000000000000000000000000000000000000..2eff1036bccfd4ac8d041da1e854b198ef477ebf GIT binary patch literal 24730 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 literal 0 HcmV?d00001 diff --git a/docs/build/html/_sources/rst/blog.rst.txt b/docs/build/html/_sources/rst/blog.rst.txt index cfea71b..08f602d 100644 --- a/docs/build/html/_sources/rst/blog.rst.txt +++ b/docs/build/html/_sources/rst/blog.rst.txt @@ -11,6 +11,39 @@ +šŸ”šŸŒŠ An Ocean of Environments for Learning Pufferfish +##################################################### + +Ocean is a small suite of environments that train from scratch in 30 seconds and render in a terminal. Each environment is a sanity check for a common implementation bug. Use Ocean as a quick verification test whenever you make small code changes. + +.. image:: ../resource/ocean.png + :width: 100% + :align: center + +**Memory:** The agent is shown one binary token at a time and must recite them back after a pause. Do not make the sequence too long or you start testing credit assignment. + +**Stochasticity:** The agent is rewarded for learning a particular nondeterministic action distribution. Do not use an architecture with memory or the agent can solve the task without stochasticity. + +**Exploration:** The agent is rewarded for guessing a specific binary sequence. Do not tune your entropy coefficients higher than you would use in your actual environments, since that is the point of the test. + +**Bandit:** The agent is rewarded for solving a multiarmed bandit problem. This environment is included for historical importance. Any reasonable implementation should solve the default setting. + +**Squared:** The agent is rewarded for moving to targets that spawn around the edges of a square. There are settings to test memory, exploration, and stochasticity separately or jointly to help you prod at deeper issues with your implementation. + +This project is heavily inspired by BSuite, a DeepMind project with similar if more benchmarky goals. BSuite was a bit too heavy for my liking and didnā€™t fit the niche of a quick and portable verification suite. + +I had a few issues designing these. The memory task is apparently a standard RNN copying task (I would be surprised if it werenā€™t). But itā€™s a bit different in an RL context because you still have to learn credit assignment. I donā€™t think there is a way to fully isolate learning only memory outside of a simple 1-step problem. Try increasing the memory sequence length or delay and you will quickly find that the problem gets harder to learn. + +The exploration environment is the only one that just worked. You can increase the password length and the problem gets harder to learn at about the rate you would expect. Itā€™s just a guess and check, so once you happen to get the password right once, the goal is to learn from that single instance as much as possible. Any prioritized replay would trivialize the problem. + +The stochastic environment took the longest. Initially, I was looking for one where the optimal policy was still stochastic and nontrivial even if the agent had memory. I could not figure out how to make one of these, and Twitter seems to think itā€™s impossible. Theyā€™re probably right, though you might be able to alter the setup conditions a bit, still test for the same thing, and have something that works better. For now, this is a quick and consistent test. + +I wrote the bandit environment earlier in the project, and it seems kind of useful, so I left it in the release. Probably a good idea to have at least some version of a problem this historically important easily accessible in PufferLib. + +I wrote Squared over the summer. Iā€™m rather fond of it as a test environment, since it is fairly scalable. You spawn at the center of a square and targets spawn around the outside. You get a reward the first time you hit each target and are teleported to the center whenever you hit a target. This means that the optimal policy is stochastic: you place equal probability on moving towards each target and then deterministically move towards the target you have selected. Itā€™s interesting because the optimal policy is stochastic in some states and deterministic in others. You can also turn the problem into a memory test by using a recurrent network. In any event, itā€™s similar to the bandit problem in that it combines elements of the simpler tests, but itā€™s a bit more tunable and interpretable. + +Let me know if you have other ideas for useful test environments. Lately, Iā€™ve landed on either very simple or very complex environments as being the most useful for research. Many of the tasks in the middle (looking at you Atari) are too slow to be useful as quick tests and too simple to test interesting ideas. + PufferLib 0.5: A Bigger EnvPool for Growing Puffers ################################################### diff --git a/docs/build/html/_sources/rst/ocean.rst.txt b/docs/build/html/_sources/rst/ocean.rst.txt index 41746b0..3277f1c 100644 --- a/docs/build/html/_sources/rst/ocean.rst.txt +++ b/docs/build/html/_sources/rst/ocean.rst.txt @@ -4,6 +4,8 @@ šŸŒŠ Ocean is PufferLib's suite of first-party environments. They are small and can be trained from scratch in 30 seconds to 2 minutes. Use Ocean as a sanity check for your training code instead of overnighting heavier runs. +.. image:: /resource/ocean.png + Squared ******* diff --git a/docs/build/html/genindex.html b/docs/build/html/genindex.html index fae9b89..bbb6059 100644 --- a/docs/build/html/genindex.html +++ b/docs/build/html/genindex.html @@ -246,7 +246,8 @@

Blog

diff --git a/docs/build/html/index.html b/docs/build/html/index.html index 5eb036c..406b1f0 100644 --- a/docs/build/html/index.html +++ b/docs/build/html/index.html @@ -248,7 +248,8 @@

Blog

@@ -321,7 +322,8 @@

Index#

Blog

    -
  • PufferLib 0.5: A Bigger EnvPool for Growing Puffers
      +
    • šŸ”šŸŒŠ An Ocean of Environments for Learning Pufferfish
    • +
    • PufferLib 0.5: A Bigger EnvPool for Growing Puffers
      • The Simulation Crisis
      • The Solution
      • Experiments
      • diff --git a/docs/build/html/objects.inv b/docs/build/html/objects.inv index 72668b30b9b8386a1092d56b74f3f2520025bb76..319581f80e7847a56c9c9bac888be0fc532db9d1 100644 GIT binary patch delta 862 zcmV-k1EKtZ2g(PKd4J7v(=Zf;_j(G=&;=|6g_ccsr2NhV$TS`HihYx4DoaLEXv-ro zEO-NkH{=nxk|j&|!4B+dO#kNyPC%<=jjZ_`fx8xr_)CDT&>18vP(sykx2;I4L4h5|KS{=FU3qAL=#4Ui zbvsImh2ciPcz>6si9}5W%EA$fz>x;`oVg#_-tPlM8euDtXassQ(zy2}N*Y~*v;(^s z1p)Eof!?(DEd9`R5$TPD*d_&c{(M3^n8{PDqds`S-2X{hZtbl$HGPPCLh5*ciXHlB zur*1}3NUrpH$XA0TLWE)6(;c^igZK^ulPEZEEfJ54pO zQqAk4<^*fLMtCdW`GJ7wx&rf0`Of$AbuRny&JVs=8-IPF=tn<_s9tVeli`C;fg6>-xZl>K zxCVCZ%iE#2P5N=S%jX$L=bty+Kuzr8?1(NQ)%R#VIqN%QF>keVe!I0;rTcxxS3qo6 zapcnKb2(kDxpkr%6Z9Z)P_31yxc^tqae;Ri_J^*t^T5!)>xC=|846hvUiY>y3)?r{ zuUEtmJuCY2RT*K$a4{UIS-_&;8g1s;<}$2y=2~vXj$`mlT(F7{v*b-FEH$>gl6(o0vM*E{`&kvho70u8<%bhG@enB_u4ze2 zsFm55ETyVCMF3d`Uc0M@DZO!5y@_ZnRGM3%ntdzYifyNyj(>hX(;6w(T0>*06t%E^ z=|Di~9;1mFI|a)X*TH3))(F&V`9{k0z$f%JVg#CJp;c3((O3qQWiSD)m8L5sBqBrg zJjr_U)(d}xO9HPgXz@mXtw;$far}9gLOMfilydS zz<8IYkwi@ajemh76rLkB?m4{~+1~daBDF9DNHhYq9%n7f~(<;J`yUDA)ZC!`7oDBGc*23r&5EK{>g zO=qM2q*eIN4!-2Pp|e1dR;#6i8fk99*BHt1#KAGFmE&S>@?PVh&2~k%?Z~0 zj__8%%L4(?wF3RFe3$$AI+y);mj~iax{7=0zFtut&K-_!i^g=$yp_cOgN?nk@BE<2$8Fcq*Gld$N6o!YVEPzQcN3 zlI(xy>!F0@&C|$%@!SGAl8uj%xiZ_>71rJwFIu|iSqeWs2WFV(SmYk2PBrPSNC5M1 zLaxm^7$0L7?H}#GUU&8Z*fq|-3)y$1A9TBXnty(D{%6fKl*BAAj_40keRt-Qi@rAo zxGr{1ZnqYyboXbx0%E#~BcH22msQ1z8!L)2K@SoO#i|hncYoq67x>k}{?JNU2Mq1F zUdV!wp^!!4qPM-tZ11|e#Em;6`jb^?VZ?AT9HvRYf?$C*^JH`FS37eh*JB6Kdq&P% Tg$@gH^jSXHIjjEwiirYH6zqSf diff --git a/docs/build/html/rst/api.html b/docs/build/html/rst/api.html index c22931e..9f8768e 100644 --- a/docs/build/html/rst/api.html +++ b/docs/build/html/rst/api.html @@ -248,7 +248,8 @@

      Blog

      diff --git a/docs/build/html/rst/blog.html b/docs/build/html/rst/blog.html index bc49b9b..42dfcfc 100644 --- a/docs/build/html/rst/blog.html +++ b/docs/build/html/rst/blog.html @@ -6,7 +6,7 @@ - PufferLib 0.5: A Bigger EnvPool for Growing Puffers - PufferLib 0.6.0 documentation + šŸ”šŸŒŠ An Ocean of Environments for Learning Pufferfish - PufferLib 0.6.0 documentation @@ -201,7 +201,7 @@
-