Scaling layer usage for action output
2 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Hello, I am using the tanhlayer as the output activation function for the action network while my action space is [0,10]. In this sense, I am referring to this answer by adding scaling layer.
However, I got saturated action value. I looked into the answer, shouldn't it be
scalingLayer('Scale',(actionInfo.UpperLimit-actionInfo.LowerLimit)/2,'Bias',(actionInfo.UpperLimit+actionInfo.LowerLimit)/2)
Thanks for your help.
Here is the code"
numActions = 2;
actInfo = rlNumericSpec([numActions 1],'LowerLimit',0,'UpperLimit', 10);
actorNetwork = [
featureInputLayer(numObservations,'Normalization','none','Name','State')
fullyConnectedLayer(32, 'Name','actorFC1')
reluLayer('Name','relu1')
fullyConnectedLayer(16, 'Name','actorFC2')
reluLayer('Name','relu2')
fullyConnectedLayer(numActions,'Name','Action')
tanhLayer('Name','tanh3')
scalingLayer('Scale',actInfo.UpperLimit-actInfo.LowerLimit,'Bias',(actInfo.UpperLimit-actInfo.LowerLimit)/2)
];
actordlNet = dlnetwork(actorNetwork);
actor = rlContinuousDeterministicActor(actordlNet,obsInfo,actInfo);
5 commentaires
Emmanouil Tzorakoleftherakis
le 20 Juin 2023
I corrected the answer, you are right, the scale factor should be divided by 2
Réponses (0)
Voir également
Catégories
En savoir plus sur Introduction to Installation and Licensing dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!