Tensorflow / Deepmind: как мне выполнять действия на основе наблюдений для математических алгоритмов, связанных с доказательствами?

Этот вопрос предназначен для получения указаний / предложений / помощи по использованию библиотек с открытым исходным кодом deepmind: 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

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

Есть ли другие подходы или библиотеки / фреймворки для решения такой проблемы?

введите здесь описание изображения


person Mario Stefanutti    schedule 15.03.2017    source источник
comment
Что вы имели в виду под краем?   -  person Elijas Dapšauskas    schedule 11.02.2018
comment
Ребра и вершины графа ... которые представляют географическую карту.   -  person Mario Stefanutti    schedule 14.02.2018
comment
Некоторые детали до сих пор неясны, например, правильные действия (награда) определяются людьми или автоматически? Связаны ли награды только с непосредственным предыдущим действием? (В настоящее время я изучаю обучение с подкреплением, мы могли бы сотрудничать)   -  person Elijas Dapšauskas    schedule 14.02.2018
comment
Повторение дается автоматически в конце реализуемого мной алгоритма. Учтите, что я пытаюсь автоматически раскрасить граф, выбирая правый край, поэтому после N действий я буду знать, могу ли я переформулировать NN или нет. Я лучше понимаю, что я хотел бы сделать здесь: 4coloring.wordpress.com/2016/12/01/four-color-theorem-new-ideas   -  person Mario Stefanutti    schedule 15.02.2018


Ответы (1)


В вашем примере кажется, что вы решаете проблему с контекстным бандитом. Решить вашу проблему с помощью уравнения Беллмана должно быть очень просто.

Алгоритм будет выглядеть так:

1) Подайте свои математические значения (состояния) своему бандиту.

2) Позвольте вашему бандиту выбрать то, что он считает лучшим действием (вначале это будет случайным образом).

3) Получите награду за выполнение этого действия с учетом этих состояний.

Краткий пример кода и реализации можно найти здесь:

https://medium.com/emergent-future/simple-reinforcement-learning-with-tensorflow-part-1-5-contextual-bandits-bff01d1aad9c

Вам просто нужно будет изменить настройку вознаграждения и настройку состояния.

person Rui Nian    schedule 21.08.2018