Use deep reinforcement learning with recursive actions?Theano in deep learning researchKeyword/phrase extraction from Text using Deep Learning librariesCombining Neural Network with Reinforcement Learning in a Continuous SpaceAlphaGo (and other game programs using reinforcement-learning) without human databaseWhat is missing from the following Curriculum Learning implementation in a Deep Neural Net?Weights in neural networkDefining State Representation in Deep Q-LearningHandling actions with delayed effect (Reinforcement learning)Boundaries of Reinforcement LearningReinforcement learning - How to deal with varying number of actions which do number approximation

Were there two appearances of Stan Lee?

What is the strongest case that can be made in favour of the UK regaining some control over fishing policy after Brexit?

Reverse the word in a string with the same order in javascript

Is it possible to measure lightning discharges as Nikola Tesla?

Python "triplet" dictionary?

Binary Numbers Magic Trick

Does a creature that is immune to a condition still make a saving throw?

Possible to set `foldexpr` using a function reference?

Historically, were women trained for obligatory wars? Or did they serve some other military function?

Pulling the rope with one hand is as heavy as with two hands?

Unexpected email from Yorkshire Bank

Can a creature tell when it has been affected by a Divination wizard's Portent?

Help, my Death Star suffers from Kessler syndrome!

Past Perfect Tense

Why does Bran Stark feel that Jon Snow "needs to know" about his lineage?

What does 「再々起」mean?

Need help understanding harmonic series and intervals

Minimum value of 4 digit number divided by sum of its digits

Why is the origin of “threshold” uncertain?

Why was Germany not as successful as other Europeans in establishing overseas colonies?

How to stop co-workers from teasing me because I know Russian?

Phrase for the opposite of "foolproof"

Does the EU Common Fisheries Policy cover British Overseas Territories?

Do I have to worry about players making “bad” choices on level up?



Use deep reinforcement learning with recursive actions?


Theano in deep learning researchKeyword/phrase extraction from Text using Deep Learning librariesCombining Neural Network with Reinforcement Learning in a Continuous SpaceAlphaGo (and other game programs using reinforcement-learning) without human databaseWhat is missing from the following Curriculum Learning implementation in a Deep Neural Net?Weights in neural networkDefining State Representation in Deep Q-LearningHandling actions with delayed effect (Reinforcement learning)Boundaries of Reinforcement LearningReinforcement learning - How to deal with varying number of actions which do number approximation













1












$begingroup$


Can we use recursive actions in deep reinforcement learning ? If yes how ?



For example, in a reassignment problem, for a task i the neural networks returns a node m, and then there will be some condition : If the node m is busy (If there's already a task j assigned to that node), then the task j will be reassigned to another node and so on until a vacant node will be returned (We suppose that there's always at least one vacant node).










share|improve this question









