> 백엔드 개발 > Golang > 내 Q-Learning 가치가 폭발적으로 증가하는 이유는 무엇입니까? 부풀려진 보상과 부동 소수점 한도에 관한 이야기.

내 Q-Learning 가치가 폭발적으로 증가하는 이유는 무엇입니까? 부풀려진 보상과 부동 소수점 한도에 관한 이야기.

Mary-Kate Olsen
풀어 주다: 2024-10-26 00:50:28
원래의
709명이 탐색했습니다.

 Why Are My Q-Learning Values Exploding? A Tale of Inflated Rewards and Floating Point Limits.

Q-Learning 값이 임계값을 초과하는 경우

Q-Learning을 구현하려고 하다가 상태-액션 값이 임계값을 초과하는 문제가 발생했습니다. 배정밀도 부동 소수점 변수의 한계. 초기 구현에서는 이 문제를 상태-작업 튜플 대신 Agent.prevState 사용으로 인한 것으로 간주했습니다. 그러나 근본 원인은 prevScore 계산에서 확인되었습니다.

이슈 이해

Q-Learning은 Q(s, a)의 값을 기반으로 업데이트합니다. 공식:

Q(s, a) = Q(s, a) + (LearningRate * (prevScore + (DiscountFactor * reward) - Q(s, a)))
로그인 후 복사

중요한 점은 prevScore가 Q 값이 아닌 이전 상태 동작에 대한 보상을 나타낸다는 것입니다. 초기 구현에서 prevScore에는 보상 자체가 아닌 이전 단계의 Q 값이 포함되어 부동 소수점 한도를 초과하는 부풀려진 값이 발생했습니다.

해결 방법

이전 단계에 대한 실제 보상을 유지하도록 prevScore를 수정함으로써 학습 프로세스가 의도한 대로 작동했습니다. 200만 회 이후 최대값이 크게 줄어들었고, 모델은 게임 플레이 중 합리적인 행동을 보였습니다.

보상의 역할

보상 기능의 영향력에 주목할 필요가 있습니다. 강화 학습 중. 목표는 예상되는 총 보상을 최대화하는 것입니다. 모든 시간 단계에 대해 보상이 제공되면 알고리즘은 게임 연장을 선호하게 되어 Q 값이 지나치게 높아집니다. 이 예에서 각 시간 단계에 대해 부정적인 보상을 도입하면 에이전트가 승리를 목표로 하도록 장려하여 Q-값을 적절한 범위 내로 가져옵니다.

위 내용은 내 Q-Learning 가치가 폭발적으로 증가하는 이유는 무엇입니까? 부풀려진 보상과 부동 소수점 한도에 관한 이야기.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