Привет,
Я нашел несколько примеров реализации DQN, но, поскольку я не эксперт по TensorFlow или Машинному обучению, я немного запутался.
https://dumpz.org/c77HNAA4XxGF вот один из них.
Я понимаю что, в 73-й строке мы берем некоторый кусок данных:
[{state, action, reward, newState, done}] если быть точным, затем получаем
currentStates, который равен
[[state1, state2, ...]], затем на 75 мы используем модель для получения
currentQs, которые равны, насколько я понимаю,
[[act1, act2, ...]], потому что наша модель используется для получения действия от состояния среды. То же самое происходит с
newCurrentStates и
futureQs.
Но затем на 88 мы видим
let maxFutureQ = Math.max (futureQs);. Что здесь происходит?
futureQs - это массив массивов с вероятностями действий для каждого futureState? И тогда
maxFutureQ должен быть вероятностью действия, почему тогда мы складываем это с наградой? Эта часть меня сбивает с толку.
Также я не могу понять, почему нам нужно делать
currentQ [action] = newQ; на 94. Мы же в итоге все равно потеряем эту часть, нет?
Может кто-нибудь помочь мне понять, что здесь происходит и, может быть, оставить комментарии к строкам?
Заранее спасибо.