Answers.Body: <p>The main thing to keep in mind when designing a reinforcement learning agent is that you need to develop an interactive environment in which the agent can learn and define the possible moves the agent can make. In your case, the environment is the memory cards. </p>
  
  <p>Next you need to define how the agent can interact with the environment, that is <code>choosing</code> a card or <code>flipping</code> a card etc. Also how the environment will behave when the agent chooses a move. </p>
  
  <p>Finally you need to define the fitness function, in this case the <code>score</code> (number of pairs created) should be fine. You should have a look at some online RL competitions to get a better understanding of the architecture. <a href="https://aws.amazon.com/deepracer/" rel="nofollow noreferrer">AWS DeepRacer</a></p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2020-03-30T09:16:46.797Z
Answers.LastActivityDate: 2020-03-30T09:16:46.797Z
Answers.UserDisplayName: skillsmuggler
Body: <p>I am new to RL, and I am thinking of doing a little project. The goal of the project is to learn an agent play the memory game with cards.</p>
  
  <p>I already created the program for detecting the cards on the table (with YOLO) and classifying them what kind of object they are.</p>
  
  <p>I want an agent to be able to play the memory game by itself, without being explicitly told the rules and such.</p>
  
  <p>Any tips on how to get started to make the RL process easier?</p>
  
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2020-03-28T17:25:53.907Z
Comments.Text: Hi and welcome to AI SE! Are you talking about this game: [https://en.wikipedia.org/wiki/Concentration_(card_game)](https://en.wikipedia.org/wiki/Concentration_(card_game))?
Comments.UserDisplayName: nbro
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2020-03-28T20:22:10.013Z
Comments.Text: Hello.  Yes, this is the one.
Comments.UserDisplayName: Five0
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2020-03-30T10:30:05.060Z
Comments.Text: Environment is not fully observable you cant model it as MDP and work in standard RL framework, you would have to model it as POMDP and then research what RL algorithms are available for such environments or try to use LSTMs maybe with standard RL algorithms. Also, environment is very dynamic, card layout changes every game so it will be quite difficult to learn something meaningful. You picked very hard problem for beginner project.
Comments.UserDisplayName: Brale
Tags: <machine-learning><deep-learning><reinforcement-learning><ai-design>
Title: How can I develop a reinforcement learning agent that plays memory cards game?
UserDisplayName: Five0
ThreadText: # How can I develop a reinforcement learning agent that plays memory cards game?
  
  (Asked by: username_0 on 2020-03-28)
  
  I am new to RL, and I am thinking of doing a little project. The goal of the project is to learn an agent play the memory game with cards.
  
  I already created the program for detecting the cards on the table (with YOLO) and classifying them what kind of object they are.
  
  I want an agent to be able to play the memory game by itself, without being explicitly told the rules and such.
  
  Any tips on how to get started to make the RL process easier?
  
  **Tags:** machine-learning, deep-learning, reinforcement-learning, ai-design
  
  > **Comments:**
  > **username_1**: Hi and welcome to AI SE! Are you talking about this game: [https://en.wikipedia.org/wiki/Concentration_(card_game)](https://en.wikipedia.org/wiki/Concentration_(card_game))?  
  > **username_0**: Hello.  Yes, this is the one.  
  > **username_2**: Environment is not fully observable you cant model it as MDP and work in standard RL framework, you would have to model it as POMDP and then research what RL algorithms are available for such environments or try to use LSTMs maybe with standard RL algorithms. Also, environment is very dynamic, card layout changes every game so it will be quite difficult to learn something meaningful. You picked very hard problem for beginner project.  
  
  ---
  
  ## 1 answers
  
  ### Answer by username_3 on 2020-03-30. Score: 1
  
  The main thing to keep in mind when designing a reinforcement learning agent is that you need to develop an interactive environment in which the agent can learn and define the possible moves the agent can make. In your case, the environment is the memory cards.
  
  Next you need to define how the agent can interact with the environment, that is `choosing` a card or `flipping` a card etc. Also how the environment will behave when the agent chooses a move.
  
  Finally you need to define the fitness function, in this case the `score` (number of pairs created) should be fine. You should have a look at some online RL competitions to get a better understanding of the architecture. [AWS DeepRacer](https://aws.amazon.com/deepracer/)
  
  
  ---
  
  