AlphaZero 이해


29

최근에 Alphabet의 DeepMind 리서치 팀이 기계 학습 엔진을 확장하여 Shogi와 체스를 모두 수행한다는 소식이 발표되었습니다. 명백히, 몇 시간의 자기 학습, 즉 게임의 규칙에 따라 자체적으로 만 플레이한다는 의미에서 체스에서의 성능은 이미 Stockfish 8과 같은 최고 현재 엔진 의 성능을 능가했습니다.. 계산 시간이 제한된 엔진은 성능이 매우 떨어질 수 있기 때문에 Stockfish가 어떤 조건에서 수행하도록 설정했는지에 따라 개인적으로 경기가 정확히 어떻게 설정되었는지는 알지 못합니다. 어쨌든 이것은 매우 인상적인 성과입니다. 왜냐하면 훈련 시간이 몇 시간 더 걸리지 않고 Stockfish를보다 최적으로 설정할 수 있음에도 불구하고 AlphaZero는 현재 수준보다 AlphaZero의 근본적으로 강함을 의미하는 놀이 수준을 다시 능가 할 것입니다. 휴리스틱 평가 기능에 기반한 표준 체스 엔진.

이 뉴스에 비추어 볼 때, 누군가가 우리가 사용하는 표준 엔진에 비해 기계 학습 체스 엔진의 작동에서 주요 차이점을 자세히 설명 할 수 있다면 좋을 것입니다. 보다 구체적으로 :

  1. 기계 학습 방법으로 훈련 된 AlphaZero가 사용하는 평가 기능이 결국 다른 휴리스틱 평가 기능이 아닙니까? 그렇다면 두 엔진의 평가 기능 간의 근본적인 차이점은 Stockfish가 인간에 의해 수동 조정 된 최적화 된 평가 기능을 가지고 있다는 것입니다. 이는 최적화 할 기능의 정의가 고정되어 있음을 의미합니다. AlphaZero, 목표 평가 기능은 추가 교육 (예 : 자체 재생)을 통해 지속적으로 재정의되고 있습니까? 후자를 훨씬 더 역동적 인 접근 방식으로 만듭니다.
  2. 궁극적으로 모호하게 말하면 Stockfish와 같은 엔진은 평가 기능을 가능한 이동의 나무에 적용하여 유지할 지점과 떨어질 지점을 결정한 다음 더 깊은 콘크리트 를 통해 결정합니다.각각의 브랜치의 분석은 다시 평가 기능을 통해 어떤 브랜치가 가장 높은 값을 산출했으며 이것이 주요 변형이되는지 파악합니다 (물론이 프로세스에는이 큰 트리를 효율적으로 프 루닝하기위한 많은 고급 기술이 있습니다). 즉, 각 위치에 대해 Stockfish가 결정을 내리려면이 매우 구체적인 루틴을 반복해야합니다. 반대로, AlphaZero는 매우 다른 작업을 수행한다고 생각합니다. 즉, 주어진 위치에서 가능한 이동 트리에 대한 구체적인 분석에 의존하지 않고 평가 기능이 본질적으로 해당 위치에 값을 할당합니다 (직관적으로 구체적 으로 수행 할 필요없이 훈련 된 다른 모든 위치와 유사한 현재 위치)Stockfish 또는 인간 플레이어와 같은 방식으로 분석합니다. 이것은 AlphaZero 또는 이와 유사하게 훈련 된 머신 러닝 엔진의 작동에 대한 건전한 그림입니까?

  3. 우리는 체스 위치의 공간이 그 위치의 모든 위치를 샘플링하려는 시도가 원칙적으로 완전히 헛되이 될 정도로 충분히 크다는 것을 알고 있습니다. (EXPTIME 복잡성), 이는 자기 플레이를 통한 훈련량이 충분하지 않다는 것을 암시합니다. 모든 위치를 탐색 했으므로 셀프 플레이를 통해 공간의 작은 부분을 잠재적으로 탐색 했음에도 불구하고 어떻게 최종 결과가 좋을 수 있습니까? 여기서 중요한 아이디어는 무엇입니까?

  4. 내 생각에, AlphaZero는 훈련 위치에서 이전에 방문한 위치와 새로운 위치를 비교할 때 주어진 위치를 비교할 수있는 최적의 방법을 가지고 있습니다. 비교가 가까울수록 비교에서 얻을 수있는 평가가 더 유효합니다. 예를 들어, 게임 5에서 Bg5 이동을했을 때 , 훈련하는 동안 비슷한 구조를 탐색 했어야합니다. 즉,이 위치가 훈련에서 연구 한 다른 위치와 본질적으로 동일하다는 것을 인식 할 수 있습니다. 머신 러닝을 통해 얼굴 인식이 달성되는 방식과 유사하며, 그 결과 Bg5가 다른 유사한 위치에서와 마찬가지로 가장 좋은 움직임이라고 결론을 내립니다. 이것은 모두 올바른 추측입니까? 나는이 비교가 어떻게되는지 모른다 훈련 된 모든 위치를 저장하고 매번 파싱 할 수는 없으므로 반드시 수행됩니다.

