# How does a model based agent learn the model?

I want to build model-based RL. I am wondering about the process of building the model.

If I already have data, from real experience:

• $$S_1, a \rightarrow R,S_2$$
• $$S_2, a \rightarrow R,S_3$$

Can I use this information, to build model-based RL? Or it is necessary that the agent directly interact with the environment (I mean the same above-mentioned data should be provided by the agent)?

• u may use q-network (model), fit the model with known real experience before the RL training process instead of a regular step of randomising the weights Apr 7 at 9:26
• @datdinhquoc that is wrong, Q-learning is model free. Apr 7 at 9:32
• that q-network has n-action softmax neurons in output layer of qvalues which can be applied to argmax to get max action, isn't it the model Apr 7 at 9:34
• no, when people refer to a model they are talking about modelling the environment dynamics such as $p(s'|s, a)$. Apr 7 at 9:35

## 1 Answer

If you already have some transition tuples then you can train a model to predict environment dynamics using these. However, you should be careful that your pre-gathered data is diverse enough to 'cover' enough of the state/action space so that your model remains accurate. For instance, when you start training your agent it will likely start to see more of the state space than it did at the start of training (imagine playing Atari, initially your agent will die quickly but as it gets better episodes will get longer) so you would need to make sure you have data for these states that appear late in episodes, otherwise your model will just be overfitting to the start of the episode and will give a poor performance on these other states, thus slowing down or even prohibiting learning of an optimal policy.

• Thank you, your issue is clear for me. So can I use this historical data as an input in model-base rl or I need some additional modeling techniques to estimate stansition? Apr 7 at 9:50
• you could try your model with your historical data, at the least it would give it a good 'initialisation'. you could then update your model once you have some new data that the agent collects. Apr 7 at 9:53
• Could you advise me some good library or tutorial for coding purpose in model-free Rl? Apr 7 at 9:57
• if you want to learn model-free RL then I would look for some medium articles on DQN, they are usually a good resource with well explained code. Apr 7 at 9:59
• Sorry, I mean model-based. It is my mistake Apr 7 at 10:00