Inheritance diagram for classias::train::truncated_gradient_base< error_tmpl >:
The detail of the algorithm is described in: John Langford, Lihong Li, and Tong Zhang. Sparse Online Learning via Truncated Gradient. JMLR 10(Mar):777-801, 2009.
This class implements internal variables, operations, and interface that are common for training a binary/multi classification.
error_tmpl | The type of the error (loss) function. |
Public Types | |
typedef error_tmpl | error_type |
The type implementing an error function. | |
typedef error_type::model_type | model_type |
The type implementing a model (weight vector for features). | |
typedef model_type::value_type | value_type |
The type representing a value. | |
typedef truncated_gradient_base< error_tmpl > | this_class |
A synonym of this class. | |
Public Member Functions | |
truncated_gradient_base () | |
Constructs the object. | |
virtual | ~truncated_gradient_base () |
Destructs the object. | |
void | clear () |
Resets the internal states and parameters to default. | |
void | set_num_features (size_t size) |
Sets the number of features. | |
void | start () |
Starts a training process. | |
void | finish () |
Terminates a training process. | |
void | discontinue () |
void | copyright (std::ostream &os) |
Shows the copyright information. | |
void | report (std::ostream &os) |
Reports the current state of the training process. | |
parameter_exchange & | params () |
Obtains the parameter interface. | |
model_type & | model () |
Obtains an access to the weight vector (model). | |
const model_type & | model () const |
Obtains a read-only access to the weight vector (model). | |
value_type | loss () const |
Data Fields | |
report_type | m_report |
Protected Member Functions | |
value_type | learning_rate (int t) |
Computes the learning rate for the update count. | |
void | accumulate_penalty (int t, value_type eta) |
Accumulates the L1 penalty for the current update. | |
void | finalize_penalty (int t, value_type eta) |
Finalizes the accmulation of L1 penalties. | |
void | initialize_weights () |
Initializes the weight vector. | |
void | apply_penalty () |
Applies the L1 penalties to the weight vector. | |
void | apply_penalty (int i) |
Applies the L1 penalty to the weight of a feature. | |
Protected Attributes | |
model_type | m_w |
The array of feature weights. | |
model_type | m_penalty |
The array of L1 penalties previously applied to weights. | |
value_type | m_lambda |
The lambda (coefficient for L1 regularization). | |
value_type | m_eta |
The current learning rate. | |
value_type | m_t0 |
The offset of the update count. | |
int | m_t |
The update count. | |
value_type | m_loss |
The loss. | |
value_type | m_sum_penalty |
The total amount of L1 penalty. | |
parameter_exchange | m_params |
Parameter interface. | |
value_type | m_c |
The coefficient for L2 regularization. | |
value_type | m_n |
The number of instances in the data set. | |
value_type | m_eta0 |
The initial learning rate. | |
int | m_truncate_period |
The period for truncations. | |
bool | m_truncated |
The boolean value indicating whether m_w is truncated. | |
Data Structures | |
struct | report_type |
The type of progress information. More... |
void classias::train::truncated_gradient_base< error_tmpl >::set_num_features | ( | size_t | size | ) | [inline] |
Sets the number of features.
This function resizes the weight vector.
size | The number of features. |
void classias::train::truncated_gradient_base< error_tmpl >::start | ( | ) | [inline] |
Starts a training process.
This function resets the internal states, and prepares for a training process.
void classias::train::truncated_gradient_base< error_tmpl >::finish | ( | ) | [inline] |
Terminates a training process.
This function performs a post-processing after a training process.
void classias::train::truncated_gradient_base< error_tmpl >::copyright | ( | std::ostream & | os | ) | [inline] |
Shows the copyright information.
os | The output stream. |
void classias::train::truncated_gradient_base< error_tmpl >::report | ( | std::ostream & | os | ) | [inline] |
Reports the current state of the training process.
os | The output stream. |
value_type classias::train::truncated_gradient_base< error_tmpl >::learning_rate | ( | int | t | ) | [inline, protected] |
Computes the learning rate for the update count.
t | The update count. |
void classias::train::truncated_gradient_base< error_tmpl >::accumulate_penalty | ( | int | t, | |
value_type | eta | |||
) | [inline, protected] |
Accumulates the L1 penalty for the current update.
t | The update count. | |
eta | The learning rate for the update count. |
void classias::train::truncated_gradient_base< error_tmpl >::finalize_penalty | ( | int | t, | |
value_type | eta | |||
) | [inline, protected] |
Finalizes the accmulation of L1 penalties.
t | The update count. | |
eta | The learning rate for the update count. |
void classias::train::truncated_gradient_base< error_tmpl >::initialize_weights | ( | ) | [inline, protected] |
Initializes the weight vector.
This function sets W = 0.
void classias::train::truncated_gradient_base< error_tmpl >::apply_penalty | ( | int | i | ) | [inline, protected] |
Applies the L1 penalty to the weight of a feature.
i | The feature index. |
parameter_exchange& classias::train::truncated_gradient_base< error_tmpl >::params | ( | ) | [inline] |
Obtains the parameter interface.
model_type& classias::train::truncated_gradient_base< error_tmpl >::model | ( | ) | [inline] |
Obtains an access to the weight vector (model).
const model_type& classias::train::truncated_gradient_base< error_tmpl >::model | ( | ) | const [inline] |
Obtains a read-only access to the weight vector (model).