본문 바로가기
python 및 머신러닝/파이썬과 케라스로 배우는 강화학습

파이썬과 케라스로 배우는 강화학습 3장 1-policy-iteration

by java개발자 2017. 10. 5.

파이썬과 케라스로 배우는 강화학습

[도서] 파이썬과 케라스로 배우는 강화학습 : 내 손으로 직접 구현하는 게임 인공지능


gridworld

1-policy-iteration


왜 이렇게 할까? 라는 의문을 책을 읽는 내내 가지고 있었는데, 차라리 저자의 깃북을 보는 것이 더 이해가 잘 되었다.

https://www.gitbook.com/book/dnddnjs/rl/details


또는 아래책의 강화학습 챕터가 기본적인 개념을 이해하기에 더 수월했다.

알고리즘으로 배우는 인공지능, 머신러닝, 딥러닝 입문


본 책은 깃북에 없었던 코드를 추가하면서 개념 설명이 많이 부족해진듯 하다.


확률 형태의 수식은 좀처럼 친숙하지 못해 이해하기 어려웠다.

그래서 그냥 코드 자체를 디버깅하면서 데이터의 흐름을 추적하였다.



1-grid-world-코드정리.xlsx


전제 : 

[2, 2]중심의 value는 항상 0이다.

[2, 2]중심의 policy는 계산하지 않는다.


evaluate : new value_table = ∑ policy * (next reward + 0.9 * next value)

improve : 

temp = next reward + 0.9 * next value

max(temp)

new policy_table = temp == max ?  1 / len(max) : 0

move : policy > 0 이라면 어디나... [2, 2] 중심에 도착할 때까지 무한루프



gridworld

1-policy-iteration 에서 의문 : 

5x5 matrix를 벗어나는 방향에 대해서는 무시하지 않고, 다시 자기 자신으로 평가한다는 것이다. 

자기 자신의 reward와 value를 사용한다는 것이 의아했다. 그렇더라도 policy는 0으로 해야 하는 것이 아닐까?