shark::SubrangeKernel< InputType, InnerKernel > Class Template Reference

Weighted sum of kernel functions. More...

#include <shark/Models/Kernels/SubrangeKernel.h>

+ Inheritance diagram for shark::SubrangeKernel< InputType, InnerKernel >:

Public Member Functions

std::string name () const
 From INameable: return the class name. More...
 
template<class Kernels , class Ranges >
 SubrangeKernel (Kernels const &kernels, Ranges const &ranges)
 

Detailed Description

template<class InputType, class InnerKernel = WeightedSumKernel<InputType>>
class shark::SubrangeKernel< InputType, InnerKernel >

Weighted sum of kernel functions.

For a set of positive definite kernels \( k_1, \dots, k_n \) with positive coeffitients \( w_1, \dots, w_n \) the sum

\[ \tilde k(x_1, x_2) := \sum_{i=1}^{n} w_i \cdot k_i(x_1, x_2) \]

is again a positive definite kernel function. This still holds when the sub-kernels only operate of a subset of features, that is, when we have a direct sum kernel ( see e.g. the UCSC Technical Report UCSC-CRL-99-10: Convolution Kernels on Discrete Structures by David Haussler ).

This class is very similar to the #WeightedSumKernel , except that it assumes it's inputs to be tuples of values \( x=(x_1,\dots, x_n) \) and we calculate the direct sum of kernels

\[ \tilde k(x, y) := \sum_{i=1}^{n} w_i \cdot k_i(x_i, y_i) \]

Internally, the weights are represented as \( w_i = \exp(\xi_i) \) to allow for unconstrained optimization.

The result of the kernel evaluation is devided by the sum of the kernel weights, so that in total, this amounts to fixing the sum of the weights to one.

Definition at line 189 of file SubrangeKernel.h.

Constructor & Destructor Documentation

◆ SubrangeKernel()

template<class InputType , class InnerKernel = WeightedSumKernel<InputType>>
template<class Kernels , class Ranges >
shark::SubrangeKernel< InputType, InnerKernel >::SubrangeKernel ( Kernels const &  kernels,
Ranges const &  ranges 
)
inline

Definition at line 202 of file SubrangeKernel.h.

Member Function Documentation

◆ name()

template<class InputType , class InnerKernel = WeightedSumKernel<InputType>>
std::string shark::SubrangeKernel< InputType, InnerKernel >::name ( ) const
inline

From INameable: return the class name.

Definition at line 198 of file SubrangeKernel.h.


The documentation for this class was generated from the following file: