Peter Norvig, Director of research, Google
Alan Turing, 1912 - 1954
Danny Lange (som jeg husker det) ved Nordic AI 2017
Space invaders
Breakout
Pong
Der kan laves et ryk for hver "frame" som vises med en hastighed på 60Hz. Hver gang skærmen tegnes skal der besluttes hvad man vil gøre.
Mål vi vil opnå:
"Super human performance"
- A.K.A "Strong AI" eller "true AI"
Samme netværksarkitektur for alle spil
Hyperparametrene er de samme for alle spil
Bliv bedre mens netværket træner
En model per spil
state = game.start()
while(isNotDead(state)):
pixels = state.getPixels()
rewards = gameExperience.predict(pixels)
bestAction = getBestActionFromRewards(rewards)
state = game.move(bestAction)
updateGameExperience()
env = aleGym.make('BreakoutDeterministic-v0')
env.start()
while True:
env.render()
# Random action
action = env.getRandomAction()
next_state, reward, is_dead, info = env.doAction(action)
if is_dead:
env.start()
Går ud på at forudse det bedste træk, baseret på den beregnede Q værdi for forskellige mulige træk
Givet tilstand (s) og aktion (a), beregn Q
Hvis jeg er i denne tilstand:
Hvad er så det bedste træk jeg kan lave?
Svar: [[0.3][0.1][1.665][0.6]]
initialise Q(numstates,numactions) arbitrarily
observe initial state s
repeat
select and carry out an action a
observe reward r and new state s'
Q(s,a) = r + γ(max(Q(s',a')))
s = s'
until terminated
DQN
1 point
Højre
Tilstand:
Næste tilstand:
Beregn Q
0.3
0.1
1.665
0.6
Træn
DQN
Tilstand
0.3
0.1
1.665
0.6
Robert Storm Petersen
Stokastisk = Når noget påvirkes af tilfældigheder
1 + (0.95 x 0.7) = 1.665
Netværket trænes med 1.665 der lægges ind på pladsen for "højre" for den aktuelle tilstand
[0.45][0.23][1.665][0.7664]
initialize replay memory D
initialize action-value function Q with random weights
observe initial state s
repeat
select an action a
with probability ε select a random action
otherwise select a = argmaxa’Q(s,a’)
carry out action a
observe reward r and new state s’
store experience <s, a, r, s’> in replay memory D
sample 32 random transitions <ss, aa, rr, ss’> from replay memory D
calculate target for each minibatch transition
if ss’ is terminal state then tt = rr
otherwise tt = rr + γ (max(Q(ss’, aa’)))
train the Q network
s = s'
until terminated
DQN skal have nogle specifikke optimeringer
Formålet er at stabilisere træningen fordi target netværket ikke hele tiden opdateres
Bruges til at prøve forskellige træk af under træning og over tid opnå viden, så vi kan mindske eksperimenterne, men aldrig helt stoppe med dem
_model = Sequential()
_model.add(Permute((2, 3, 1), input_shape=(4,)))
_model.add(Convolution2D(32, 8, 8, subsample=(4, 4), input_shape=(84, 84, 4)))
_model.add(Activation('relu'))
_model.add(Convolution2D(64, 4, 4, subsample=(2, 2)))
_model.add(Activation('relu'))
_model.add(Convolution2D(64, 3, 3, subsample=(1, 1)))
_model.add(Activation('relu'))
_model.add(Flatten())
_model.add(Dense(512))
_model.add(Activation('relu'))
_model.add(Dense(action_size))
_model.add(Activation('linear'))
Thad Starner, Georgia Institute of Technology