테트리스의 micro action을 한 칸씩 학습하면 credit assignment가 길어진다. 매크로 정책은 현재 블록의 회전과 열을 한 번에 후보로 만들고, 결과 보드의 특징을 평가해 선택한다. 이 소스는 Mixture of Experts 아이디어를 작은 규칙 모델로 구현한다.
후보 만들기
C++ 엔진의 `tetris_eval_macro_candidates`가 가능한 `(rotation, column)` 후보마다 지운 줄, 구멍, 표면 굴곡, 높이, game over 여부를 반환한다. Python은 엔진 핸들을 ctypes로 호출해 같은 규칙 결과를 사용한다.
네 전문가
- A는 구멍 최소화를 가장 중요하게 본다.
- B는 줄 제거에 큰 가중치를 준다.
- C는 표면 굴곡을 줄인다.
- D는 전체 높이를 낮춘다.
모든 전문가는 game over에 큰 음수 점수를 준다. gate 설정은 네 점수를 가중합하고 최대 후보의 index를 반환한다. 현재 구현은 학습된 neural gate가 아니라 설명 가능한 선형 gate다.
왜 유용한가
각 지표의 역할을 분리하면 실패 판에서 어느 전문가가 결정을 지배했는지 추적할 수 있다. DQN이나 LLM의 teacher, 안전 fallback, imitation label 생성기로도 사용할 수 있다.
개선 방향
고정 가중치만으로 모든 단계에 대응하기 어렵다. 초반에는 높이와 굴곡, 위기에는 구멍과 game over를 더 중시하도록 판 상태 기반 gate를 학습할 수 있다. 단, train/test에서 동일한 C++ 평가를 재사용해 정답을 누출하지 않도록 구분해야 한다.
관련 소스
- `moe_macro_policy.py`: 네 전문가와 gate
- `llm_macro_client.py`: LLM 매크로 경로
- `vlm_macro_client.py`: VLM 매크로 경로
- C++ 엔진의 macro candidate 평가 함수
댓글
0개아직 댓글이 없습니다.