SmartEngine  1.6.0
Public Member Functions | List of all members
SmartEngine::ICuriosityModule Class Referenceabstract

A curiosity module is a way of rewarding an agent for behavior not yet seen. Rewards are given based on how expected the next set of observations are given the previous observations and the chosen actions. Unexpected results are given larger rewards than behavior the agent saw in the past, thus promoting the agent to be curious and explore the world. More...

#include <CuriosityModule.h>

Inheritance diagram for SmartEngine::ICuriosityModule:
SmartEngine::IObject SmartEngine::IResource SmartEngine::IObject SmartEngine::ISerializable SmartEngine::IObject

Public Member Functions

virtual void SetRandomWeights ()=0
 Initialize the weights to random values. More...
 
virtual float GetLoss ()=0
 Returns the loss of the last batch processed. The loss represents how well the internal models are at mapping the observation / action space. More...
 
virtual float GetReward ()=0
 Returns the sum rewards of the last batch of data processed. Useful for giving an idea of how much reward is being injected over time. More...
 
- Public Member Functions inherited from SmartEngine::IObject
virtual ObjectId GetId () const =0
 Returns the ID of this object. More...
 
virtual void AddRef () const =0
 Increments the internal reference count on this object. It is not common to use this method directly. More...
 
virtual void Release () const =0
 Decrements the internal reference count on this object. It is not common to use this method directly. More...
 
virtual int GetRefCount () const =0
 Returns the number of references to this object. More...
 
virtual void * QueryInterface (ObjectClassId id)=0
 Queries the object for an interface and returns a pointer to that interface if found. More...
 
void operator= (IObject const &x)=delete
 
- Public Member Functions inherited from SmartEngine::IResource
virtual const char * GetResourceName () const =0
 Returns the name of this resource passed to the constructor. More...
 
virtual SerializationResult GetLastLoadResult () const =0
 Returns the result of the last call to Load(). Useful for checking loaded data state after creation. More...
 
virtual SerializationResult Load (const char *appendName=nullptr)=0
 Load this object from disk. More...
 
virtual SerializationResult Save (const char *appendName=nullptr)=0
 Save this object to disk. More...
 
- Public Member Functions inherited from SmartEngine::ISerializable
virtual SerializationResult Serialize (IMemoryBuffer *buffer)=0
 Write the contents of this object to a buffer. More...
 
virtual SerializationResult Deserialize (IMemoryBuffer *buffer)=0
 Fill this object with contents from a buffer. More...
 

Additional Inherited Members

- Public Attributes inherited from SmartEngine::IObject
 private
 
 __pad0__: IObject() {} IObject(IObject const&) = delete
 

Detailed Description

A curiosity module is a way of rewarding an agent for behavior not yet seen. Rewards are given based on how expected the next set of observations are given the previous observations and the chosen actions. Unexpected results are given larger rewards than behavior the agent saw in the past, thus promoting the agent to be curious and explore the world.

Internally, the curiosity module turns the observation state into a feature dimension space, which is used to drive a forward model and inverse model. The forward model predicts the next state given the current state and action and is used for rewards. The inverse model computes the action given the current state and next state and is used to tune the accuracy of the forward model.

Member Function Documentation

◆ GetLoss()

virtual float SmartEngine::ICuriosityModule::GetLoss ( )
pure virtual

Returns the loss of the last batch processed. The loss represents how well the internal models are at mapping the observation / action space.

◆ GetReward()

virtual float SmartEngine::ICuriosityModule::GetReward ( )
pure virtual

Returns the sum rewards of the last batch of data processed. Useful for giving an idea of how much reward is being injected over time.

◆ SetRandomWeights()

virtual void SmartEngine::ICuriosityModule::SetRandomWeights ( )
pure virtual

Initialize the weights to random values.