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 또는 장목을 둠, 이미 돌을 둔 곳에 돌을 둠.
- 끝나는 조건
- 이겼을 때
- 반칙 했을 때
- 돌을 다 두었을 때