Use deep reinforcement learning with recursive actions?2019 Community Moderator ElectionTheano 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

What do the Banks children have against barley water?

"listening to me about as much as you're listening to this pole here"

Shall I use personal or official e-mail account when registering to external websites for work purpose?

Re-submission of rejected manuscript without informing co-authors

Landlord wants to switch my lease to a "Land contract" to "get back at the city"

What to wear for invited talk in Canada

How to deal with fear of taking dependencies

Copycat chess is back

Need help identifying/translating a plaque in Tangier, Morocco

Does it makes sense to buy a new cycle to learn riding?

Is every set a filtered colimit of finite sets?

Information to fellow intern about hiring?

What does "enim et" mean?

Pristine Bit Checking

Prime joint compound before latex paint?

How could a lack of term limits lead to a "dictatorship?"

Why do we use polarized capacitors?

What happens when a metallic dragon and a chromatic dragon mate?

What is GPS' 19 year rollover and does it present a cybersecurity issue?

Why do UK politicians seemingly ignore opinion polls on Brexit?

What is it called when one voice type sings a 'solo'?

Manga about a female worker who got dragged into another world together with this high school girl and she was just told she's not needed anymore

Why did the Germans forbid the possession of pet pigeons in Rostov-on-Don in 1941?

How to move the player while also allowing forces to affect it



Use deep reinforcement learning with recursive actions?



2019 Community Moderator ElectionTheano 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







New contributor




User732 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.







$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







    New contributor




    User732 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
    Check out our Code of Conduct.







    $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







      New contributor




      User732 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.







      $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







      New contributor




      User732 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.











      share|improve this question







      New contributor




      User732 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.









      share|improve this question




      share|improve this question






      New contributor




      User732 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.









      asked 13 hours ago









      User732User732

      61




      61




      New contributor




      User732 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.





      New contributor





      User732 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.






      User732 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.




















          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
            8 hours ago










          • $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
            8 hours ago











          Your Answer





          StackExchange.ifUsing("editor", function ()
          return StackExchange.using("mathjaxEditing", function ()
          StackExchange.MarkdownEditor.creationCallbacks.add(function (editor, postfix)
          StackExchange.mathjaxEditing.prepareWmdForMathJax(editor, postfix, [["$", "$"], ["\\(","\\)"]]);
          );
          );
          , "mathjax-editing");

          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
          );



          );






          User732 is a new contributor. Be nice, and check out our Code of Conduct.









          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
            8 hours ago










          • $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
            8 hours ago















          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
            8 hours ago










          • $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
            8 hours ago













          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 10 hours ago

























          answered 10 hours ago









          Neil SlaterNeil Slater

          17.6k33264




          17.6k33264











          • $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
            8 hours ago










          • $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
            8 hours ago
















          • $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
            8 hours ago










          • $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
            8 hours ago















          $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
          8 hours ago




          $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
          8 hours ago












          $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
          8 hours ago




          $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
          8 hours ago










          User732 is a new contributor. Be nice, and check out our Code of Conduct.









          draft saved

          draft discarded


















          User732 is a new contributor. Be nice, and check out our Code of Conduct.












          User732 is a new contributor. Be nice, and check out our Code of Conduct.











          User732 is a new contributor. Be nice, and check out our Code of Conduct.














          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

          ValueError: Error when checking input: expected conv2d_13_input to have shape (3, 150, 150) but got array with shape (150, 150, 3)2019 Community Moderator ElectionError when checking : expected dense_1_input to have shape (None, 5) but got array with shape (200, 1)Error 'Expected 2D array, got 1D array instead:'ValueError: Error when checking input: expected lstm_41_input to have 3 dimensions, but got array with shape (40000,100)ValueError: Error when checking target: expected dense_1 to have shape (7,) but got array with shape (1,)ValueError: Error when checking target: expected dense_2 to have shape (1,) but got array with shape (0,)Keras exception: ValueError: Error when checking input: expected conv2d_1_input to have shape (150, 150, 3) but got array with shape (256, 256, 3)Steps taking too long to completewhen checking input: expected dense_1_input to have shape (13328,) but got array with shape (317,)ValueError: Error when checking target: expected dense_3 to have shape (None, 1) but got array with shape (7715, 40000)Keras exception: Error when checking input: expected dense_input to have shape (2,) but got array with shape (1,)

          Ружовы пелікан Змест Знешні выгляд | Пашырэнне | Асаблівасці біялогіі | Літаратура | НавігацыяДагледжаная версіяправерана1 зменаДагледжаная версіяправерана1 змена/ 22697590 Сістэматыкана ВіківідахВыявына Вікісховішчы174693363011049382

          Illegal assignment from SObject to ContactFetching String, Id from Map - Illegal Assignment Id to Field / ObjectError: Compile Error: Illegal assignment from String to BooleanError: List has no rows for assignment to SObjectError on Test Class - System.QueryException: List has no rows for assignment to SObjectRemote action problemDML requires SObject or SObject list type error“Illegal assignment from List to List”Test Class Fail: Batch Class: System.QueryException: List has no rows for assignment to SObjectMapping to a user'List has no rows for assignment to SObject' Mystery