대학원 수업/강화학습
4. The Bellman Equation and Dynamic Programming(2/3) - Dynamic Programming - Value Iteration 계산
따옹
2022. 10. 22. 06:04
Dynamic Programming - Value Iteration



V값을 계산 iterative하게 진행(계속해서 반복해서 값을 update)
1. 초기값을 random값으로
2. value값을 가지고 Q table 만듦.



3. 앞의 iteration과 뒤의 iteration차이가 거의 없을 때까지 반복


한 번 더 value값으로 Q값을 계산 - 목적은? action을 정하기 위해, policy를 정하기 위해

차이가 threshold(1e-20)값 이하면 그만 하겠다.
gamma = 0.99
value_tabel = np.zeros(env.observation_space.n) #16개 벡터를 0으로 초기화
for s in range(env.observation_space.n) : #각 state에 대하여 값 4개 짜리 vector, '_' terminal 값이냐 아니냐
1. sum[prob*(r + gamma * update_value_table[s_]) #2값을 대입
2. for prob, s_, r, _ in env.P[s][a] #계산
3. for a in range(env.action_space.n) #4개에 대하여
discount vector
gamma : hyper parameter
gamma를 높은 값인 0.9로 준 경우, 목적지에서 멀 수록 가치 떨어짐
목적은? 목적지에 가까워질 수록 가치가 높고 가치가 점점 낮아짐 r의 역할
빙빙 돌지 않고 목적지에 도착할 수 있음 / r을 너무 작게 하면 학습 효과가 떨어짐