| # LEAN & MEAN PLAN: DYNAMIC GATED FUSION & SMOOTH FOCAL LOSS |
|
|
| ## 1. Triết lý (Philosophy) |
| Thay vì thêm các lớp xử lý ảnh phức tạp, chúng ta tập trung vào việc tối ưu hóa cách model **kết hợp thông tin** (Fusion) và cách **trọng số hóa lỗi** (Loss Weighting). Mục tiêu là cô lập vấn đề gốc rễ khiến MAE của p08 bị kẹt. |
|
|
| ## 2. Thay đổi cốt lõi (Core Changes) |
|
|
| ### A. Dynamic Gated Fusion (Thay thế Concat/Shuffle) |
| Cơ chế này cho phép model tự học cách điều tiết dòng thông tin: |
| 1. **Input:** Đặc trưng Ảnh (App) và đặc trưng Hình học (Geo). |
| 2. **Gate:** `gate = sigmoid(Linear(App + Geo))`. |
| 3. **Output:** `fused = gate * App + (1 - gate) * Geo`. |
| * **Mục tiêu:** Ép model phải sử dụng đặc trưng Ảnh (mí mắt, con ngươi) khi thông tin Hình học (landmarks) không đủ độ tin cậy hoặc bị anatomical bias (như p08). |
|
|
| ### B. Smooth Focal Weighting (Thay thế Step Focal) |
| Thay thế hàm bước `torch.where` bằng hàm Sigmoid liên tục để ổn định Gradient: |
| * **Công thức:** `weight = 1.0 + gamma * sigmoid(error - tau)`. |
| * **Lợi ích:** Tránh hiện tượng "giật" gradient khi lỗi dao động quanh ngưỡng 4.2°, giúp quá trình hội tụ mượt mà và sâu hơn. |
|
|
| ## 3. Cấu hình Thử nghiệm (Experiment Setup) |
| * **Model:** `LIPEV2StudentGated` (Cấu trúc tối giản, quay lại dùng GAP duy nhất để cô lập hiệu quả của Gate). |
| * **Participants:** `p08`, `p09`. |
| * **Learning Rate:** `5e-5`. |
| * **Epochs:** `75`. |
| * **CPU Optimization:** `num_workers=8`. |
|
|
| ## 4. Kịch bản thực thi (Execution Roadmap) |
| 1. Tạo file demo `src/train_gated_fusion_demo.py`. |
| 2. Triển khai lớp `GatedFusion`. |
| 3. Cập nhật hàm `GazeDistillationLoss` với cơ chế Smooth Weighting. |
| 4. Chạy thử nghiệm cho `p08` và `p09` để so sánh trực tiếp với Hybrid V3. |
|
|