이것은 단지 AlphaZero의 작업에 대한 통찰력을 얻고 그 입장에서 결정을 내리는 방법입니다.

답변:


18
  • AlphaZero는 검색에서 이동을 어떻게 선택합니까?

이것은 논문에서 매우 분명합니다.

각 시뮬레이션은 각 상태에서 방문 횟수가 적고 이동 확률이 높으며 값이 큰 선택을 선택하여 진행합니다.

그게 무슨 뜻이야? AlphaZero는 심층 신경망에서 각 움직임 (종이의 2 페이지 끝)에 대한 확률을 훈련했습니다. 검색하는 동안 해당 확률에 비례하여 이동을 선택하고 샘플링 공간을 탐색하기 위해 카운트가 적은 노드도 선택합니다. 이것은 새로운 개념 이 아닙니다 . Monte Carlo Tree Search는 Google이 존재하기 전에 문학에있었습니다.

------ (매우) 대략적인 예 ------

우리는 입장이 있고, 두 가지 법적 조치가 있습니다.

  • 이동 1은 좋고 합리적입니다
  • Move 2는 보상없이 자신의 왕을 위험에 빠뜨립니다.

이 논문에 따르면, 훈련 된 딥 모델은 확률을 (0.90, 0.10)으로 추정 할 수 있습니다. AlphaZero가 Monte Carlo에서 4 개의 반복을 사용한다고 가정 해 봅시다. 반복은 다음과 같습니다.

반복 1 : 확률 1이 가장 높으므로 이동 1을 선택하십시오. 이동 1에서 시뮬레이션을 수행합니다. 반복 2 : 확률 1이 가장 높으므로 이동 1을 선택합니다. 이동 1에서 시뮬레이션을 수행합니다. 반복 3 : 확률 1이 가장 높으므로 이동 1을 선택합니다. 이동 1에서 시뮬레이션을 수행하십시오.

이제 우리는 반복 4에 있습니다. 비록 이동 1은 더 높은 추정 확률을 가지지 만 이동 2는 검색되지 않았습니다 (서류에서 "방문 횟수"). 이제 AlphaZero는 이동 2를 선택하고 시뮬레이션을 수행합니다.

두 가지 움직임 모두 고려되지만 AlphaZero는 움직임 1에 더 많은 컴퓨팅 리소스를 넣을 것입니다 (좋은 것).

그런 다음 AlphaZero는 최고의 예상 결과로 이동을 선택합니다.

------------------ 당신의 질문: ------------------

기계 학습 방법으로 훈련 된 AlphaZero가 사용하는 평가 기능이 결국 다른 휴리스틱 평가 기능이 아닙니까?

훈련 된 평가 기능은 심층 신경망이며, 스톡 피쉬에서 보는 것과 같은 휴리스틱 규칙 세트 가 아닙니다 . 훈련 된 네트워크에 대해 아무도 (Google 팀조차도) 완전히 이해하지 못합니다. 이것이 NN이 일반적으로 작동하는 방식입니다.

AlphaZero의 경우 목표 평가 기능은 지속적으로 재정의되고 있으며 목표 평가 기능은 추가 교육을 통해 지속적으로 재정의되고 있습니다.

AlphaZero의 평가 기능은 훈련 된 뉴런 (바이어스 + 가중치)의 집합입니다. Google 팀은 매우 강력한 기계를 사용하여 매개 변수를 학습했습니다. 일반적으로 딥 러닝 모델 교육에 더 많은 리소스를 투자할수록 더 좋은 매개 변수를 얻을 수 있습니다.

