Gaussian radial basis function kernel. More...
#include <shark/Models/Kernels/GaussianRbfKernel.h>
Inheritance diagram for shark::GaussianRbfKernel< InputType >: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 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) |
| double | setSigma (double sigma) const |
| 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 shark::blas::distanceSqr(), shark::GaussianRbfKernel< InputType >::m_gamma, and 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 shark::blas::distanceSqr(), shark::GaussianRbfKernel< InputType >::m_gamma, shark::blas::noalias(), 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 shark::blas::distanceSqr(), shark::GaussianRbfKernel< InputType >::m_gamma, shark::blas::noalias(), and 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_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_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 shark::GaussianRbfKernel< InputType >::m_gamma, shark::blas::noalias(), shark::blas::prod(), shark::blas::row(), SIZE_CHECK, shark::blas::sum_columns(), 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 shark::GaussianRbfKernel< InputType >::m_gamma, shark::GaussianRbfKernel< InputType >::m_unconstrained, SIZE_CHECK, shark::blas::sum(), 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 >::eval(), 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(), shark::GaussianRbfKernel< InputType >::weightedInputDerivative(), shark::GaussianRbfKernel< InputType >::weightedParameterDerivative(), 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(), shark::GaussianRbfKernel< InputType >::weightedParameterDerivative(), and shark::GaussianRbfKernel< InputType >::write().