인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

okputto님의 프로필 이미지

작성한 질문수

강화학습 입문에서 Deep Q-learning/Policy Gradient까지

실습 - 얼어붙은 호수(Frozen Lake) - 정책 반복 알고리즘 구현

실습-얼어붙은 호수(Frozen Lake) - 정책 반복 알고리즘 구현 argmax

해결된 질문

작성

·

40

0

안녕하세요

아래와 같이 new_action_values 의 max 값이 복수개 발견될경우 맨처음 발견된 index 만 표시 되는게 맞는건가요?

예를 들어 액션값이 좌측이거나 위 .. 이렇게 두개의 값은 갖을 수 없는건가요?

 

V = np.zeros(num_states)
pi = np.ones([num_states, num_actions]) * 0.25


new_action_values = np.array([0.1, 0.5, 0.5, 0.5])
new_action = np.argmax(new_action_values)
print(new_action)
print(np.eye(num_actions))
print(np.eye(num_actions)[new_action])

답변 1

0

YoungJea Oh님의 프로필 이미지
YoungJea Oh
지식공유자

np.argmax는 여러 개의 최대값이 있어도 가장 먼저 등장한 인덱스만 반환합니다. 하지만 2, 3, 4 번째 0.5 중 아무 것의 인덱스를 반환해도 상관없습니다. 중요한 것은 최대값의 index 를 반환하면 결국에는 테이블이 수렴하게 된다는 것입니다. 위의 경우에 [0.1, 0.5, 0.5, 0.5] 인 경우 그 state에서의 최적 정책은 3개가 될 수 있습니다. 왜냐하면 어떤 state에서의 최적 정책은 여러개가 있을 수 있기 때문입니다. 하지만 Value Iteration 이나 Policy Iteration 알고리즘에서는 artmax 로 세개의 같은 값(0.5) 중 맨 처음 index 만 반환해도 가치함수 테이블이 수렴하도록 되어 있습니다. 그래서 argmax 에 문제가 없습니다. 좋은 질문 감사합니다.

okputto님의 프로필 이미지

작성한 질문수

질문하기