Настройка параметра — машинное обучение

#algorithm #optimization #machine-learning #data-transfer

#алгоритм #оптимизация #машинное обучение #передача данных

Вопрос:

Я удаленно передаю некоторые данные пакет за пакетом. Перед отправкой каждого пакета мне нужно некоторое время находиться в режиме ожидания (миллисекунды). После передачи каждого файла у меня есть обратная связь: сбой или успех. Конечно, чем меньше задержка, тем меньше вероятность успеха, однако время на передачу будет меньше. Моя цель — автоматически настроить текущую задержку, чтобы средний ПОКАЗАТЕЛЬ успеха был равен некоторой константе (скажем, 98%). Интуитивно я предполагаю:

  1. После каждой успешной передачи я буду увеличивать текущую задержку
  2. После каждой неудачной передачи я буду уменьшать текущую задержку
  3. Со временем я уменьшу текущую задержку (fade)

Какие алгоритмы вы бы предложили для эффективного (с точки зрения времени на обучение, памяти) нахождения оптимального значения параметра?

Вероятность успеха зависит от задержки

Комментарии:

1. Вместо того, чтобы рассматривать каждый последний результат независимо, я бы посоветовал вам рассчитать текущий средний показатель успешности за последние 10 или 100 выборок, а затем на основе этого среднего принять решение об увеличении или уменьшении текущей задержки.

2. Вместо определенного процента, возможно, было бы лучше использовать диапазон значений, например 97-99%. Опять же, возможно, подразумевался диапазон 98-100%). Бинарный поиск должен хорошо работать для приближения к диапазону. После попадания в диапазон предложение @user1990169 должно сработать хорошо.

Ответ №1:

По сути, вы описываете решение проблемы перегрузки сети. Посмотрите на http://en.wikipedia.org/wiki/Network_congestion_avoidance#Avoidance для получения гораздо большей информации по этому вопросу.

Один из алгоритмов, который может вам хорошо подойти, заключается в сокращении времени ожидания после каждой успешной передачи. После неудачной передачи увеличьте время (либо на заданную величину, либо динамически) и повторяйте бесконечно. Хотел бы я вспомнить конкретное название этого алгоритма, но на данный момент оно ускользает от меня.

Обратите внимание, что если вы действительно отправляете пакеты по сети, а не просто по игровой сети, «оптимальный» показатель не является константой, поскольку сеть всегда находится в состоянии изменений.