# Memory: 클래스 분포 분석 결과 및 핵심 인사이트

**Timestamp**: 2026-02-28 13:30  
**Topic**: basket_dataset_v2 전체 실제 클래스 분포 측정 결과

## 분석 결과 (528 에피소드, 총 9,487 프레임)

|  cls  |     이름     | 프레임 수 |      비율 | 역수 권장 weight |
| :---: | :----------: | --------: | --------: | ---------------: |
|   0   |     STOP     |       528 |      5.6% |             8.98 |
|   1   | F (Forward)  |     4,743 | **50.0%** |             1.00 |
|   2   | B (Backward) |         0 |      0.0% |       - (미사용) |
|   3   |   L (Left)   |       277 |  **2.9%** |            17.12 |
|   4   |  R (Right)   |       527 |      5.6% |             9.00 |
|   5   | FL (전진+좌) |     1,581 |     16.7% |             3.00 |
|   6   | FR (전진+우) |     1,831 |     19.3% |             2.59 |
|   7   |      BL      |         0 |      0.0% |       - (미사용) |
|   8   |      BR      |         0 |      0.0% |       - (미사용) |

**권장 class_weights (JSON용)**: `[8.98, 1.0, 0.0, 17.12, 9.0, 3.0, 2.59, 0.0, 0.0]`

---

## 핵심 인사이트 (교수 시각 포함)

### 1. 🚨 "Left 에피소드 안에 Left 클래스는 3%뿐"
- Left 에피소드(278ep)와 Right 에피소드(250ep) **모두에서 FL, FR, F가 대부분**
- LEFT 클래스는 left 에피소드에만 존재(5.6%) → right 에피소드에서는 **LEFT 클래스 완전 0%**
- RIGHT 클래스(4)는 두 에피소드 모두에 5.6%씩 존재 → 대칭이 아님
- B, BL, BR은 **완전히 미사용 클래스** → 액션 스페이스 재정의 필요

### 2. 🚨 Forward가 절반(50%)을 차지하는 압도적 편향
- 모델이 아무 생각 없이 "무조건 앞으로" 답하면 50% 정확도가 됨
- 즉 val_acc 50%는 "무지성 전진"과 같음 → Baseline 정확도로 삼아야 함

### 3. 기존 class_weight와 실제 권장치 비교

|  cls  | 이름  | **기존(exp07)** | **데이터 기반 권장** |       평가       |
| :---: | :---: | :-------------: | :------------------: | :--------------: |
|   0   | STOP  |       1.5       |         8.98         |   ❌ 너무 낮음    |
|   1   |   F   |       0.1       |         1.00         | ⚠️ 너무 낮게 억제 |
|   3   |   L   |       8.0       |        17.12         |  ⚠️ 더 높여야 함  |
|   4   |   R   |       8.0       |         9.00         |   ✅ 거의 맞음    |
|   5   |  FL   |       3.0       |         3.00         |      ✅ 정확      |
|   6   |  FR   |       3.0       |         2.59         |   ✅ 거의 맞음    |

---

## 구조적 재발견: "Left/Right 에피소드"의 진짜 의미

- Left / Right 에피소드는 **Goal 방향(태스크 맥락)**을 구분하는 것이지 프레임 레이블이 아님
- Left 에피소드 내에서도 FR, F, R 등 모든 클래스가 나타남 (장애물 회피 경로)
- **모델이 배우는 것**: 언어 Goal("go left")을 기억한 채 현재 이미지 기반으로 즉각 세부 조향 결정
- LSTM window=8이 바로 이 "Goal Context 기억" 역할을 담당 → 아키텍처와 데이터 구조가 일치

---

## 즉각 실행 권장 사항

1. **exp07 config class_weights를 데이터 기반 권장치로 교체** (재학습 전에)  
2. **B, BL, BR 클래스(2,7,8)를 9-class에서 제거 또는 미러링으로 생성** 고려  
3. **val_acc 50% = 무지성 Forward 베이스라인**임을 팀 전체가 인지해야 함

> **상세 리포트 참조**: `docs/class_distribution_analysis_20260228.md`