(2).

Stockfish는 알파 베타를 사용하고 AlphaZero는 Monte-Carlo를 사용합니다. 그것들은 매우 다른 두 가지 알고리즘입니다. 알파-베타 알고리즘은 하한 / 상한을 가정하고 Monte-Carlo는 근본에서 잎까지 시뮬레이션을 만듭니다.

모든 위치를 탐색 한 다음, 자기 플레이를 통해 공간의 작은 부분을 잠재적으로 탐색 했음에도 불구하고 어떻게 최종 결과가 좋을 수 있습니까? 여기서 중요한 아이디어는 무엇입니까?

구글은 그들이 체스를 풀 었다고 주장하지 않았으며 강력한 기계조차도 모든 체스 위치를 열거 할 수는 없었습니다. 그러나 그들은 그럴 필요가 없었습니다. 그것이 기계 학습의 요점입니다. 모델은 훈련 세트에서 "배웁니다". 이 경우 훈련 세트는 자체 재생에서 비롯됩니다. 핵심 아이디어는 가능한 한 빨리 좋은 품질의 게임을 최대한 많이 플레이하는 것입니다.

예를 들어 게임 5에서 Bg5 이동을했을 때 훈련하는 동안 비슷한 구조를 탐색 했어야합니다.

나는 AlphaZero가 훈련 게임에서 똑같은 위치에 직면했다고 생각하지 않습니다. 나는 Monte-Carlo에 대한 빠른 읽기가 좋은 생각이라고 생각합니다.

https://chessprogramming.wikispaces.com/Monte-Carlo+Tree+Search

AlphaZero는 충분한 깊이에 도달하여 움직임을 수행 할 수있었습니다. 이 알고리즘은 각 이동에 대해 예상되는 승리 확률을 추정하며, 이동 Bg5는 가장 높은 예상 확률을 나타냅니다.

AlphaGo는 검색이 잘되어 Bg5 이후에 우승 확률이 가장 높았고 Stockfish는이 움직임을 진지하게 고려하지 않았기 때문에 잃어버린 것처럼 생각했습니다.


2
"Monte Carlo Tree Search는 Google이 존재하기 전에 문헌에있었습니다"MCTS를 2006
년경

2
@CodesInChaos MCTS는 새로운 기술이 아닙니다. 구글은 확실히 몬테카를로를 발명하지 않았다.
SmallChess

4
Brügmann 1993은 MC뿐입니다. MC Go Dev. (2003) 은 MC와 나무를 결합하지만 원시적 인 방법으로 사용합니다. Chang (2005) 은 꽤 가깝지만, 다른 맥락에서, 여전히 확장 및 추정 전파를위한 적절한 노드 선택이 부족하다고 생각합니다. MCTS의 효율적인 선택성 및 백업 운영자 Remi Coulom (2006) 은 내가 처음으로 알 수있는 한 적절한 MCTS입니다.
코드 InChaos

1
@SmallChess 귀하의 답변의 일부는 모순되는 것처럼 보입니다. "현재 AlphaZero는 이동 2를 선택하고 시뮬레이션을 수행합니다. 두 이동은 모두 고려되지만 AlphaZero는 이동 1에 더 많은 컴퓨팅 리소스를 배치합니다 (좋은 것)." 진술과 모순됨 각 시뮬레이션은 각 주에서 방문 횟수가 적은 이동을 선택하여 진행 합니다. 귀하의 예에서, 이는 1이 아니라 2가됩니다. 솔직히 말하면, 논문에는 실험을 재현 할 수있는 방법이 없거나 네트워크를 훈련시키는 실제 방법에 대한 통찰력을 제공하기 때문에 이해합니다.
gented

1
그들이하는 것은 본질적으로 "우리는 알고리즘 X를 사용했고 작동합니다"라고 말하고 있습니다. 이것은 메소드 자체에 대한 이해를 거의 또는 전혀 제공하지 않기 때문에, 실제로 무엇을하는지 알아 내기 위해 논문 자체에 너무 집중하지는 않을 것입니다.
gented

0

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


1
나는 당신에게 대답 할 수있을 것 같지만 여기서는 그렇지 않습니다. 새로운 질문을 시작하십시오.
SmallChess

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.