Package ai.djl.modality.rl.agent
Class QAgent
java.lang.Object
ai.djl.modality.rl.agent.QAgent
- All Implemented Interfaces:
RlAgent
An
RlAgent that implements Q or Deep-Q Learning.
Deep-Q Learning estimates the total reward that will be given until the environment ends in a particular state after taking a particular action. Then, it is trained by ensuring that the prediction before taking the action match what would be predicted after taking the action. More information can be found in the paper.
It is one of the earliest successful techniques for reinforcement learning with Deep learning. It is also a good introduction to the field. However, many better techniques are commonly used now.
-
Constructor Summary
ConstructorsConstructorDescriptionConstructs aQAgent.QAgent(Trainer trainer, float rewardDiscount, Batchifier batchifier) Constructs aQAgentwith a customBatchifier. -
Method Summary
Modifier and TypeMethodDescriptionchooseAction(RlEnv env, boolean training) Chooses the next action to take within theRlEnv.voidtrainBatch(RlEnv.Step[] batchSteps) Trains thisRlAgenton a batch ofRlEnv.Steps.
-
Constructor Details
-
QAgent
Constructs aQAgent.It uses the
StackBatchifieras the default batchifier.- Parameters:
trainer- the trainer for the model to learnrewardDiscount- the reward discount to apply to rewards from future states
-
QAgent
Constructs aQAgentwith a customBatchifier.- Parameters:
trainer- the trainer for the model to learnrewardDiscount- the reward discount to apply to rewards from future statesbatchifier- the batchifier to join inputs with
-
-
Method Details
-
chooseAction
Chooses the next action to take within theRlEnv.- Specified by:
chooseActionin interfaceRlAgent- Parameters:
env- the current environmenttraining- true if the agent is currently traning- Returns:
- the action to take
-
trainBatch
Trains thisRlAgenton a batch ofRlEnv.Steps.- Specified by:
trainBatchin interfaceRlAgent- Parameters:
batchSteps- the steps to train on
-