여기서 부터는 ㅈ공지능 전문가 아니면 이해하기 어려운 내용이 있을텐데 거르고 봐도 댐
애당초 논문이란건 전문가들 읽으라고 쓰는거기때문에 어쩔 수 없다
그래도 이런 똥글은 일반인들만 읽을거니까 일반인들을 위한 내용으로 좀 더 채웠다.
마작에는 10의 48승가지의 경우의 수가 존재할 수 있다고 함.
※3턴에 어떤 손패 상황에서 어떤 패를 쯔모해 오고 어떤 걸 버리는지 모든 경우를 따지면 그럴수도
하지만 보통 첫 턴에 3-7 수패를 버리는 일은 없을테니 실제로 벌어지는 상황은 10의 48승보단 적을 듯
그래도 A4 용지 50번만 접어도(2^50) 그 두께가 지구에서 태양까지 닿는다고 하는데 마작의 경우의 수도
어마어마하긴 함
그래서 연산량을 좀 줄일 필요가 있다.
연상량을 줄이기 위해서
1. Depth First Search 쓴다고 함 (알파고는 Breadth First Search 씀)
※ 둘의 차이는 DFS가 BFS보다 먼 미래를 볼 수 있는데 볼 수 있는 미래 가지 수는 적음
2. 상대방 행동에 대해서 ㅈ도 신경 안쓴다고 함.
게임에서 가장 중요한 건 앞으로 벌어질 수만가지 상황에 대해서 예측하는 거임
바둑은 내가 (3,4)에 두면 상대는 (7,9)에 둘거같아 그럼 나는 어디에 (3,5)에 둬야지
or 내가 (7, 9)에 두면 상대는 (3, 4)에 두겠지?
이런 식으로 예상을 하고 더 좋은 수를 찾는데
마작의 경우 상대방이 나랑 전혀 상관없는 패를 버리는 경우의 수까지 따지면 연산량이 감당이 안돼서
자신이 치, 퐁, 캉, 쯔모를 통해 패를 가져오는 경우에 대해서만 예상해 나간다는 뜻
그거랑 별개로 내가 생각한 수만가지 미래 중에서 이게 좋아보이지만 폐기 모델이 생각했을 때
이 패는 버리면 안되는 패라면 다른 미래를 고름
위에 ㅈㄴ 간단해 보이는 2가지를 이용해서 100가지가 넘는 플랜을 구상할 수 있다고 함.
내가 가진 어떤 패 1개를 교체하면 1000점 짜리 역이 완성된다.
혹은 내가 가진 어떤 패를 3개 교체하면 12000점 짜리 역이 완성된다.
이런 식의 여러가지 상황에 대해서 예상가능
예측 모델에 대해서
1부에서 소개했던 치트급 예측 모델에 대해서 드디어 알려주는데 생각보다 간단함.
시간과 정신의 방에서 수련을 하는데
처음에는 패산과 상대방의 패를 모두 보면서 두는 거임
그거에 익숙해져서 잘두게되면 10% 정도 가림
그러면 처음엔 다 볼 때처럼 잘 두지 못하는데 계속 학습하면
모두 보면서 둘때 처럼 둘 수 있게 됨
그런 식으로 최종적으로는 실제 게임처럼 플레이하게 되는데
실제로 모든 패를 볼 때 처럼 예측이 가능하다는 거임
패산에 남아있는 패, 상대방이 들고 있는 패 등의 정보를 안줘도
줬을 때랑 결과가 비슷하게 나온다는 뜻
pMCPA에 대해서
1부에서 잠깐 소개했었는데 몬테 카를로 트리 서치(MCTS)의 변형 모델
바둑, 체스 이런 건 초기상태가 모두 동일하지만 마작은 모든게 랜덤이라 MCTS 쓰기가 어려움
그래서 내 패는 고정한 채로 나머지 패들만 섞어서 여러판 둠
기존 MCTS는 (selection -> expansion -> simulation -> backpropagation) 4단계로 진행되는데
pMCPA는 (simulations -> adaptation -> inference) 3단계로 진행됨
얘네가 코드를 공개를 안해서 실제로 어떻게 동작하는지 모르겠지만 대충 번역해 보면
simulations
상대방과 패산의 패를 랜덤 샘플링하고 후보로 추출된 action들을 실행할 거임.
DFS를 쓴다고 했으니 offline-trained policy를 이용해서 게임이 끝날 때 까지 진행할 듯
adaptation
simulation 결과를 이용해서 모델 파라미터를 업데이트함
inference
단계에서 업데이트된 파라미터를 이용해서 이번턴의 행동을 확정하고 진행함. 다시 simulation 반복
나도 이해가 안가는 부분
1. 그럼 라운드 진행할 때 마다 상대방과 패산의 패를 섞는거임 ? -> 아마도? 정확하게 모르겠음
2. and then use the offline-trained policy to roll out and finish the whole trajectory
이렇게만 써있는데 게임 끝날 때 까지 진행하는 거 맞음 ?
-> 분명 위에서 DFS 쓴다고 했는데 그거에 대해서 이 부분에 설명이 없음. 그냥 읽어보면 BFS로 K개의 (state,action)쌍을 실행하는 것 같은데 분명 DFS 쓴다고 헀으니 끝까지 진행할 듯?
코드 공개가 안되있어서 뇌피셜인 부분
그 밖에는 마작보다 딥러닝에 대한 내용임
(Distributed Reinforcement Learning with Entropy Regularization)
시간과 정신에 방에서 한판씩 두면서 학습하는게 아니라
나루토 처럼 그림자 분신 만들어서 병렬로 수십 수백판을 진행하면서
학습한 것을 어떻게 본체에 반영했는지에 대해서라거나
(자세한 내용: https://lilianweng.github.io/lil-log/2018/04/08/policy-gradient-algorithms.html)
(Global Reward Prediction)
RNN(Recurrent Neural Network)을 이용해서 최종 점수 예측을 하는 부분이라던가
CNN 모델의 input을 어떻게 encoding 하는지에 대해서도 설명하는데
그냥 두리뭉술하게 서술하고 정확하게는 안적어 놓음
코드도 없어서 걍 뺌
마지막으로 실험 데이터
요약해보자면 약 100,000,000번 정도 혼자서 게임을 진행했고
천봉에서는 5,760회 게임플레이해서 10단 찍고 안정단수는 8.74단이라고 함
다른 ㅈ공지능 마작 모델과 비교해서 수준이 높은 편
실제로 게임 플레이 통계표를 제공해주는데
재밌는 부분이 화료율은 오히려 낮은데 1위 확률은 월등히 높음
이길 때 확실히 이기고 이길 판 아니면 상대가 크게 못나게 막는다는 뜻
Deal-in Rate가 쏘일 확률인데 10판하면 1판정도 쏘인다고 함
문제는 얘가 판 끝내려고 일부로 쏘이는 경우도 있어서 맘만 먹으면 훨씬 낮아질 수 있음
이상이 Suphx 요약이다.
이제 이걸 만들어야하는데
Suphx는 RL 돌리는데 GPU 수십개를 때려박아서 따라서 만들기 힘들어 보임
차라리 Bakuuchi, NAGA 이런 얘들이 CNN만 이용해서 학습했다는거 보면 가능해보임
댓글 영역
획득법
① NFT 발행
작성한 게시물을 NFT로 발행하면 일주일 동안 사용할 수 있습니다. (최초 1회)
② NFT 구매
다른 이용자의 NFT를 구매하면 한 달 동안 사용할 수 있습니다. (구매 시마다 갱신)
사용법
디시콘에서지갑연결시 바로 사용 가능합니다.