# Lost Cities Deep CFR — 다음 실험 아이디어 노트 ## Recap slot_aware_playability iter 240까지 진행. 광의 selectivity 학습됨 (score per opened color -10 → -7, baseline +14 우위). 협의 selectivity 미해결: opened_colors 4.95+, bad_open_rate 88-92% plateau, calibration gap 6-9 → 2-4 감소. 외부 모델 4개 자문 받음. 진단 다 다르게 옴, 다 mechanism level 합당. **네 번째 모델이 가장 깊은 layer 짚음** — Deep CFR 구현 디테일 (current vs average policy, all-negative fallback, reservoir memory inertia) 측면에서 우리가 본 적 없는 진단들. 코드 수정 (league bucket sampling, AdamW) 진행 중. ## 진단 가설들 (서로 충돌, 중첩 가능) **Variance 가설 (Gemini)** Draw variance ±40 vs entry regret ~5 = SNR 0.125. Variance가 entry decision regret signal 압도. Calibration gap 감소 = "variance가 prediction 자체를 무용하게 만듦". 1순위 개입: reward smoothing. **Architecture / Action representation 가설 (두 번째, 세 번째, 네 번째 모델)** Flat MLP가 action-conditional advantage 분리 못 함. "Play X" vs "Discard X"가 같은 weights 사용. Selectivity는 action property인데 state encoder 위 flat output으로는 표현 못 함. 1순위 개입: action-factorized scorer 또는 open-gate. **"Open and recover" 가설 (두 번째 모델)** 정책이 entry filter 학습 대신 "다 열고 수습" 평형으로 수렴. score per opened color 개선이 그 증거. 수습 능력 강해질수록 entry 학습 동기 줄어듦. **Action-local credit assignment 가설 (세 번째 모델)** "Bad open이 진짜 bad action인가" 자체 의심. final own expedition negative ≠ counterfactual EV negative. 우리 bad_open_rate metric이 Deep CFR objective와 mismatch 가능. "Skip color" action 부재로 single regret accumulator 없어서 부정 신호가 여러 play-card action에 분산. **Average strategy / League inertia 가설 (네 번째 모델, 신규)** Deep CFR은 최종적으로 average strategy가 수렴 대상. current advantage policy는 selectivity 학습 중인데 average strategy / league inertia가 끌고 있을 가능성. 우리가 측정한 metric은 어떤 정책 기준인지 불분명. league `current 0.5 / recent 0.3 / older 0.2`에서 older가 초기 5-open convention 보존 가능. **All-negative fallback 가설 (네 번째 모델, 신규)** 정보집합에서 모든 predicted regret ≤ 0이면 uniform fallback. Lost Cities에서 uniform이 open_new를 자주 선택. Deep CFR 논문 ablation에서도 fallback 처리가 큰 영향이라고 보고. 우리 코드에서 이게 어떻게 작동하는지 미확인. **Calibration ceiling 가설 (부분, 여러 모델)** Visible-score predictor의 ceiling은 있을 수 있음. 다만 selectivity 자체의 ceiling은 아님. selectivity는 visible-score prediction 말고 option value, irreversible cost 회피, opponent dynamics 대응 등 다른 경로로도 emerge 가능. **Self-play attractor 가설** 5-color가 stable equilibrium. 한쪽이 selectivity 시도하면 즉시 손해. safe_heuristic이 3.7에서 강하면 진짜 NE는 아닐 듯. 다만 self-play 안에서는 stable. **Lost Cities NE 자체가 5-color 가설** 이론적 가능성 0 아님. self-play가 발견한 게 진짜 NE면 transition 영원히 안 옴. 검증 가능한 형태로는 tabular oracle 또는 BR 진단. ## 개입 아이디어 dump ### Diagnostic (가장 먼저 — 진단 cost 낮음, 정보량 큼) **Current / Average / League policy 분리 측정 (네 번째 모델)**: opened_colors를 세 정책 (current advantage + RM, average strategy net, league mixture) 별로 따로 측정. 셋 다 5.0이면 정책 자체 stuck, current만 4.0이면 inertia 문제. 즉시 진단 가능. **All-regrets ≤ 0 fallback 빈도 측정 (네 번째 모델)**: 정보집합 중 fallback 발동 비율, 그때 action_type 분포, 그 결정만으로 opened_colors 측정. open_new 비율 높으면 cheap fix 후보. **Empirical r̃ by action class (네 번째 모델)**: advantage memory의 target을 action class별로 분류. open_new_safe / open_new_bad / continue / discard / draw로 나눠서 평균과 분위수. `r̃(open_bad) < 0인데 V predicts ≥ 0`이면 representation 문제. `r̃(open_bad) ≥ 0`이면 bad_open metric mismatch. **BR-to-current 진단 (세 번째, 네 번째 모델)**: frozen current 상대로 pure payoff BR 학습. BR이 selective면 all-open exploitable, BR도 5-open이면 zero-sum objective상 자연스러운 전략. **Counterfactual open EV audit (세 번째 모델)**: first-open 정보집합에서 force open vs force best non-open 비교. Δ_open 분포 분석. `Δ_open < 0`인데 policy opens면 학습 실패. **Tabular Lost Cities oracle (네 번째 모델, 우아함)**: 2 colors × 6 ranks 축소판으로 tabular CFR 또는 external-sampling MCCFR. tabular도 5-open이면 게임 자체 5색 선호 가능성, selective면 Deep CFR approximation 문제 확정. Pure self-play 철학 안 깸. ### Architectural **Open-gate (세 번째, 네 번째 모델)**: legal action set 안 바꾸고 latent에서 skip color 표현. `score[a_first_open_c] = base_score(a) + open_gate(state, color_c)`. 부정 신호가 한 곳에 모임. Action-factorized보다 cheap. **Hierarchical entry gate target (네 번째 모델 구체화)**: open-gate를 traversal counterfactual value로 학습: ``` target_entry_adv(I,c) = max_a opens_c r̃(I,a) - max_b not_open_c r̃(I,b) 또는: logsumexp over open_c - logsumexp over non_open_c ``` heuristic label 아님. self-play traversal value에서 직접 나옴. **Action-factorized scorer (full)**: state encoder + per-action feature → score(s, a). 1-2일. **Color permutation equivariance / augmentation (네 번째 모델)**: 5색 대칭 활용. SharedColorMLP 또는 학습 시 색 순서 permute augmentation. 거의 무료. selectivity 기준 한 번만 배움. **Slot-action shared encoder**: SharedSlotMLP로 hand slot embedding. **Dueling head**: A(s,a) = Q(s,a) - mean(Q(s, legal_actions)). Action 간 차이 강조. **Two-headed MLP**: final layer를 play/discard로 split. capacity 동일. 1-2시간. **Capacity scaling**: 256x3 → 512x3. 다른 변수와 entangle 위험. ### Training dynamics **LCFR / DCFR weighting (네 번째 모델)**: 과거 regret discount, late iteration 더 강하게 반영. 초기 5-open snapshot이 memory와 league에 오래 남는 문제 직접 해결. Pure self-play 유지. **All-negative fallback 수정 (네 번째 모델)**: uniform → argmax regret + tie random. 한 줄 수정. 가장 cheap. discard tie-break는 heuristic 냄새라 자제 권고. **League weight 조정 (네 번째 모델)**: older weight 0.2 → 0.05~0.1. 초기 convention 영향 감소. **Burn-in 제외**: 처음 100~200 iter average memory에 약하게 반영. 초기 high-entropy phase 영향 감소. **Reward smoothing (Gemini)**: `U = sign(Δ)·sqrt(|Δ|)` 또는 `tanh(Δ/20)`. Variance 압축. 5-10분. zero-sum 보존. (네 번째 모델은 권고 안 함, 게임 변경 우려) **V(S) baseline (state-level aux)**: state value 예측 head. State-level이라 action property와 mismatch 가능. **Open-action regret sign auxiliary (세 번째 모델)**: first-open action에서 `y = 1[A_open(I,a) > 0]` 예측. Counterfactual regret 자체를 target으로. **aux_open_adv / aux_delay_value / aux_entry_bucket (네 번째 모델)**: final sign 말고 action-regret 기반 auxiliary. λ 0.03~0.10 작게. 후반 anneal down. shared trunk까지만 gradient 허용 ablation. **First-open replay reweighting (세 번째 모델)**: minibatch에서 first-open 정보집합 oversample. Pure self-play 안 깸. **Type-balanced RM epsilon (세 번째 모델)**: action-uniform 대신 type-uniform exploration. 단 이건 exact CFR에서 멀어질 수 있어 fallback/weighting/architecture 먼저. **DCFR style discount**: regret/strategy memory 시간 가중. Reservoir buffer와 상호작용 검토 필요. **Memory discounting**: 오래된 all-open snapshot 영향 감소. ### Game-specific inductive bias **Hypergeometric features (세 번째 모델)**: `P(reach_break_even | public info, random unseen draw)`. recoverable_score보다 직접적. **Discard alternative quality features**: open이 좋은가가 아니라 "open이 지금 가장 덜 나쁜가" 평가용. **Option value features**: 미래 draw 수, public dead cards, deck phase pressure 등. **Risk-sensitive objective**: zero-sum 보존이지만 게임 변경. 후순위. **Action abstraction (skip color action)**: 게임 자체 변경. 큰 작업. (세 번째 모델이 비추, latent gate가 더 안전) ### Framework level (마지막 옵션) **PSRO-style population**: strategy portfolio + learned response → empirical game equilibrium. Heuristic anchor 없이 population diversity. Deep CFR 내부 수정이 아니라 훈련 틀 변경. ## 검증 측정 항목 ### 기존 metric - Score per opened color 변동성 - Calibration gap 추세 - Opened_colors 분산 - Bad_open_rate vs good_open_rate 갈라짐 - 4-color vs 5-color frequency ### 새 metric **Calibration metric 자체 변경 (세 번째 모델)**: ``` 기존: E[first_open_recoverable | positive final] - E[... | negative final] 추천: E[Δ_open | policy opens] - E[Δ_open | policy doesn't open] ``` Deep CFR objective와 align. **Policy 분리 측정 (네 번째 모델)**: - opened_colors (current advantage policy) - opened_colors (average strategy net) - opened_colors (league mixture) **Fallback 측정 (네 번째 모델)**: - % infosets where all legal regrets ≤ 0 - among fallback: P(action_type=open_new), P(continue), P(discard) - avg_opened_colors from fallback decisions only **Empirical advantage by class (네 번째 모델)**: - empirical r̃(open_new_safe), r̃(open_new_bad), r̃(continue_safe), r̃(continue_unsafe), r̃(discard_safe), r̃(discard_dangerous), r̃(draw_*) - 평균과 분위수 - network V vs empirical r̃ 비교 **Action-level metrics**: - First-open action regret sign accuracy (또는 AUC) - Open-vs-best-discard margin 분포 - bad_open_EV_rate = 비율(Δ_open < 0) - Deck phase별 open threshold ### 필요 샘플 수 수학 (네 번째 모델) ``` calibration gap = d, terminal variance = σ² sign 안정 인식 위해 N ≳ σ²/d² d 작거나 σ 크면 N 폭발 → "더 돌리기"의 한계 명확 ``` Phase transition은 iter 수가 아니라 "음의 entry regret이 분리되어 누적되는가"에 달림. ## 네 모델 비교 요약 | 항목 | Gemini | 두 번째 | 세 번째 | 네 번째 | |------|--------|--------|---------|---------| | Dominant obstacle | Variance × attractor | Architecture | Action-local credit + skip 부재 | **Avg/league inertia + fallback + architecture** | | Calibration ceiling | Fundamental | "Open and recover" | Predictor ceiling이지 selectivity ceiling 아님 | 부분 동의, predictor ceiling 한정 | | 1순위 개입 | Reward smoothing | Action-factorized | Open-gate + replay reweight + type-balanced eps | **Diagnostic 먼저, 그다음 fallback fix + LCFR/DCFR + action-factorized** | | Current vs avg policy 분리 | | | | **있음** | | Fallback 진단 | | | | **있음** | | Empirical r̃ by class | | | | **있음** | | Tabular oracle | | | | **있음** | | Entry gate target 정의 | | | (언급) | **수학적 정의** | | Color permutation aug | | (언급) | | **있음** | | BR 진단 | | | 있음 | 있음 | | Bad_open metric 의심 | | | 있음 | 있음 | | Sample complexity 수학 | | | | **있음** | | Phase transition | 가능 | 거의 불가 | 거의 불가 | 거의 불가, mechanism 정밀 | | 이론 reference | | | Zinkevich, Brown | **Zinkevich, Brown, MCCFR, DCFR, PSRO** | ## 주관적 인상 / 메모 - 네 모델 다 valuable하지만 깊이가 다름. Gemini < 두 번째 < 세 번째 < 네 번째 순으로 mechanism level 깊어짐. - 네 번째 모델의 가장 큰 신규 기여: **diagnostic 먼저 하라**는 권고. 우리가 4번 실험 동안 한 번도 안 본 측정들 (current vs avg policy, fallback, empirical r̃ by class). 이거 측정만 해도 나머지 가설들 중 어느 게 맞는지 즉시 판별. - "Current vs Average vs League policy 분리" — 우리 분석의 진짜 blind spot. 우리는 한 정책의 행동만 봤음. Deep CFR은 average strategy가 수렴 대상인데. - All-negative fallback 진단 — Deep CFR 논문 ablation에서 큰 영향이라고 보고된 거. 우리 코드에서 어떻게 작동하는지 한 번도 안 본 듯. 진단 후 한 줄 수정으로 큰 변화 가능성. - Tabular oracle 실험 — 가장 우아함. "Lost Cities 구조에서 selectivity가 자연스러운가" 질문에 데이터로 답함. Pure self-play 철학 안 깸. - Entry gate target의 수학적 정의 (네 번째 모델) — 세 번째 모델 open-gate 권고의 빈 부분 채움. heuristic label 아니라 traversal counterfactual value 직접 사용. - "Open and recover" (두 번째) + "Skip color 부재" (세 번째) + "Avg/league inertia" (네 번째) 통합: 정책이 entry filter 학습 대신 수습 학습 가는 mechanism이 (1) skip action 없어서 부정 신호 분산 + (2) average policy가 inertia로 5-open 보존 + (3) function approximation이 action 분리 못 함의 복합. - Calibration metric 자체를 Δ_open 기반으로 바꾸는 게 진단 정확도 올림. 기존 visible_score 기반은 Deep CFR objective와 mismatch. - "5000 iter 더 돌리기"는 네 모델 다 회의적. 네 번째 모델이 sample complexity 수학으로 가장 정확히 설명. expectation 낮춰야. - Reward smoothing은 Gemini만 권고. 다른 모델들은 회의적이거나 비권고. Variance가 진짜 dominant인지 검증 필요. - 다른 모델들이 architecture 1순위로 갔는데 네 번째 모델은 **diagnostic 1순위, weighting 2순위, architecture 3순위** 순서 권고. 진단 안 하고 architecture 가는 건 비싼 도박. 진단으로 어느 가설이 맞는지 먼저 보는 게 ablation 청결성과 효율성 모두 높음. - Pure self-play 철학과 self-play trajectory label aux loss는 양립 (두, 세, 네 번째 모델 다 권고). - "Discard tie-break" 같은 selectivity 방향 휴리스틱은 자제 권고 (네 번째 델). pure self-play 철학 보존.