public class FVGaussianRBF extends FVRBF
FVRBF
whose response is dictated by a Gaussian kernel. More specifically, this RBF returns
e^(-1 * d(x, c)^2 / e^2), where d(x, c) is the distance from a query state s to a defined "center,"
c, of this RBF and e is a bandwidth parameter on (0, +infinity) that affects the range of influence of this RBF. The
larger the bandwidth value, the more uniform the response it gives to any arbitrary input state. The distance
between the query state and the center state is determined by a provided distance function.Modifier and Type | Field and Description |
---|---|
protected double |
epsilon
The bandwidth parameter.
|
centeredState, metric
Constructor and Description |
---|
FVGaussianRBF(double[] centeredState,
double epsilon)
Initializes using an
FVEuclideanDistance distance metric. |
FVGaussianRBF(double[] centeredState,
FVDistanceMetric metric,
double epsilon)
Initializes.
|
Modifier and Type | Method and Description |
---|---|
static java.util.List<FVRBF> |
generateGaussianRBFsForStates(java.util.List<State> states,
StateToFeatureVectorGenerator fvGen,
double epsilon)
Creates a
List of FVGaussianRBF units
for each State provided using the given StateToFeatureVectorGenerator , and epsilon value
and using a default FVEuclideanDistance metric for all units. |
static java.util.List<FVRBF> |
generateGaussianRBFsForStates(java.util.List<State> states,
StateToFeatureVectorGenerator fvGen,
FVDistanceMetric metric,
double epsilon)
Creates a
List of FVGaussianRBF units
for each State provided using the given StateToFeatureVectorGenerator , metric, and epsilon value. |
double |
responseFor(double[] input)
Returns the RBF response from its center state to the query input state.
|
protected double epsilon
public FVGaussianRBF(double[] centeredState, FVDistanceMetric metric, double epsilon)
centeredState
- the centered state for this unit represented as a double arraymetric
- the distance metric with which to compare statesepsilon
- the Gaussian bandwidth value; the larger the value, the more uniform a response this unit givespublic FVGaussianRBF(double[] centeredState, double epsilon)
FVEuclideanDistance
distance metric.centeredState
- the centered state for this unit represented as a double arrayepsilon
- the Gaussian bandwidth value; the larger the value, the more uniform a response this unit givespublic double responseFor(double[] input)
FVRBF
responseFor
in class FVRBF
input
- the query input state represented with a double array.public static java.util.List<FVRBF> generateGaussianRBFsForStates(java.util.List<State> states, StateToFeatureVectorGenerator fvGen, FVDistanceMetric metric, double epsilon)
List
of FVGaussianRBF
units
for each State
provided using the given StateToFeatureVectorGenerator
, metric, and epsilon value.states
- the State
objects around which a GaussianRBF
will be createdfvGen
- the StateToFeatureVectorGenerator
used to convert states to a double array usable by FVRBF
units.metric
- the DistanceMetric
to useepsilon
- the bandwidth parameter.List
of GaussianRBF
units.public static java.util.List<FVRBF> generateGaussianRBFsForStates(java.util.List<State> states, StateToFeatureVectorGenerator fvGen, double epsilon)
List
of FVGaussianRBF
units
for each State
provided using the given StateToFeatureVectorGenerator
, and epsilon value
and using a default FVEuclideanDistance
metric for all units.states
- the State
objects around which a GaussianRBF
will be createdfvGen
- the StateToFeatureVectorGenerator
used to convert states to a double array usable by FVRBF
units.epsilon
- the bandwidth parameter.List
of GaussianRBF
units.