Я работаю над проблемой, которую мы стремимся решить с помощью глубокого обучения. Однако проблема в том, что для каждого эпизода тренировка занимает слишком много времени, примерно 83 часа. Мы планируем решить проблему, скажем, в 100 эпизодах.
Таким образом, мы постепенно изучаем матрицу (100 * 10), и в каждом эпизоде нам необходимо выполнить 100 * 10 итераций определенных операций. В основном мы выбираем кандидата из пула из 1000 кандидатов, помещаем этого кандидата в матрицу и вычисляем функцию вознаграждения, вводя всю матрицу в качестве входных данных:
Главное препятствие состоит в том, что вычисление функции вознаграждения на каждом шаге является дорогостоящим, примерно 2 минуты, и каждый раз, когда мы обновляем одну запись в матрице.
Все элементы в матрице в долгосрочной перспективе зависят друг от друга, поэтому, если я правильно понял, вся процедура не подходит для какой-то "распределенной" системы.
Может ли кто-нибудь пролить свет на то, как мы смотрим на потенциальные возможности оптимизации здесь? Как некоторые дополнительные инженерные усилия или так? Любые предложения и комментарии будут очень благодарны. Спасибо.
======================= Обновление некоторых определений =================
0. начальный этап:
- матрица 100 * 10, каждый элемент как пустой
1. пространство действия:
- каждый шаг я выберу один элемент из пула кандидатов в 1000 элементов. Затем вставьте элемент в матрицу один за другим.
2. окружающая среда:
каждый шаг у меня будет обновленная матрица для изучения.
Функция оракула F возвращает диапазон количественных значений от 5000 до 30000, чем выше, тем лучше (примерно одно вычисление F занимает 120 секунд).
Эта функция F принимает матрицу в качестве входных данных и выполняет очень дорогостоящие вычисления, а также возвращает количественное значение, указывающее качество синтезированной матрицы.
Эта функция в основном используется для измерения производительности системы, поэтому для вычисления значения вознаграждения на каждом шаге требуется некоторое время.
3. эпизод:
Сказать, что «мы планируем решить его в течение 100 эпизодов», это просто эмпирическая оценка. Но это должно быть не менее 100 эпизодов, по крайней мере.
4. Ограничения
В идеале, как я уже говорил, «все элементы матрицы зависят друг от друга в долгосрочной перспективе», и именно поэтому функция вознаграждения F вычисляет вознаграждение, принимая всю матрицу в качестве входных данных а не последний выбранный элемент.
Действительно, добавляя все больше и больше элементов в матрицу, вознаграждение может увеличиться или уменьшиться.
5. цель
Синтезированная матрица должна позволять функции оракула F возвращать значение больше 25000. Всякий раз, когда она достигает этой цели, я прекращаю этап обучения.