엔진을 향상시켜 엔진을 향상시키기 위해 강화 학습을 사용하고 싶습니다. 나는 그 주제에 대해 읽었지만 여전히 혼란스러워합니다.
경고 : 강화 학습은 매우 복잡한 주제입니다. 게임 봇에서 우회 할 수 있지만 RL 기본 사항을 공부할 수 있습니다. 시작하기 좋은 곳은 Sutton & Barto Reinforcement Learning : 소개입니다.
게임에서 승패 손실 (1 또는 0)에 어떤 다른 보상이 있습니까?
당신의 게임에 따라, 그것은 보통입니다. 실제로 체스와 같은 승리 / 드로우 / 로즈 게임의 경우 각 행동의 보상은 0 점을 얻습니다 (+1). 제로섬 게임에서는 미니맥, 알파벳 프 루닝 등에 잘 맞습니다.
강화 학습은 보상이 지연되는 환경을 해결하기위한 것입니다. 중간 목표가 아닌 목표에 "보조자"보상을 추가하는 것은 일반적으로 비생산적입니다.
매 턴마다 평가 기능의 출력과 같은 다른 보상을 사용하는 경우 어떻게 보상 할 수 있습니까?
일반적으로 당신은하지 않습니다. 자체 재생 RL을 적용 하면 게임이 끝날 때까지 총 + 1 / 0 / -1 보상의 기대를 예측 하는 return (때로는 utility 라고도 함 ) 기능을 배우게 됩니다. minimax 검색을 위해 현재 휴리스틱 대신에 이것을 사용합니다. 또는 현재 휴리스틱 함수를 동일한 범위에서 출력하도록 조정하고 RL을 사용하여 가중치를 최적화하여 실제 최적 재생 리턴 함수 (정확히 계산하기에는 너무 복잡함)에 가장 가까운 근사값을 만들 수 있습니다.
반복 후 더 나은 보상 반복을 제공하기 위해 평가 기능을 어떻게 수정합니까?
그것은 다른 RL이 모든 시도에 접근하는 것입니다. 다양한 다른 솔버가 있습니다. 그것을 설명하는 짧은 방법은 없습니다. Q-Learning과 같은 간단한 방법으로 시작할 수 있습니다. Q-Learning은 상태 s 및 조치 a에서 최적의 정책을 따르는 경우의 예상 수익 인 Q (s, a) (동작 값이라고 함)의 추정치를 학습합니다. 학습 환경에서 만들어진 각 단계를 통해 임의의 추측으로 시작하여 실제 가치에 더 가깝게 다듬습니다. 간단한 테이블 형식 Q- 학습자는 모든 상태 및 작업에 대한 큰 표를 실제 값까지 지금까지 가장 잘 추정 한 값으로 저장하고 경험이있을 때마다 새로운 각 추정값을 평균화하여 이러한 개선 작업을 수행합니다.
또한 휴리스틱을위한 RL 방법을 미리보기 미니 맥스 검색과 결합 할 수 있습니다. 이것이 원래 AlphaGo가 수행 한 작업과 훈련 중에 AlphaGo Zero가 수행하는 작업입니다. minimax 검색이 RL 생성 휴리스틱을 다시 확인하는 데 효과적이므로 강력한 접근 방법입니다. 간단한 게임만으로도 RL은 완벽한 휴리스틱을 배울 수 있으며 로컬 검색 만 필요합니다 (다음 움직임).
게임이 매우 단순하지 않으면 (가능한 모든 상태가 메모리에 적합 할 수있는 경우) RL 알고리즘 내부에 일종의 함수 근사가 필요합니다. 신경망이 표준 선택입니다. 그 일부를 위해 무언가 를 갖는 것은 피할 수 없습니다-또 다른 좋은 선택은 수동으로 휴리스틱을 구성하는 데 사용할 수있는 프록시 기능을 정의하고 선형 근사기를 사용하는 것입니다-모든 기능의 가중치 합계. 이것은 충분히 잘 작동 할 수 있으며, 예를 들어 RL을 사용하여 훈련 된 체커 (draughts) 플레이어에서 사용되었습니다.
실제로 자신 만의 휴리스틱 함수가 이례적이지 않다면 선형 근 사기처럼 취급하고 RL을 사용하여 최상의 가중치를 배울 수 있습니다.