Тензорный поток / Глубокий разум: как мне взять действия из наблюдений для математических алгоритмов, связанных с доказательствами?
Этот вопрос следует задать для получения указаний / предложений / помощи по использованию глубоководных библиотек с открытым исходным кодом: https://github.com/deepmind/lab или https://www.tensorflow.org/ в Python.
Учтите, что я новичок в таких понятиях, как глубокое обучение и искусственный интеллект.
Вопросы:
- Есть ли примеры использования Deepmind или Tensorflow для математических задач, где мне нужно наблюдать за значениями и предпринимать действия?
Используя подход, аналогичный описанному на этой странице ( https://deepmind.com/blog/open-sourcing-deepmind-lab/), основанный на наблюдениях, действиях, наградах и т. Д., Я хотел бы назвать обучающий агент, чтобы выбрать среди некоторых значений. Я думал что-то вроде этого:
- Вход: список списка кортежей (список будет меняться на каждом шаге)
- Действие: выбрать значение из ввода (на основе опыта)
- Награда: если возвращаемое значение было хорошим или плохим для остальной части алгоритма, который я реализую, я вознагражу агента глубокого обучения.
Дополнительные примечания:
- Я не могу тренировать алгоритм заранее
Входные данные примерно такие (только цифры):
edge: (1, 2), face_down: 4, face_up: 5, face_left: 4, face_right: 5
edge: (0, 1), face_down: 4, face_up: 4, face_left: 4, face_right: 5
edge: (5, 4), face_down: 4, face_up: 5, face_left: 4, face_right: 5
edge: (6, 7), face_down: 3, face_up: 5, face_left: 5, face_right: 5
edge: (3, 0), face_down: 4, face_up: 4, face_left: 5, face_right: 4
edge: (4, 1), face_down: 4, face_up: 5, face_left: 5, face_right: 4
edge: (8, 5), face_down: 4, face_up: 5, face_left: 5, face_right: 4
edge: (3, 8), face_down: 4, face_up: 5, face_left: 4, face_right: 5
edge: (2, 3), face_down: 4, face_up: 5, face_left: 5, face_right: 4
edge: (5, 0), face_down: 4, face_up: 4, face_left: 5, face_right: 4
edge: (0, 5), face_down: 4, face_up: 4, face_left: 4, face_right: 5
edge: (1, 0), face_down: 4, face_up: 4, face_left: 5, face_right: 4
edge: (9, 6), face_down: 3, face_up: 5, face_left: 5, face_right: 5
edge: (0, 3), face_down: 4, face_up: 4, face_left: 4, face_right: 5
edge: (7, 9), face_down: 3, face_up: 5, face_left: 5, face_right: 5
Идея состоит в том, чтобы использовать тот же подход глубокого разума, который используется в играх, но вместо анализа пикселей и использования пэда (вверх, вниз, влево, вправо, огонь, прыжок), чтобы обучающий агент мог анализировать некоторые математические значения и, в качестве единственного действия, чтобы выбрать один из них.
Существуют ли другие подходы или библиотеки / рамки для решения такой проблемы?
1 ответ
В вашем примере кажется, что вы делаете проблему контекстного бандита. Должно быть очень просто решить вашу проблему, используя уравнение Беллмана.
Алгоритм будет выглядеть так:
1) Введите ваши математические значения (состояния) в ваш бандит.
2) Позвольте вашему бандиту выбрать то, что он считает лучшим действием (в начале это будет случайным).
3) Получить награду за выполнение этого действия с учетом этих состояний.
Быстрый пример кодирования и реализации можно найти здесь:
Вам просто нужно изменить настройку вознаграждения и настройку состояния.