ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 김성훈 교수 강화학습 세미나 3강 소스코드 중 애매한 부분 해설
    개발 팁/머신러닝 일반 2017. 9. 27. 12:58
    반응형



    김성훈 교수 강화학습 세미나 3강 소스코드 중 애매한 부분 해설.


    참고1: 3강 비디오 https://youtu.be/Vd-gmo-qO5E

    참고2: 3강 Lab / source code https://hunkim.github.io/ml/RL/rl-l03.pdf


     

    1) rargmax function 내부 설명

     

    def rargmax(vector):
        m = np.amax(vector) # 현재 위치(state)의 4가지 Q값 중 가장 큰 값을 리턴한다. 예제에서는 0 혹은 1이다.
        indices = np.nonzero(vector==m)[0] # nonzero는 특정 조건을 만족하는 요소의 인덱스를 리턴한다. 리턴값은 2차원 배열 형태이므로 뒤에 [0]을 붙여 내부 배열을 끄집어 낸다. 예제에서는 현재 위치(state)의 4가지 Q값이 모두 0인 경우 0==0을 만족하는 전체 인덱스 {0, 1, 2, 3}가 리턴된다. 현재 위치(state)의 4가지 Q값 중 어느 하나라도 1인 경우는 1==1을 만족하는 인덱스 하나가 리턴된다 (예제에서는 4가지 Q값 중 항상 하나만 1이다)
        return pr.choice(indices) # 전달 받은 인덱스 배열 중 하나를 랜덤하게 선택한다. 인덱스 하나만 받은 경우(1이 하나라도 있는 경우)는 그냥 그 인덱스를 선택한다(하나밖에 없으니).

     

    2) 80~100 회 런 이후에도 그래프 상으로 가끔 실패하는 것처럼 보이는 이유

    : 80~100회 런 이후에는 실패하지 않는다. 단지 Bar 그래프 출력 자체가 완벽하지 않아서 실패하는 것처럼 보일 뿐임.

     

    3) Q table

    : 80~100회 런 이후 Q Table은 고정된다. 즉, PATH가 고정된다.

    반응형

    댓글

Designed by Tistory.