class_docstr: AdditiveNoise is an exploration policy intended for continuous action spaces. It takes the action from the agent
  and adds a Gaussian distributed noise to it. The amount of noise added to the action follows the noise amount that
  can be given in two different ways:
  1. Specified by the user as a noise schedule which is taken in percentiles out of the action space size
  2. Specified by the agents action. In case the agents action is a list with 2 values, the 1st one is assumed to
  be the mean of the action, and 2nd is assumed to be its standard deviation.
class_docstr_tok: ["AdditiveNoise","is","an","exploration","policy","intended","for","continuous","action","spaces",".","It","takes","the","action","from","the","agent","and","adds","a","Gaussian","distributed","noise","to","it",".","The","amount","of","noise","added","to","the","action","follows","the","noise","amount","that","can","be","given","in","two","different","ways",":","1",".","Specified","by","the","user","as","a","noise","schedule","which","is","taken","in","percentiles","out","of","the","action","space","size","2",".","Specified","by","the","agents","action",".","In","case","the","agents","action","is","a","list","with","2","values",",","the","1st","one","is","assumed","to","be","the","mean","of","the","action",",","and","2nd","is","assumed","to","be","its","standard","deviation","."]
docstr: :param action_space: the action space used by the environment
  :param noise_schedule: the schedule for the noise
  :param evaluation_noise: the noise variance that will be used during evaluation phases
  :param noise_as_percentage_from_action_space: a bool deciding whether the noise is absolute or as a percentage
                                                from the action space
docstr_tok: [":","param","action_space",":","the","action","space","used","by","the","environment",":","param","noise_schedule",":","the","schedule","for","the","noise",":","param","evaluation_noise",":","the","noise","variance","that","will","be","used","during","evaluation","phases",":","param","noise_as_percentage_from_action_space",":","a","bool","deciding","whether","the","noise","is","absolute","or","as","a","percentage","from","the","action","space"]
code: def __init__(
      self,
      action_space: ActionSpace,
      noise_schedule: Schedule,
      evaluation_noise: float,
      noise_as_percentage_from_action_space: bool = True,
  ):
      """
      :param action_space: the action space used by the environment
      :param noise_schedule: the schedule for the noise
      :param evaluation_noise: the noise variance that will be used during evaluation phases
      :param noise_as_percentage_from_action_space: a bool deciding whether the noise is absolute or as a percentage
                                                    from the action space
      """
      super().__init__(action_space)
      self.noise_schedule = noise_schedule
      self.evaluation_noise = evaluation_noise
      self.noise_as_percentage_from_action_space = (
          noise_as_percentage_from_action_space
      )
  
      if not isinstance(action_space, BoxActionSpace) and (
          hasattr(action_space, "filtered_action_space")
          and not isinstance(
              action_space.filtered_action_space, BoxActionSpace
          )
      ):
          raise ValueError(
              "Additive noise exploration works only for continuous controls."
              "The given action space is of type: {}".format(
                  action_space.__class__.__name__
              )
          )
  
      if (
          not np.all(-np.inf < action_space.high)
          or not np.all(action_space.high < np.inf)
          or not np.all(-np.inf < action_space.low)
          or not np.all(action_space.low < np.inf)
      ):
          raise ValueError(
              "Additive noise exploration requires bounded actions"
          )
  
file_path: coach/rl_coach/exploration_policies/additive_noise.py
imports: from typing import List
  import numpy
  from rl_coach.core_types import RunPhase, ActionType
  from rl_coach.exploration_policies.exploration_policy import ContinuousActionExplorationPolicy, ExplorationParameters
  from rl_coach.schedules import Schedule, LinearSchedule
  from rl_coach.spaces import ActionSpace, BoxActionSpace
label_desc: Use image node_id 1 to create a new AdditiveNoise object from inherited base classes: ContinuousActionExplorationPolicy with example: obj = AdditiveNoise(action_space, noise_schedule, evaluation_noise, noise_as_percentage_from_action_space)