It's very common for people to think that Deep Learning is a "superior form" of Neural Network, a "smarter model". And then they try to use DL for solving simple tasks and they'll find more problems than solutions.
We might think of plane as superior to a bike. But when we need to buy some bread for breakfast, taking a plane is not even an overkill. It's just nonsense.
In a similar way, I've seen people thinking Reinforcement Learning as somehow superior to Supervised or Unsupervised Learning. So let's establish a baseline:
- The choice between Reinforcement Learning or Supervised Learning is not about superiority, but rather the nature of the task and your available dataset.
Great when your problem can be modeled as an agent interacting with an environment. The agent will sense (input), process (policy) and act (output). The policy is learned based on the reward of each action.
In most RL tasks (like strategy games), you can't objectively rate each individual action. Instead, it takes multiple actions before the outcome is obtained. But you can't train your model when you can't measure it's performance. So how to train a RL model?
A policy is like a function that maps states into actions. When you can't measure the performance of each individual action, you create a policy.
You let the agent interact with the environment (play the game) until you have a score. If the environment is stochastic (the game depends on luck), you might want several rollouts (play lots of times) before evaluating the policy.
So, for acquiring a single data sample, you might need to let an agent to play a game several times.
But if you can directly measure the agent's perform every each action, congratulations! You can probably save lots of computational power by modeling the problem as a:
The model is learned based on the input-output pairs. A training dataset.
Great when your input is sequential and your output is a function of the previous state.
Great when your input is not sequential, but you have a lot of features.
Great when your input is not sequential and you want to discover hidden structure in your data.
I hope this helps you with both questions. :)