AlphaZero는 한번도 보지 못한 자세를 평가하는 법을 어떻게 배우나요?


12

다음 답변에 대한 후속 조치 :

AlphaZero 이해

내 질문은 어떻게 신경망이 발생하지 않은 위치에서 무엇을해야하는지 배우는 것이다. 실제 AZ가 훈련 된 신경망의 바이어스 + 가중치를 사용하여 MCTS를 실행한다고하면 신경망이 이러한 값을 계산하는 방법으로 한 단계 뒤로 밀립니다. 인간의 지식이없는 임의의 자기 놀이를 겪었다면, 결코 본 적이없는 위치에 가중치를 부여하는 방법을 어떻게 결정 하는가?

답변:


6

신경망 또는 명시 적 코드로 인스턴스화 된 체스 엔진의 평가 기능은 항상 모든 보드 위치에 값을 할당 할 수 있습니다. 당신이 보드에 위치를 주면, 게임에서 결코 발생하지 않는 터무니없는 것조차도, 그것은 한 플레이어 또는 다른 플레이어에게 얼마나 유리한지를 나타내는 숫자를 내뱉을 수 있습니다. 체스에서 보드 위치의 수는 엄청나게 거대하기 때문에, 훈련은 무한한 게임 트리 샘플에서만 발생할 수 있습니다. 엔진은 단순히 이전에 계산 된 보드 위치 값을 불러오는 것이 아니라 조각의 배열을 기반으로 계산을 수행합니다. 신경이 아닌 인터넷 예제의 경우 체스 엔진 평가의 일부는 각 조각의 값을 측면에 더하고 상대 조각의 총 값을 뺀 것입니다. 그때,

엔진이 훈련되지 않은 경우, 평가 기능의 파라미터가 (보통) 임의의 값으로 시작하기 때문에 위치에 할당 된 값은 임의적 일 수 있습니다. 훈련 단계의 목표는 엔진의 매개 변수를 조정하여 플레이어의 승리 상태 일 가능성이 높은 보드 위치에 높은 점수를 할당하는 것입니다.

에서 AlphaZero의 용지 (3 페이지)

AlphaZero의 딥 뉴럴 네트워크의 파라미터는 무작위로 초기화 된 파라미터에서 시작하여 자체 재생 강화 학습에 의해 학습됩니다. MCTS는 두 선수의 움직임을 선택하여 게임을합니다. 게임이 끝날 때, 게임 결과를 계산하기 위해 게임의 규칙에 따라 터미널 위치가 기록됩니다 : -1 손실, 0 무승부, +1 승리. 신경망 파라미터는 예측 결과와 게임 결과 사이의 오류를 최소화하고, 정책 벡터와 검색 확률의 유사성을 최대화하도록 업데이트된다.

[견적에서 제거 된 수학 기호]

요약하자면, 훈련 중에 AlphaZero는 자신과 대결하는 게임을했습니다. 게임이 끝나면 게임 결과와 게임 진행 방법에 대한 예측 정확도를 사용하여 신경망을 조정하여 다음 게임에서 더 정확 해졌습니다. AlphaZero는 자신이 본 모든 직책에 대한 기록을 유지하지는 않지만 향후에 어떤 보드를보다 정확하게 평가할 수 있도록 자체적으로 조정하고 있습니다.


알고리즘 수준에서 귀하의 설명을 완전히 이해하지만 여전히 작동한다고 놀랍습니다. 나는 초기 게임이 너무 임의적이어서 학습 가치가 없을 것이라고 생각했을 것입니다. 당신이 들었던 유일한 것이기 때문에, 검사자에게 밖으로 나가는 것을 제외하고는 그 단계에서의 움직임의 결과를 평가하는 것은 불가능한 것 같습니다. 그러나 그 수표는 많은 다른 본질적으로 무작위적인 것들이 일어난 후에 만 ​​일어날 것입니다. 내 생각은 결론을 도출하기에 충분한 의미있는 데이터가 없다는 것입니다. 내가 왜 틀렸어?
Philip Roe

@PhilipRoe 당신이 맞습니다, 각 게임은 약간의 정보만을 제공합니다. 실제로 진화 알고리즘으로 배우는 자체 체스 엔진을 작성했습니다. 임의로 수정 된 엔진 사본이 서로 재생됩니다. 패자는 삭제되고 승자는 더 많은 수정 사본을 생성합니다. 보통 조각 값 (퀸, 루크, 주교 / 기사, 폰)의 올바른 순서를 파악하기 위해서는 10,000에서 20,000 게임이 필요합니다. AlphaZero는 숙련 된 기술을 달성하기 위해 4,400 만 게임이 필요했습니다 (링크 된 문서의 15 페이지 표 참조).
Mark H

응답 해 주셔서 감사합니다! 그러나 나는 여전히 놀랐다. 평가할 수있는 위치는 매우 넓습니다. 그러나 질문 할 수있는 거대한 공간도 있습니다. 의인화 학적으로 나는 규칙을 제외하고는 사전 지식이 전혀없고, 상상할 수없는 수준의 거의 무능한 수준에서 플레이되는 거대한 게임 데이터베이스를 상상합니다. "조각을 세어야한다"그렇다면 조각을 세기 전에 얼마나 좋은 생각으로 보이는가?
Philip Roe

1
"좋은 질문은 무엇입니까?"에 대한 강력한 힌트가 제공 되었더라도 상상하기가 매우 어렵습니다. 그럼에도 불구하고 Im은 20,000 게임에서 일련의 조각을 만들 수 있다는 인상을 받았습니다. 타블라가 실제로 rasa라는 것을 받아들이 기가 매우 어렵다는 것을 알게되었습니다. 규칙을 생성하고 수정하는 과정에 대한 최소한의 지침 (여러 개, 얼마나 자주?)이 여전히 중요해 보입니다.
Philip Roe

1
@PhilipRoe 내 프로그램에서 엔진에 조각을 세도록 지시하지만 각 조각이 얼마나 가치가 있는지는 말하지 않습니다. 그래서 나는 엔진에 무엇을보아야하는지 말하지만 어떻게 보이는지 가중시키는 방법은 아닙니다. AlphaZero는 훨씬 더 많은 tabula rasa입니다. 궁금한 점이있는 경우 : github.com/MarkZH/Genetic_Chess
Mark H
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.