четверг, 24 января 2013 г.

Кто на свете всех быстрее

В индустрии, связанной с машинным обучением, общепринято улучшать целевой функционал, представляющий из себя усредненное значение некой меры качества на определенном домене. И мы уже на столько привыкли к такой постановке, что не задаёмся вопросом почему это так, а просто улучшаем среднеквадратичную ошибку, усредненный по потоку DCG и т.д.
Меж тем не так уж и очевидно, почему улучшение среднего должно являться выигрышной стратегий при рыночной борьбе за пользователя. Попробуем понять, а верно ли это утверждение хотя бы на простых примерах.

В качестве простейшего примера предлагаю взять игру с тривиальными правилами - бег на 100м. Выигрывает спортсмен, который быстрее всего пробежал дистанцию. Но как определить оптимальную стратегию забега? Каждому с детства известны 2 стратегии - выложиться в начале и тогда на концовку дистанции тебе не хватит сил, или же сэкономить силы в надежде на финишный рывок, но тогда ты можешь отпустить противников сильно вперёд.

Формализуем задачу. Не будем задумываться о физической составляющей бега, а просто скажем, что время забега спортсмена - это случайная величина, а выбранная стратегия лишь задаёт тип её функции распределения и параметры. А посему достаточно определить игру следующим образом:

  • играет 2 человека, делающих одновременно ровно 1 ход;
  • ход игрока заключается в выборе случайной величины из некоторого разрешенного класса F и реализации одного значения выбранной случайной величины;
  • дополнительно на класс F навесим ограничение "выпуклости" (в том смысле, что класс вместе с любой парой случайных величин, он должен содержать и все их смеси) - лишь добавив таким образом к нашей постановке реалистичности;
  • выигрывает тот игрок, чьё значение окажется меньше.
Верно ли что в такой постановке игрок должен выбирать случ. величину с наименьшим мат. ожиданием? Оказывается, что нет!

Приведём контрпример, когда победной стратегией неожиданно оказывается выбор случ. величины с наибольшим(!) мат. ожиданием времени забега.
Определим сначала невыпуклое конечное семейство из 2 случайных величин.
X - 20 сек с вероятностью 1
Y - 10 сек с вероятностью 0.9 и 1000 сек с вероятностью 0.1

Чтобы не было ощущения, что пример слишком искусственный у нас есть даже физическая модель, в которой верится в реализацию этих случайных величин. В конце нашей 100-метровки есть яма, вылезать из которой нужно ~16 мин, но если мы сэкономим силы, то легко перепрыгнем яму, а вот если экономить не будем, то перепрыгнем только с вероятностью 90%.
Назовём первую стратегию "экономной". а вторую - "безбашенной".

Математическое ожидание в случае выбора экономной стратегии равно 20 сек, а для безбашенной 109 сек.
Однако же в 9 случаях из 10 спортсмен, выбравший безбашенную стратегию, выигрывает у экономного спортсмена.
Более того, добавление "выпуклости" не портит контрпримера.
Для любой смеси Z(α) = X * (1-α) + Y * α
после несложных выкладок имеем:
E(Z(α)) = 20 + 89α;
P(Z(α1) выиграет у Z(α2)) = 0.5 + 0.4(α1 - α2)
То есть по прежнему выгоднее придерживаться безбашенной стратегии, что имеет наихудшее матожидание времени забега.

Этим постом я не берусь утверждать, что функционалы усредняющие качество на всём потоке плохи, но стоит к ним относиться с осторожностью, и, вполне возможно, что для написания очередного робота-трейдера ценными бумагами выгоднее окажется оптимизировать не среднюю квадратичную ошибку предсказания а что-то иное...

Вопрос же к публике у меня один - можно ли в рассмотренном примере (с бегом на 100м.) выбрать функционал, оптимизация которого даст оптимальную стратегию в классе, таким образом, чтобы функционал можно было посчитать только на основе параметров стратегии, без знания характеристик класса F ?

P.S. Теперь я умею доказывать, почему точная стрельба не является залогом успеха в биатлоне ;)

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

Отправить комментарий