-
김성훈 교수 강화학습 세미나 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가 고정된다.
반응형'개발 팁 > 머신러닝 일반' 카테고리의 다른 글
인공지능 학습용 오픈 소스 플랫폼 정보 (0) 2017.11.29 머신 러닝을 위해 구글 클라우드 플랫폼 준비 셋업하기 (0) 2017.11.19