Мы можем разбить проблему следующим образом:
Во-первых, если у вас есть две точки на плоскости, и вы передаете координаты этих точек в нейронную сеть (например, вектор ) и обучаете его на метке, которая является действительным расстоянием (например, ), он должен быть в состоянии изучить эту взаимосвязь с сколь угодно близкой точностью.<x0,y0,x1,y1>(x0−y0)2+(x1−y1)2−−−−−−−−−−−−−−−−−−√
Затем, если у вас есть изображение, похожее на то, что вы описываете, и передаете его через другую нейронную сеть (например, CNN), и в качестве меток вы использовали точки двух точек (еще раз ), тогда она должна быть в состоянии узнать эти отношения с произвольно близкой точностью еще раз.<x0,y0,x1,y1>
Конечно, нет причин делать это в двух отдельных нейронных сетях, поэтому мы можем просто объединить две сквозные модели, которые принимают изображение в качестве входного сигнала и расстояние в качестве выходного.
Однако эту модель нужно будет обучать работе с помеченными данными, поэтому вам нужно будет либо сгенерировать данные самостоятельно, либо пометить изображения.
Но если вы хотите, чтобы он изучал понятие сокращения дистанции менее контролируемым образом, вам нужно будет использовать обучение с подкреплением. В этом случае вам необходимо настроить среду, которая стимулирует агента к сокращению расстояния. Это может быть так же просто, как получить награду, если действие уменьшает расстояние.
Другой подход заключается в стимулировании агента с использованием будущего вознаграждения. То есть это награда не только за результаты следующего немедленного состояния, но также за вклады из следующего возможного состояния, следующего за этим и так далее. Это идея Deep Q-Learning, и я реализую простой пример (очень похожий на то, что вы описываете) в этом блокноте .
Итак, теперь возникает вопрос: эта реализация сделала что-то кроме случайного перемещения, пока не пойдет по пути к успеху?
В вашем примере вы говорите о вознаграждении агента, когда он попадает в цель. Но в том, что я описал, он получил награду, приблизившись к цели (либо через Q-функцию, либо непосредственно из окружающей среды). Это можно сделать, изучив некоторую абстрактную идею расстояния (которая может быть проиллюстрирована в контролируемой версии).
Когда человек узнает об этом, это по той же самой причине: человек получает награду за движение в этом направлении через чувство будущих наград.
Я бы сказал, что при достаточном обучении и данных, обучение с подкреплением может легко освоить эту концепцию. Что касается других наград, присутствующих на доске (например, «свести к минимуму энтропию доски, а также попытаться получить награды»), вам нужно подумать о том, о чем вы спрашиваете. Вы бы предпочли агенту минимизировать расстояние или максимизировать вознаграждение? Потому что, в общем, это не может сделать оба. Если вы ищете какой-то баланс между ними, то на самом деле вы просто переопределяете вознаграждение, чтобы учесть расстояние.