SHOGUN
v1.1.0
|
class GMNPLib Library of solvers for Generalized Minimal Norm Problem (GMNP).
Generalized Minimal Norm Problem to solve is
min 0.5*alpha'*H*alpha + c'*alpha
subject to sum(alpha) = 1, alpha(i) >= 0
H [dim x dim] is symmetric positive definite matrix. c [dim x 1] is an arbitrary vector.
The precision of the found solution is given by the parameters tmax, tolabs and tolrel which define the stopping conditions:
UB-LB <= tolabs -> exit_flag = 1 Abs. tolerance. UB-LB <= UB*tolrel -> exit_flag = 2 Relative tolerance. LB > th -> exit_flag = 3 Threshold on lower bound. t >= tmax -> exit_flag = 0 Number of iterations.
UB ... Upper bound on the optimal solution. LB ... Lower bound on the optimal solution. t ... Number of iterations. History ... Value of LB and UB wrt. number of iterations.
The following algorithms are implemented: ..............................................
For more info refer to V.Franc: Optimization Algorithms for Kernel Methods. Research report. CTU-CMP-2005-22. CTU FEL Prague. 2005. ftp://cmp.felk.cvut.cz/pub/cmp/articles/franc/Franc-PhD.pdf .
Public Member Functions | |
CGMNPLib () | |
CGMNPLib (float64_t *vector_y, CKernel *kernel, int32_t num_data, int32_t num_virtual_data, int32_t num_classes, float64_t reg_const) | |
virtual | ~CGMNPLib () |
int8_t | gmnp_imdm (float64_t *vector_c, int32_t dim, int32_t tmax, float64_t tolabs, float64_t tolrel, float64_t th, float64_t *alpha, int32_t *ptr_t, float64_t **ptr_History, int32_t verb) |
void | get_indices2 (int32_t *index, int32_t *c, int32_t i) |
Protected Member Functions | |
float64_t * | get_kernel_col (int32_t a) |
float64_t * | get_col (int32_t a, int32_t b) |
float64_t | kernel_fce (int32_t a, int32_t b) |
virtual const char * | get_name () const |
Protected Attributes | |
float64_t * | diag_H |
float64_t ** | kernel_columns |
float64_t * | cache_index |
int32_t | first_kernel_inx |
int64_t | Cache_Size |
int32_t | m_num_data |
float64_t | m_reg_const |
float64_t * | m_vector_y |
CKernel * | m_kernel |
int32_t | first_virt_inx |
float64_t * | virt_columns [3] |
int32_t | m_num_virt_data |
int32_t | m_num_classes |
CGMNPLib | ( | ) |
default constructor
Definition at line 80 of file GMNPLib.cpp.
CGMNPLib | ( | float64_t * | vector_y, |
CKernel * | kernel, | ||
int32_t | num_data, | ||
int32_t | num_virtual_data, | ||
int32_t | num_classes, | ||
float64_t | reg_const | ||
) |
constructor
vector_y | vector y |
kernel | kernel |
num_data | number of data |
num_virtual_data | number of virtual data |
num_classes | number of classes |
reg_const | reg const |
Definition at line 100 of file GMNPLib.cpp.
~CGMNPLib | ( | ) | [virtual] |
Definition at line 143 of file GMNPLib.cpp.
void get_indices2 | ( | int32_t * | index, |
int32_t * | c, | ||
int32_t | i | ||
) |
float64_t * get_kernel_col | ( | int32_t | a | ) | [protected] |
virtual const char* get_name | ( | ) | const [protected, virtual] |
int8_t gmnp_imdm | ( | float64_t * | vector_c, |
int32_t | dim, | ||
int32_t | tmax, | ||
float64_t | tolabs, | ||
float64_t | tolrel, | ||
float64_t | th, | ||
float64_t * | alpha, | ||
int32_t * | ptr_t, | ||
float64_t ** | ptr_History, | ||
int32_t | verb | ||
) |
-------------------------------------------------------------- GMNP solver based on improved MDM algorithm 1.
Search strategy: u determined by common rule and v is optimized.
Usage: exitflag = gmnp_imdm( &get_col, diag_H, vector_c, dim, tmax, tolabs, tolrel, th, &alpha, &t, &History ); --------------------------------------------------------------
Definition at line 260 of file GMNPLib.cpp.
float64_t kernel_fce | ( | int32_t | a, |
int32_t | b | ||
) | [protected] |
float64_t* cache_index [protected] |
int64_t Cache_Size [protected] |
int32_t first_kernel_inx [protected] |
int32_t first_virt_inx [protected] |
float64_t** kernel_columns [protected] |
int32_t m_num_classes [protected] |
int32_t m_num_data [protected] |
int32_t m_num_virt_data [protected] |
float64_t m_reg_const [protected] |
float64_t* m_vector_y [protected] |
float64_t* virt_columns[3] [protected] |