Gaussian radial basis function kernel. More...
#include <shark/Models/Kernels/GaussianRbfKernel.h>
Public Types | |
typedef base_type::BatchInputType | BatchInputType |
typedef base_type::ConstInputReference | ConstInputReference |
typedef base_type::ConstBatchInputReference | ConstBatchInputReference |
Public Types inherited from shark::AbstractKernelFunction< InputType > | |
enum | Feature |
enumerations of kerneland metric features (flags) More... | |
typedef base_type::InputType | InputType |
Input type of the Kernel. More... | |
typedef base_type::BatchInputType | BatchInputType |
batch input type of the kernel More... | |
typedef base_type::ConstInputReference | ConstInputReference |
Const references to InputType. More... | |
typedef base_type::ConstBatchInputReference | ConstBatchInputReference |
Const references to BatchInputType. More... | |
typedef TypedFlags< Feature > | Features |
This statement declares the member m_features. See Core/Flags.h for details. More... | |
typedef TypedFeatureNotAvailableException< Feature > | FeatureNotAvailableException |
Public Types inherited from shark::AbstractMetric< InputType > | |
typedef InputType | InputType |
Input type of the Kernel. More... | |
typedef Batch< InputType >::type | BatchInputType |
batch input type of the kernel More... | |
typedef ConstProxyReference< InputType const >::type | ConstInputReference |
Const references to InputType. More... | |
typedef ConstProxyReference< BatchInputType const >::type | ConstBatchInputReference |
Const references to BatchInputType. More... | |
Public Types inherited from shark::IParameterizable<> | |
typedef RealVector | ParameterVectorType |
Public Member Functions | |
GaussianRbfKernel (double gamma=1.0, bool unconstrained=false) | |
std::string | name () const |
From INameable: return the class name. More... | |
RealVector | parameterVector () const |
Return the parameter vector. More... | |
void | setParameterVector (RealVector const &newParameters) |
Set the parameter vector. More... | |
size_t | numberOfParameters () const |
Return the number of parameters. More... | |
double | gamma () const |
Get the bandwidth parameter value. More... | |
double | sigma () const |
Return ``standard deviation'' of Gaussian. More... | |
void | setGamma (double gamma) |
void | setSigma (double sigma) |
Set ``standard deviation'' of Gaussian. More... | |
void | read (InArchive &ar) |
From ISerializable. More... | |
void | write (OutArchive &ar) const |
From ISerializable. More... | |
boost::shared_ptr< State > | createState () const |
creates the internal state of the kernel More... | |
double | eval (ConstInputReference x1, ConstInputReference x2) const |
evaluates \( k(x_1,x_2)\) More... | |
void | eval (ConstBatchInputReference batchX1, ConstBatchInputReference batchX2, RealMatrix &result, State &state) const |
evaluates \( k(x_1,x_2)\) and computes the intermediate value More... | |
void | eval (ConstBatchInputReference batchX1, ConstBatchInputReference batchX2, RealMatrix &result) const |
Evaluates the subset of the KernelGram matrix which is defined by X1(rows) and X2 (columns). More... | |
void | weightedParameterDerivative (ConstBatchInputReference batchX1, ConstBatchInputReference batchX2, RealMatrix const &coefficients, State const &state, RealVector &gradient) const |
Computes the gradient of the parameters as a weighted sum over the gradient of all elements of the batch. More... | |
void | weightedInputDerivative (ConstBatchInputReference batchX1, ConstBatchInputReference batchX2, RealMatrix const &coefficientsX2, State const &state, BatchInputType &gradient) const |
Calculates the derivative of the inputs X1 (only x1!). More... | |
Public Member Functions inherited from shark::AbstractKernelFunction< InputType > | |
AbstractKernelFunction () | |
const Features & | features () const |
virtual void | updateFeatures () |
bool | hasFirstParameterDerivative () const |
bool | hasFirstInputDerivative () const |
bool | isNormalized () const |
bool | supportsVariableInputSize () const |
double | operator() (ConstInputReference x1, ConstInputReference x2) const |
Convenience operator which evaluates the kernel function. More... | |
RealMatrix | operator() (ConstBatchInputReference batchX1, ConstBatchInputReference batchX2) const |
Evaluates the subset of the KernelGram matrix which is defined by X1(rows) and X2 (columns). More... | |
virtual double | featureDistanceSqr (ConstInputReference x1, ConstInputReference x2) const |
Computes the squared distance in the kernel induced feature space. More... | |
virtual RealMatrix | featureDistanceSqr (ConstBatchInputReference batchX1, ConstBatchInputReference batchX2) const |
Computes the squared distance in the kernel induced feature space. More... | |
Public Member Functions inherited from shark::AbstractMetric< InputType > | |
AbstractMetric () | |
virtual | ~AbstractMetric () |
virtual double | featureDistanceSqr (ConstInputReference x1, ConstInputReference x2) const=0 |
Computes the squared distance in the kernel induced feature space. More... | |
virtual RealMatrix | featureDistanceSqr (ConstBatchInputReference batchX1, ConstBatchInputReference batchX2) const=0 |
double | featureDistance (ConstInputReference x1, ConstInputReference x2) const |
Computes the distance in the kernel induced feature space. More... | |
Public Member Functions inherited from shark::INameable | |
virtual | ~INameable () |
Public Member Functions inherited from shark::IParameterizable<> | |
virtual | ~IParameterizable () |
Public Member Functions inherited from shark::ISerializable | |
virtual | ~ISerializable () |
Virtual d'tor. More... | |
void | load (InArchive &archive, unsigned int version) |
Versioned loading of components, calls read(...). More... | |
void | save (OutArchive &archive, unsigned int version) const |
Versioned storing of components, calls write(...). More... | |
BOOST_SERIALIZATION_SPLIT_MEMBER () | |
Protected Attributes | |
double | m_gamma |
kernel bandwidth parameter More... | |
bool | m_unconstrained |
use log storage More... | |
Protected Attributes inherited from shark::AbstractKernelFunction< InputType > | |
Features | m_features |
Gaussian radial basis function kernel.
Gaussian radial basis function kernel \( k(x_1, x_2) = \exp(-\gamma \cdot \| x_1 - x_2 \|^2) \) with single bandwidth parameter \( \gamma \). Optionally, the parameter can be encoded as \( \exp(\eta) \), which allows for unconstrained optimization.
Definition at line 50 of file GaussianRbfKernel.h.
typedef base_type::BatchInputType shark::GaussianRbfKernel< InputType >::BatchInputType |
Definition at line 65 of file GaussianRbfKernel.h.
typedef base_type::ConstBatchInputReference shark::GaussianRbfKernel< InputType >::ConstBatchInputReference |
Definition at line 67 of file GaussianRbfKernel.h.
typedef base_type::ConstInputReference shark::GaussianRbfKernel< InputType >::ConstInputReference |
Definition at line 66 of file GaussianRbfKernel.h.
|
inline |
Definition at line 69 of file GaussianRbfKernel.h.
References shark::GaussianRbfKernel< InputType >::gamma(), shark::AbstractKernelFunction< InputType >::HAS_FIRST_INPUT_DERIVATIVE, shark::AbstractKernelFunction< InputType >::HAS_FIRST_PARAMETER_DERIVATIVE, shark::AbstractKernelFunction< InputType >::IS_NORMALIZED, shark::AbstractKernelFunction< InputType >::m_features, shark::GaussianRbfKernel< InputType >::m_gamma, and shark::GaussianRbfKernel< InputType >::m_unconstrained.
|
inlinevirtual |
creates the internal state of the kernel
Reimplemented from shark::AbstractKernelFunction< InputType >.
Definition at line 141 of file GaussianRbfKernel.h.
|
inlinevirtual |
evaluates \( k(x_1,x_2)\)
Gaussian radial basis function kernel
\[ k(x_1, x_2) = \exp(-\gamma \cdot \| x_1 - x_2 \|^2) \]
Reimplemented from shark::AbstractKernelFunction< InputType >.
Definition at line 149 of file GaussianRbfKernel.h.
References SIZE_CHECK.
|
inlinevirtual |
evaluates \( k(x_1,x_2)\) and computes the intermediate value
Gaussian radial basis function kernel
\[ k(x_1, x_2) = \exp(-\gamma \cdot \| x_1 - x_2 \|^2) \]
Implements shark::AbstractKernelFunction< InputType >.
Definition at line 160 of file GaussianRbfKernel.h.
References SIZE_CHECK, and shark::State::toState().
|
inlinevirtual |
Evaluates the subset of the KernelGram matrix which is defined by X1(rows) and X2 (columns).
The result matrix is filled in with the values result(i,j) = kernel(x1[i], x2[j]);
Reimplemented from shark::AbstractKernelFunction< InputType >.
Definition at line 175 of file GaussianRbfKernel.h.
References SIZE_CHECK.
|
inline |
Get the bandwidth parameter value.
Definition at line 107 of file GaussianRbfKernel.h.
References shark::GaussianRbfKernel< InputType >::m_gamma.
Referenced by shark::GaussianRbfKernel< InputType >::GaussianRbfKernel(), main(), and shark::GaussianRbfKernel< InputType >::setGamma().
|
inlinevirtual |
From INameable: return the class name.
Reimplemented from shark::INameable.
Definition at line 78 of file GaussianRbfKernel.h.
|
inlinevirtual |
Return the number of parameters.
Reimplemented from shark::IParameterizable<>.
Definition at line 102 of file GaussianRbfKernel.h.
|
inlinevirtual |
Return the parameter vector.
Reimplemented from shark::IParameterizable<>.
Definition at line 81 of file GaussianRbfKernel.h.
References shark::GaussianRbfKernel< InputType >::m_gamma, and shark::GaussianRbfKernel< InputType >::m_unconstrained.
|
inlinevirtual |
From ISerializable.
Reimplemented from shark::AbstractMetric< InputType >.
Definition at line 129 of file GaussianRbfKernel.h.
References shark::GaussianRbfKernel< InputType >::m_gamma, and shark::GaussianRbfKernel< InputType >::m_unconstrained.
|
inline |
Set the bandwidth parameter value.
shark::Exception | if gamma <= 0. |
Definition at line 118 of file GaussianRbfKernel.h.
References shark::GaussianRbfKernel< InputType >::gamma(), shark::GaussianRbfKernel< InputType >::m_gamma, and SHARK_RUNTIME_CHECK.
|
inlinevirtual |
Set the parameter vector.
Reimplemented from shark::IParameterizable<>.
Definition at line 91 of file GaussianRbfKernel.h.
References shark::GaussianRbfKernel< InputType >::m_gamma, shark::GaussianRbfKernel< InputType >::m_unconstrained, and SHARK_RUNTIME_CHECK.
|
inline |
Set ``standard deviation'' of Gaussian.
Definition at line 124 of file GaussianRbfKernel.h.
References shark::GaussianRbfKernel< InputType >::m_gamma, and shark::GaussianRbfKernel< InputType >::sigma().
|
inline |
Return ``standard deviation'' of Gaussian.
Definition at line 112 of file GaussianRbfKernel.h.
References shark::GaussianRbfKernel< InputType >::m_gamma.
Referenced by shark::GaussianRbfKernel< InputType >::setSigma().
|
inlinevirtual |
Calculates the derivative of the inputs X1 (only x1!).
The i-th row of the resulting matrix is a weighted sum of the form: c[i,0] * k'(x1[i], x2[0]) + c[i,1] * k'(x1[i], x2[1]) + ... + c[i,n] * k'(x1[i], x2[n]).
The default implementation throws a "not implemented" exception.
Reimplemented from shark::AbstractKernelFunction< InputType >.
Definition at line 205 of file GaussianRbfKernel.h.
References SIZE_CHECK, and shark::State::toState().
|
inlinevirtual |
Computes the gradient of the parameters as a weighted sum over the gradient of all elements of the batch.
The default implementation throws a "not implemented" exception.
Reimplemented from shark::AbstractKernelFunction< InputType >.
Definition at line 181 of file GaussianRbfKernel.h.
References SIZE_CHECK, and shark::State::toState().
|
inlinevirtual |
From ISerializable.
Reimplemented from shark::AbstractMetric< InputType >.
Definition at line 135 of file GaussianRbfKernel.h.
References shark::GaussianRbfKernel< InputType >::m_gamma, and shark::GaussianRbfKernel< InputType >::m_unconstrained.
|
protected |
kernel bandwidth parameter
Definition at line 274 of file GaussianRbfKernel.h.
Referenced by shark::GaussianRbfKernel< InputType >::gamma(), shark::GaussianRbfKernel< InputType >::GaussianRbfKernel(), shark::GaussianRbfKernel< InputType >::parameterVector(), shark::GaussianRbfKernel< InputType >::read(), shark::GaussianRbfKernel< InputType >::setGamma(), shark::GaussianRbfKernel< InputType >::setParameterVector(), shark::GaussianRbfKernel< InputType >::setSigma(), shark::GaussianRbfKernel< InputType >::sigma(), and shark::GaussianRbfKernel< InputType >::write().
|
protected |
use log storage
Definition at line 275 of file GaussianRbfKernel.h.
Referenced by shark::GaussianRbfKernel< InputType >::GaussianRbfKernel(), shark::GaussianRbfKernel< InputType >::parameterVector(), shark::GaussianRbfKernel< InputType >::read(), shark::GaussianRbfKernel< InputType >::setParameterVector(), and shark::GaussianRbfKernel< InputType >::write().