Использование многомерных тестовых данных для оптимизации вывода - PullRequest
0 голосов
/ 02 мая 2018

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

(см. Пример в редактировании)

Оригинальный пример: например, предположим, что у меня есть трехмерное пространство (камера окружающей среды), в которое я помещаю физическое тестовое устройство. Затем я выберу ряд местоположений и физических атрибутов, с которыми можно протестировать устройство. Сначала я выберу тестировать устройство при любой конфигурации местоположения, при разных температурах, влажности и давлениях. При каждом увеличении теста или комбинации переменных я записываю значение каждой функции, например, x, y, z позиционные данные, а также температура, влажность, давление и т. д. после установки этих параметров я начну программный тест на физическом устройстве, на которое влияют факторы окружающей среды слишком сложными, чтобы я мог предсказать , Этот программный тест может выводить три выхода, которые изменяются с неизвестной (пока не проверенной) вероятностью на основе зарегистрированных физических параметров. Из трех выходных данных один является неудачным, один - успешным, а один - тест завершается без каких-либо значимых выходных данных (мы можем игнорировать этот случай при обработке).

Как только тест завершит тестирование каждого физического параметра, который я ему предоставляю, я хотел бы затем запустить алгоритм на этих тестовых данных, чтобы выбрать контролируемые параметры, например, x, y, z позиции или температура, чтобы максимизировать мои шансы на успешное тестирование, а также минимизировать мои шансы на сбой (в некоторых случаях мы находим параметры, которые имеют высокий шанс на сбой и высокий шанс на успех, сбои - больше времени дорого, поэтому нужно их избегать). Алгоритм должен использовать их, чтобы предложить альтернативный набор диапазонов тестовых параметров, чтобы инициировать следующую итерацию теста, которая, по его мнению, приблизит нас к нашей цели.

В настоящее время я могу максимизировать успех, используя итеративное дерево решений и игнорируя результаты, заканчивающиеся неудачей.

Любые идеи приветствуются

Edit: Другой пример (это надумано, давайте не будем вдаваться в подробности PRNGS) - допустим, у меня есть встроенное устройство с аппаратным генератором псевдослучайных чисел (PRNG), на которое влияют такие факторы окружающей среды, как данные о нагреве и магнитометре. , У меня есть программа на устройстве, которая использует этот PRNG, чтобы дать мне случайное значение. Предположим, что этот PRNG едва достигает достаточной рандомизации в среднем случае, в лучшем случае дает мне хорошее случайное значение, а в худшем случае не дает случайного значения. Изменяя физические параметры окружающей среды вокруг устройства, я могу найти значения, которые с некоторой вероятностью приводят к тому, что этот PRNG не может дать мне случайное число, дает мне «нормальное» случайное число, и которые заставляют его успешно генерировать криптографически безопасное случайное число. Предположим, что в случаях, когда не удается сгенерировать достаточно хорошее случайное число, программа входит в длительный цикл, пытаясь найти его, прежде чем в конечном итоге потерпит неудачу, чего мы хотели бы избежать, поскольку это вычислительно дорого. Чтобы проверить это, мы сначала начнем с тестирования каждой комбинации переменных, в которых мы можем управлять (температура, положение и т. Д.), Возможно, перепрыгивая на несколько градусов за раз, чтобы получить грубое представление о том, как выглядит реакция устройства на большой ассортимент. Затем я хотел бы запустить алгоритм на этих тестовых данных, сузить свои окна тестирования и выполнить итерации по вновь выбранным параметрам объектов, чтобы найти оптимизированное решение. В этом случае, поскольку сбои являются дорогостоящими, оптимизированное решение будет таким, которое сводит к минимуму сбои и одновременно максимизирует успехи.

...