Project/AI Gomoku

[AI 오목] 3.1 강화 학습(Actor Critic) + 오목

Silinu 2023. 11. 17. 02:13

환경 : Window, Python 3.9, Jupyter notebook(Anaconda 설치된 상태), GPU 환경

 

AlphaGo를 참고했을 때, 네트워크 구성으로 Policy network와 Value network로 이루어진 것을 확인했다.
이 글에서는 AlphaGo와 학습하는 방식은 조금 다르지만, 위 두 네트워크를 가진 Actor Critic 기법을 사용하여 self learning 하기로 했다.

 

간단하게 용어 정리하면 다음과 같다.

  • Policy network: agent가 어떤 상황에 놓여져 있을 때 어떠한 행동을 할 확률을 출력 값으로 내보낸다. 이때 하나의 상황에서 여러 행동을 선택할 수 있다면, 각각의 행동을 할 확률이 출력 값이 된다. 
  • Value network: agent가 어떤 상황에 놓여져 있을 때 어떠한 행동을 함으로써 얼마 만큼의 가치를 얻을 수 있을 지를 예측한다.

 

강화 학습 구성 요소는 다음과 같다.

  • 상태
    • 19 × 19 바둑 판(아무 돌도 놓여있지 않으면 0, 흑돌이면 1, 백돌이면 2)
  • 행동
    • 19 × 19 바둑 판 중에서 하나의 위치를 골라 착수함.
  • 보상 
    • 이김: 5
    • 3수를 둠: 3
    • 4수를 둠: 4
    • 43수를 둠: 7
    • 33수를 둠(백): 3 × 수를 둔 만큼(33이면 × 2, 333이면 × 3 등등)
    • 44수를 둠(백): 4 × 수를 둔 만큼(44면 × 2, 444면 × 3 등등)
    • 모든 곳에 돌을 다 둠: 0.1
    • 반칙 함: -1
      • 반칙 조건: 흑이 33, 44 또는 장목을 둠, 이미 돌을 둔 곳에 돌을 둠.
  • 끝나는 조건
    • 이겼을 때 
    • 반칙 했을 때
    • 돌을 다 두었을 때