$endgroup$
















    1












    $begingroup$


    Can we use recursive actions in deep reinforcement learning ? If yes how ?



    For example, in a reassignment problem, for a task i the neural networks returns a node m, and then there will be some condition : If the node m is busy (If there's already a task j assigned to that node), then the task j will be reassigned to another node and so on until a vacant node will be returned (We suppose that there's always at least one vacant node).










    share|improve this question









    $endgroup$














      1












      1








      1





      $begingroup$


      Can we use recursive actions in deep reinforcement learning ? If yes how ?



      For example, in a reassignment problem, for a task i the neural networks returns a node m, and then there will be some condition : If the node m is busy (If there's already a task j assigned to that node), then the task j will be reassigned to another node and so on until a vacant node will be returned (We suppose that there's always at least one vacant node).










      share|improve this question









      $endgroup$




      Can we use recursive actions in deep reinforcement learning ? If yes how ?



      For example, in a reassignment problem, for a task i the neural networks returns a node m, and then there will be some condition : If the node m is busy (If there's already a task j assigned to that node), then the task j will be reassigned to another node and so on until a vacant node will be returned (We suppose that there's always at least one vacant node).







      deep-learning reinforcement-learning






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked Apr 8 at 16:29









      User732User732

      61




      61




















          1 Answer
          1






          active

          oldest

          votes


















          0












          $begingroup$

          Your description doesn't seem so much like a "recurrent action" as a "failed to progress" situation.



          The simplest ways to deal with possibility of a blocked/failed action are:



          • Leave state and time step unchanged and pick next best action, without any new policy evaluations. This is effectively the approach used by many turn-based game playing RL, such as AlphaGo, although the rejection of non-valid actions is done using the game engine and not technically tried repeatedly in the environment, that does not make a big difference in all cases.

          Or



          • Update the time step, receive a reward (maybe zero) and try again on next time step. The state information might usefully include blocked actions (or they can be applied programmatically as in the first option). You would typically use this approach if there was a real cost to attempting the action (i.e. a negative reward for losing time) and/or it is possible from the state information to predict which actions could be blocked, and you want to include these factors in the agent's behaviour.

          The second option is the approach you might use in a maze solver, if it could only sense walls by bumping in to them.



          If the blocked actions are completely unpredictable from the agent's observations, then it doesn't matter too much which approach you use. However, if there is a cost for failing to act, then the second approach would give you more accurate action values in case you are using a value-based approach or need to assess the performance of your agent numerically.






          share|improve this answer











          $endgroup$












          • $begingroup$
            I don't necessarily want the task to be assigned to only vacant nodes, meaning that reassigning the task j while reassigning task i could produce a more interesting scenario, that's while I talked about "recursive actions".
            $endgroup$
            – User732
            Apr 8 at 21:17










          • $begingroup$
            @User732: Sorry I don't understand. Maybe if you add some worked through examples in the question, it would help. The example you give so far matches this answer as far as I can see = "I want to try an action, and if there is some rule triggered where the action is not valid, I want to try a different action".
            $endgroup$
            – Neil Slater
            Apr 8 at 21:51











          Your Answer








          StackExchange.ready(function()
          var channelOptions =
          tags: "".split(" "),
          id: "557"
          ;
          initTagRenderer("".split(" "), "".split(" "), channelOptions);

          StackExchange.using("externalEditor", function()
          // Have to fire editor after snippets, if snippets enabled
          if (StackExchange.settings.snippets.snippetsEnabled)
          StackExchange.using("snippets", function()
          createEditor();
          );

          else
          createEditor();

          );

          function createEditor()
          StackExchange.prepareEditor(
          heartbeatType: 'answer',
          autoActivateHeartbeat: false,
          convertImagesToLinks: false,
          noModals: true,
          showLowRepImageUploadWarning: true,
          reputationToPostImages: null,
          bindNavPrevention: true,
          postfix: "",
          imageUploader:
          brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
          contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
          allowUrls: true
          ,
          onDemand: true,
          discardSelector: ".discard-answer"
          ,immediatelyShowMarkdownHelp:true
          );



          );













          draft saved

          draft discarded


















          StackExchange.ready(
          function ()
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fdatascience.stackexchange.com%2fquestions%2f48889%2fuse-deep-reinforcement-learning-with-recursive-actions%23new-answer', 'question_page');

          );

          Post as a guest















          Required, but never shown

























          1 Answer
          1






          active

          oldest

          votes








          1 Answer
          1






          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes









          0












          $begingroup$

          Your description doesn't seem so much like a "recurrent action" as a "failed to progress" situation.



          The simplest ways to deal with possibility of a blocked/failed action are:



          • Leave state and time step unchanged and pick next best action, without any new policy evaluations. This is effectively the approach used by many turn-based game playing RL, such as AlphaGo, although the rejection of non-valid actions is done using the game engine and not technically tried repeatedly in the environment, that does not make a big difference in all cases.

          Or



          • Update the time step, receive a reward (maybe zero) and try again on next time step. The state information might usefully include blocked actions (or they can be applied programmatically as in the first option). You would typically use this approach if there was a real cost to attempting the action (i.e. a negative reward for losing time) and/or it is possible from the state information to predict which actions could be blocked, and you want to include these factors in the agent's behaviour.

          The second option is the approach you might use in a maze solver, if it could only sense walls by bumping in to them.



          If the blocked actions are completely unpredictable from the agent's observations, then it doesn't matter too much which approach you use. However, if there is a cost for failing to act, then the second approach would give you more accurate action values in case you are using a value-based approach or need to assess the performance of your agent numerically.






          share|improve this answer











          $endgroup$












          • $begingroup$
            I don't necessarily want the task to be assigned to only vacant nodes, meaning that reassigning the task j while reassigning task i could produce a more interesting scenario, that's while I talked about "recursive actions".
            $endgroup$
            – User732
            Apr 8 at 21:17










          • $begingroup$
            @User732: Sorry I don't understand. Maybe if you add some worked through examples in the question, it would help. The example you give so far matches this answer as far as I can see = "I want to try an action, and if there is some rule triggered where the action is not valid, I want to try a different action".
            $endgroup$
            – Neil Slater
            Apr 8 at 21:51















          0












          $begingroup$

          Your description doesn't seem so much like a "recurrent action" as a "failed to progress" situation.



          The simplest ways to deal with possibility of a blocked/failed action are:



          • Leave state and time step unchanged and pick next best action, without any new policy evaluations. This is effectively the approach used by many turn-based game playing RL, such as AlphaGo, although the rejection of non-valid actions is done using the game engine and not technically tried repeatedly in the environment, that does not make a big difference in all cases.

          Or



          • Update the time step, receive a reward (maybe zero) and try again on next time step. The state information might usefully include blocked actions (or they can be applied programmatically as in the first option). You would typically use this approach if there was a real cost to attempting the action (i.e. a negative reward for losing time) and/or it is possible from the state information to predict which actions could be blocked, and you want to include these factors in the agent's behaviour.

          The second option is the approach you might use in a maze solver, if it could only sense walls by bumping in to them.



          If the blocked actions are completely unpredictable from the agent's observations, then it doesn't matter too much which approach you use. However, if there is a cost for failing to act, then the second approach would give you more accurate action values in case you are using a value-based approach or need to assess the performance of your agent numerically.






          share|improve this answer











          $endgroup$












          • $begingroup$
            I don't necessarily want the task to be assigned to only vacant nodes, meaning that reassigning the task j while reassigning task i could produce a more interesting scenario, that's while I talked about "recursive actions".
            $endgroup$
            – User732
            Apr 8 at 21:17










          • $begingroup$
            @User732: Sorry I don't understand. Maybe if you add some worked through examples in the question, it would help. The example you give so far matches this answer as far as I can see = "I want to try an action, and if there is some rule triggered where the action is not valid, I want to try a different action".
            $endgroup$
            – Neil Slater
            Apr 8 at 21:51













          0












          0








          0





          $begingroup$

          Your description doesn't seem so much like a "recurrent action" as a "failed to progress" situation.



          The simplest ways to deal with possibility of a blocked/failed action are:



          • Leave state and time step unchanged and pick next best action, without any new policy evaluations. This is effectively the approach used by many turn-based game playing RL, such as AlphaGo, although the rejection of non-valid actions is done using the game engine and not technically tried repeatedly in the environment, that does not make a big difference in all cases.

          Or



          • Update the time step, receive a reward (maybe zero) and try again on next time step. The state information might usefully include blocked actions (or they can be applied programmatically as in the first option). You would typically use this approach if there was a real cost to attempting the action (i.e. a negative reward for losing time) and/or it is possible from the state information to predict which actions could be blocked, and you want to include these factors in the agent's behaviour.

          The second option is the approach you might use in a maze solver, if it could only sense walls by bumping in to them.



          If the blocked actions are completely unpredictable from the agent's observations, then it doesn't matter too much which approach you use. However, if there is a cost for failing to act, then the second approach would give you more accurate action values in case you are using a value-based approach or need to assess the performance of your agent numerically.






          share|improve this answer











          $endgroup$



          Your description doesn't seem so much like a "recurrent action" as a "failed to progress" situation.



          The simplest ways to deal with possibility of a blocked/failed action are:



          • Leave state and time step unchanged and pick next best action, without any new policy evaluations. This is effectively the approach used by many turn-based game playing RL, such as AlphaGo, although the rejection of non-valid actions is done using the game engine and not technically tried repeatedly in the environment, that does not make a big difference in all cases.

          Or



          • Update the time step, receive a reward (maybe zero) and try again on next time step. The state information might usefully include blocked actions (or they can be applied programmatically as in the first option). You would typically use this approach if there was a real cost to attempting the action (i.e. a negative reward for losing time) and/or it is possible from the state information to predict which actions could be blocked, and you want to include these factors in the agent's behaviour.

          The second option is the approach you might use in a maze solver, if it could only sense walls by bumping in to them.



          If the blocked actions are completely unpredictable from the agent's observations, then it doesn't matter too much which approach you use. However, if there is a cost for failing to act, then the second approach would give you more accurate action values in case you are using a value-based approach or need to assess the performance of your agent numerically.







          share|improve this answer














          share|improve this answer



          share|improve this answer








          edited Apr 8 at 19:39

























          answered Apr 8 at 18:58









          Neil SlaterNeil Slater

          17.9k33265




          17.9k33265











          • $begingroup$
            I don't necessarily want the task to be assigned to only vacant nodes, meaning that reassigning the task j while reassigning task i could produce a more interesting scenario, that's while I talked about "recursive actions".
            $endgroup$
            – User732
            Apr 8 at 21:17










          • $begingroup$
            @User732: Sorry I don't understand. Maybe if you add some worked through examples in the question, it would help. The example you give so far matches this answer as far as I can see = "I want to try an action, and if there is some rule triggered where the action is not valid, I want to try a different action".
            $endgroup$
            – Neil Slater
            Apr 8 at 21:51
















          • $begingroup$
            I don't necessarily want the task to be assigned to only vacant nodes, meaning that reassigning the task j while reassigning task i could produce a more interesting scenario, that's while I talked about "recursive actions".
            $endgroup$
            – User732
            Apr 8 at 21:17










          • $begingroup$
            @User732: Sorry I don't understand. Maybe if you add some worked through examples in the question, it would help. The example you give so far matches this answer as far as I can see = "I want to try an action, and if there is some rule triggered where the action is not valid, I want to try a different action".
            $endgroup$
            – Neil Slater
            Apr 8 at 21:51















          $begingroup$
          I don't necessarily want the task to be assigned to only vacant nodes, meaning that reassigning the task j while reassigning task i could produce a more interesting scenario, that's while I talked about "recursive actions".
          $endgroup$
          – User732
          Apr 8 at 21:17




          $begingroup$
          I don't necessarily want the task to be assigned to only vacant nodes, meaning that reassigning the task j while reassigning task i could produce a more interesting scenario, that's while I talked about "recursive actions".
          $endgroup$
          – User732
          Apr 8 at 21:17












          $begingroup$
          @User732: Sorry I don't understand. Maybe if you add some worked through examples in the question, it would help. The example you give so far matches this answer as far as I can see = "I want to try an action, and if there is some rule triggered where the action is not valid, I want to try a different action".
          $endgroup$
          – Neil Slater
          Apr 8 at 21:51




          $begingroup$
          @User732: Sorry I don't understand. Maybe if you add some worked through examples in the question, it would help. The example you give so far matches this answer as far as I can see = "I want to try an action, and if there is some rule triggered where the action is not valid, I want to try a different action".
          $endgroup$
          – Neil Slater
          Apr 8 at 21:51

















          draft saved

          draft discarded
















































          Thanks for contributing an answer to Data Science Stack Exchange!


          • Please be sure to answer the question. Provide details and share your research!

          But avoid


          • Asking for help, clarification, or responding to other answers.

          • Making statements based on opinion; back them up with references or personal experience.

          Use MathJax to format equations. MathJax reference.


          To learn more, see our tips on writing great answers.




          draft saved


          draft discarded














          StackExchange.ready(
          function ()
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fdatascience.stackexchange.com%2fquestions%2f48889%2fuse-deep-reinforcement-learning-with-recursive-actions%23new-answer', 'question_page');

          );

          Post as a guest















          Required, but never shown





















































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown

































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown







          Popular posts from this blog

          Adding axes to figuresAdding axes labels to LaTeX figuresLaTeX equivalent of ConTeXt buffersRotate a node but not its content: the case of the ellipse decorationHow to define the default vertical distance between nodes?TikZ scaling graphic and adjust node position and keep font sizeNumerical conditional within tikz keys?adding axes to shapesAlign axes across subfiguresAdding figures with a certain orderLine up nested tikz enviroments or how to get rid of themAdding axes labels to LaTeX figures

          Luettelo Yhdysvaltain laivaston lentotukialuksista Lähteet | Navigointivalikko

          Gary (muusikko) Sisällysluettelo Historia | Rockin' High | Lähteet | Aiheesta muualla | NavigointivalikkoInfobox OKTuomas "Gary" Keskinen Ancaran kitaristiksiProjekti Rockin' High