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