JavaScript для глубокого обучения 2021 TensorFlow js Ббк



Download 30,75 Mb.
Pdf ko'rish
bet377/457
Sana27.03.2022
Hajmi30,75 Mb.
#513488
1   ...   373   374   375   376   377   378   379   380   ...   457
Bog'liq
Цэй Ш., Байлесчи С., и др. - JаvaScript для глубокого обучения (Библиотека программиста) - 2021


Глава 11. Основы глубокого обучения с подкреплением
459
1. 
s
i
— наблюдение текущего состояния на шаге 
i
(позиция на доске).
2. 
a
i
— выполняемое на текущем шаге действие (выбираемое либо DQN, как по­
казано на рис. 11.12, или путем случайной выборки).
3. 
r
i
— получаемое на этом шаге немедленное вознаграждение.
4. 
d
i
— булев флаг, указывающий, завершается ли игра сразу после текущего шага. 
Из него видно, что воспроизводимая память служит не только для отдельного 
эпизода игры, а объединяет результаты множества игровых эпизодов. По завер­
шении предыдущей игры алгоритм обучения просто начинает новую и продол­
жает добавлять новые записи в воспроизводимую память.
5. 
s
i
+1
— наблюдение со следующего шага, если 
d
i
равен 
false
(если 
d
i
равен 
true

в качестве «заполнителя» сохраняется пустое значение).
Рис. 11.13.
Использование воспроизводимой памяти во время обучения DQN. На каждом шаге 
в конец воспроизводимой памяти добавляется пять элементов данных, выбираемых во время 
обучения DQN


460
Часть III • Продвинутые возможности глубокого обучения с TensorFlow.js
Эти элементы данных служат входными для обучения DQN на основе обратно­
го распространения ошибки. Воспроизводимую память можно считать набором 
данных для обучения DQN. Однако она отличается от наборов данных в обуче­
нии с учителем тем, что обновляется по ходу обучения. Длина воспроизводимой 
памяти — фиксированная, 
M
(по умолчанию в нашем примере кода 
M
= 10 000). 
При вставке в ее конец записи (
s
i

a
i

r
i

d
i

s
i
+1
) после следующего хода игры из ее на­
чала удаляется старая запись, в результате чего сохраняется фиксированная длина 
воспроизводимой памяти. Таким образом, воспроизводимая память гарантированно 
содержит информацию о произошедшем на последних 
M
шагах обучения, помимо 
того, что помогает решить проблемы нехватки памяти. Полезно всегда обучать DQN 
на последних записях игры. Почему? А потому, что, когда DQN уже немного обу­
чилась и начала «понимать, что к чему» в игре, обучать ее на старых записях игры, 
например, с начала обучения нежелательно, ведь они могут включать «наивные» 
ходы, более не уместные или не благоприятствующие дальнейшему обучению сети.
Реализующий воспроизводимую память код очень прост, его можно найти 
в файле 
snake-dqn/replay_memory.js
. Мы не станем описывать его подробно, за ис­
ключением двух общедоступных методов, 
append()
и 
sample()
.
z
z
С помощью метода 
append()
можно вставить новую запись в конец воспроизво­
димой памяти.
z
z
Вызов 
sample(batchSize)
выбирает случайным образом 
batchSize
записей из вос­
производимой памяти. Выборка этих записей производится совершенно равно­
мерно и включает в общем случае записи из нескольких различных эпизодов. 
Мы будем использовать метод 
sample()
для извлечения обучающих батчей во 
время вычисления функции потерь и последующего обратного распространения 
ошибки, как мы вскоре увидим.
Эпсилон-жадный алгоритм: компромисс между исследованием 
и использованием
Агенту, пробующему различные случайные ходы, рано или поздно повезет, и он 
наткнется на удачные (съест фрукт­другой в игре «Змейка»), что может принести 
пользу в качестве начального толчка в процессе обучения. На самом деле этот спо­
соб — единственный, ведь агенту неизвестны правила игры. Но если агент и дальше 
будет вести себя случайным образом, то долго такой процесс обучения не продлится, 
ведь выбираемые случайно варианты приводят к игровой гибели, а также потому, 
что достичь определенных продвинутых состояний можно только посредством целой 
череды удачных ходов.
Это само воплощение дилеммы «исследовать или использовать» применитель­
но к игре «Змейка». Мы уже сталкивались с этой дилеммой в примере с тележкой 
и шестом, где она решалась с помощью метода градиентного спуска по стратегиям, 
благодаря постепенному росту детерминизма полиномиальной выборки в ходе об­
учения. В игре «Змейка» такой возможности у нас нет, поскольку действия выби­
раются на основе не 
tf.multinomial()
, а исходя из максимального Q­значения для 
всех возможных действий. Поэтому мы решим эту проблему путем параметризации 
степени случайности процесса выбора действий и постепенного уменьшения этого 


Download 30,75 Mb.

Do'stlaringiz bilan baham:
1   ...   373   374   375   376   377   378   379   380   ...   457




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish