Vowpal Wabbit
|
Classes | |
union | int_float |
Functions | |
template<typename It > | |
int | generate_epsilon_greedy (float epsilon, uint32_t top_action, It pmf_first, It pmf_last) |
Generates epsilon-greedy style exploration distribution. More... | |
template<typename InputIt , typename OutputIt > | |
int | generate_softmax (float lambda, InputIt scores_first, InputIt scores_last, OutputIt pmf_first, OutputIt pmf_last) |
Generates softmax style exploration distribution. More... | |
template<typename InputIt , typename OutputIt > | |
int | generate_bag (InputIt top_actions_first, InputIt top_actions_last, OutputIt pmf_first, OutputIt pmf_last) |
Generates an exploration distribution according to votes on actions. More... | |
template<typename It > | |
int | enforce_minimum_probability (float minimum_uniform, bool update_zero_elements, It pmf_first, It pmf_last) |
Updates the pmf to ensure each action is explored with at least minimum_uniform/num_actions. More... | |
template<typename It > | |
int | sample_after_normalizing (uint64_t seed, It pmf_first, It pmf_last, uint32_t &chosen_index) |
Sample an index from the provided pmf. If the pmf is not normalized it will be updated in-place. More... | |
template<typename It > | |
int | sample_after_normalizing (const char *seed, It pmf_first, It pmf_last, uint32_t &chosen_index) |
Sample an index from the provided pmf. If the pmf is not normalized it will be updated in-place. More... | |
template<typename ActionIt > | |
int | swap_chosen (ActionIt action_first, ActionIt action_last, uint32_t chosen_index) |
Swap the first value with the chosen index. More... | |
template<typename It > | |
int | sample_pdf (uint64_t *p_seed, It pdf_first, It pdf_last, float &chosen_value, float &pdf_value) |
Sample a continuous value from the provided pdf. More... | |
float | uniform_random_merand48_advance (uint64_t &initial) |
float | uniform_random_merand48 (uint64_t initial) |
template<typename It > | |
int | generate_epsilon_greedy (float epsilon, uint32_t top_action, It pmf_first, It pmf_last, std::random_access_iterator_tag) |
template<typename InputIt , typename OutputIt > | |
int | generate_softmax (float lambda, InputIt scores_first, InputIt scores_last, std::input_iterator_tag, OutputIt pmf_first, OutputIt pmf_last, std::random_access_iterator_tag) |
template<typename InputIt , typename OutputIt > | |
int | generate_bag (InputIt top_actions_first, InputIt top_actions_last, std::input_iterator_tag, OutputIt pmf_first, OutputIt pmf_last, std::random_access_iterator_tag) |
template<typename It > | |
int | enforce_minimum_probability (float minimum_uniform, bool update_zero_elements, It pmf_first, It pmf_last, std::random_access_iterator_tag) |
template<typename It > | |
int | sample_after_normalizing (uint64_t seed, It pmf_first, It pmf_last, uint32_t &chosen_index, std::input_iterator_tag) |
template<typename It > | |
int | sample_after_normalizing (const char *seed, It pmf_first, It pmf_last, uint32_t &chosen_index, std::random_access_iterator_tag pmf_category) |
template<typename ActionIt > | |
int | swap_chosen (ActionIt action_first, ActionIt action_last, std::forward_iterator_tag, uint32_t chosen_index) |
template<typename ActionsIt > | |
int | swap_chosen (ActionsIt action_first, ActionsIt action_last, uint32_t chosen_index) |
template<typename It > | |
int | sample_scores (uint64_t *p_seed, It scores_first, It scores_last, uint32_t &chosen_index, std::random_access_iterator_tag) |
template<typename It > | |
int | sample_pdf (uint64_t *p_seed, It pdf_first, It pdf_last, float &chosen_value, float &pdf_value, std::random_access_iterator_tag) |
Sample a continuous value from the provided pdf. More... | |
Variables | |
constexpr uint64_t | CONSTANT_A = 0xeece66d5deece66dULL |
constexpr uint64_t | CONSTANT_C = 2147483647 |
constexpr int | BIAS = 127 << 23u |
int exploration::enforce_minimum_probability | ( | float | minimum_uniform, |
bool | update_zero_elements, | ||
It | pmf_first, | ||
It | pmf_last | ||
) |
Updates the pmf to ensure each action is explored with at least minimum_uniform/num_actions.
It | Iterator type of the pmf. Must be a RandomAccessIterator. |
minimum_uniform | The minimum amount of uniform distribution to impose on the pmf. |
update_zero_elements | If true elements with zero probability are updated, otherwise those actions will be unchanged. |
pmf_first | Iterator pointing to the pre-allocated beginning of the pmf to be generated by this function. |
pmf_last | Iterator pointing to the pre-allocated end of the pmf to be generated by this function. |
int exploration::enforce_minimum_probability | ( | float | minimum_uniform, |
bool | update_zero_elements, | ||
It | pmf_first, | ||
It | pmf_last, | ||
std::random_access_iterator_tag | |||
) |
int exploration::generate_bag | ( | InputIt | top_actions_first, |
InputIt | top_actions_last, | ||
OutputIt | pmf_first, | ||
OutputIt | pmf_last | ||
) |
Generates an exploration distribution according to votes on actions.
InputIt | Iterator type of the input actions. Must be an InputIterator. |
OutputIt | Iterator type of the pre-allocated pmf. Must be a RandomAccessIterator. |
top_actions_first | Iterator pointing to the beginning of the top actions. |
top_actions_last | Iterator pointing to the end of the top actions. |
pmf_first | Iterator pointing to the pre-allocated beginning of the pmf to be generated by this function. |
pmf_last | Iterator pointing to the pre-allocated end of the pmf to be generated by this function. |
int exploration::generate_bag | ( | InputIt | top_actions_first, |
InputIt | top_actions_last, | ||
std::input_iterator_tag | , | ||
OutputIt | pmf_first, | ||
OutputIt | pmf_last, | ||
std::random_access_iterator_tag | |||
) |
int exploration::generate_epsilon_greedy | ( | float | epsilon, |
uint32_t | top_action, | ||
It | pmf_first, | ||
It | pmf_last | ||
) |
Generates epsilon-greedy style exploration distribution.
It | Iterator type of the pre-allocated pmf. Must be a RandomAccessIterator. |
epsilon | Minimum probability used to explore among options. Each action is explored with at least epsilon/num_actions. |
top_action | Index of the exploit actions. This action will be get probability mass of 1-epsilon + (epsilon/num_actions). |
pmf_first | Iterator pointing to the pre-allocated beginning of the pmf to be generated by this function. |
pmf_last | Iterator pointing to the pre-allocated end of the pmf to be generated by this function. |
int exploration::generate_epsilon_greedy | ( | float | epsilon, |
uint32_t | top_action, | ||
It | pmf_first, | ||
It | pmf_last, | ||
std::random_access_iterator_tag | |||
) |
int exploration::generate_softmax | ( | float | lambda, |
InputIt | scores_first, | ||
InputIt | scores_last, | ||
OutputIt | pmf_first, | ||
OutputIt | pmf_last | ||
) |
Generates softmax style exploration distribution.
InputIt | Iterator type of the input scores. Must be an InputIterator. |
OutputIt | Iterator type of the pre-allocated pmf. Must be a RandomAccessIterator. |
lambda | Lambda parameter of softmax. |
scores_first | Iterator pointing to beginning of the scores. |
scores_last | Iterator pointing to end of the scores. |
pmf_first | Iterator pointing to the pre-allocated beginning of the pmf to be generated by this function. |
pmf_last | Iterator pointing to the pre-allocated end of the pmf to be generated by this function. |
int exploration::generate_softmax | ( | float | lambda, |
InputIt | scores_first, | ||
InputIt | scores_last, | ||
std::input_iterator_tag | , | ||
OutputIt | pmf_first, | ||
OutputIt | pmf_last, | ||
std::random_access_iterator_tag | |||
) |
int exploration::sample_after_normalizing | ( | uint64_t | seed, |
It | pmf_first, | ||
It | pmf_last, | ||
uint32_t & | chosen_index | ||
) |
Sample an index from the provided pmf. If the pmf is not normalized it will be updated in-place.
InputIt | Iterator type of the pmf. Must be a RandomAccessIterator. |
seed | The seed for the pseudo-random generator. |
pmf_first | Iterator pointing to the beginning of the pmf. |
pmf_last | Iterator pointing to the end of the pmf. |
chosen_index | returns the chosen index. |
int exploration::sample_after_normalizing | ( | const char * | seed, |
It | pmf_first, | ||
It | pmf_last, | ||
uint32_t & | chosen_index | ||
) |
Sample an index from the provided pmf. If the pmf is not normalized it will be updated in-place.
It | Iterator type of the pmf. Must be a RandomAccessIterator. |
seed | The seed for the pseudo-random generator. Will be hashed using MURMUR hash. |
pmf_first | Iterator pointing to the beginning of the pmf. |
pmf_last | Iterator pointing to the end of the pmf. |
chosen_index | returns the chosen index. |
int exploration::sample_after_normalizing | ( | uint64_t | seed, |
It | pmf_first, | ||
It | pmf_last, | ||
uint32_t & | chosen_index, | ||
std::input_iterator_tag | |||
) |
int exploration::sample_after_normalizing | ( | const char * | seed, |
It | pmf_first, | ||
It | pmf_last, | ||
uint32_t & | chosen_index, | ||
std::random_access_iterator_tag | pmf_category | ||
) |
int exploration::sample_pdf | ( | uint64_t * | p_seed, |
It | pdf_first, | ||
It | pdf_last, | ||
float & | chosen_value, | ||
float & | pdf_value | ||
) |
Sample a continuous value from the provided pdf.
It | Iterator type of the pmf. Must be a RandomAccessIterator. |
p_seed | The seed for the pseudo-random generator. Will be hashed using MURMUR hash. The seed state will be advanced |
pdf_first | Iterator pointing to the beginning of the pdf. |
pdf_last | Iterator pointing to the end of the pdf. |
chosen_value | returns the sampled continuous value. |
pdf_value | returns the probablity density at the sampled location. |
int exploration::sample_pdf | ( | uint64_t * | p_seed, |
It | pdf_first, | ||
It | pdf_last, | ||
float & | chosen_value, | ||
float & | pdf_value, | ||
std::random_access_iterator_tag | |||
) |
Sample a continuous value from the provided pdf.
It | Iterator type of the pmf. Must be a RandomAccessIterator. |
p_seed | The seed for the pseudo-random generator. Will be hashed using MURMUR hash. The seed state will be advanced |
pdf_first | Iterator pointing to the beginning of the pdf. |
pdf_last | Iterator pointing to the end of the pdf. |
chosen_value | returns the sampled continuous value. |
pdf_value | returns the probablity density at the sampled location. |
int exploration::sample_scores | ( | uint64_t * | p_seed, |
It | scores_first, | ||
It | scores_last, | ||
uint32_t & | chosen_index, | ||
std::random_access_iterator_tag | |||
) |
int exploration::swap_chosen | ( | ActionIt | action_first, |
ActionIt | action_last, | ||
uint32_t | chosen_index | ||
) |
Swap the first value with the chosen index.
ActionIt | Iterator type of the action. Must be a forward_iterator. |
action_first | Iterator pointing to the beginning of the pdf. |
action_last | Iterator pointing to the end of the pdf. |
chosen_index | The index value that should be swapped with the first element |
int exploration::swap_chosen | ( | ActionIt | action_first, |
ActionIt | action_last, | ||
std::forward_iterator_tag | , | ||
uint32_t | chosen_index | ||
) |
int exploration::swap_chosen | ( | ActionsIt | action_first, |
ActionsIt | action_last, | ||
uint32_t | chosen_index | ||
) |
|
inline |
|
inline |
constexpr int exploration::BIAS = 127 << 23u |
constexpr uint64_t exploration::CONSTANT_A = 0xeece66d5deece66dULL |
constexpr uint64_t exploration::CONSTANT_C = 2147483647 |