2016-11-27 5 views
1

Actor Mimic은 작업 마스킹 절차를 구현하는 방법에 대해 설명합니다. 특정 게임을하는 동안 나는 액션 마스킹은 어떻게 구현하나요?

을 인용, 우리는 그 게임에 유효하지 않습니다 AMN 액션 출력을 마스크와 유효한 행동의 부분 집합을 통해이 softmax을

누구 아이디어가 있습니까 어떻게 Tensorflow에서이 액션 마스킹을 구현할 수 있을까요? 구체적으로, 어떻게 행동의 특정 부분 집합에 대해서만 softmax를 취할 것인가?

답변

2

유효한 상태 텐서가 1과 0을 포함한다고 가정 해주십시오.

is_valid = [1, 0, 1, ...]

그리고 당신은 당신이 유효 그 가치를 통해이 softmax을 할상의 조치 텐서 있습니다. 당신은 다음을 할 수 있습니다.

(tf.exp(actions) * is_valid)/(tf.reduce_sum(tf.exp(actions) * is_valid) + epsilon)

이 경우에는 is_valid는 합에 잘못된 값을 마스킹한다. 수치 안정성을 위해 부서에 작은 엡실론을 추가하여 절대 0으로 나눌 수 없습니다.