# F4: 적응 로직 (Adaptation) ## 개요 자기 평가 결과를 분석하여 다음 세션의 전략과 파라미터를 자동 조절합니다. ## 메트릭 정의 ### 핵심 메트릭 | 메트릭 | 계산 방법 | 목표 | |--------|-----------|------| | **정답률** | 정답 수 / 전체 문제 수 | ≥ 0.85 | | **유형별 정답률** | 유형별 정답 수 / 유형별 문제 수 | ≥ 0.70 | | **주제별 정답률** | 주제별 정답 수 / 주제별 문제 수 | ≥ 0.70 | | **난이도별 정답률** | 난이도별 정답 수 / 난이도별 문제 수 | 0.6-0.8 | | **간격 유지율** | 예정된 복습 수행 비율 | ≥ 0.80 | | **개념 연결도** | 연결된 개념 비율 | ≥ 0.30 | ### 메트릭 수집 각 자기 평가 루프 후 메트릭 계산: ```json { "session_id": "session_001", "iteration": 5, "metrics": { "accuracy": 0.75, "type_accuracy": { "direct_recall": 0.85, "application": 0.70, "variation": 0.65, "connection": 0.80 }, "topic_accuracy": { "rust_async": 0.80, "ownership": 0.70 }, "difficulty_accuracy": { "easy": 0.95, "medium": 0.75, "hard": 0.55 }, "concepts_mastered": 8, "concepts_total": 12 } } ``` ## 적응 로직 ### 1. 정답률 기반 적응 ``` if 정답률 < 0.5 and 연속 3회: → 난이도 하향 → 학습 속도 감소 → 쉬운 문제 비중 증가 if 정답률 > 0.9 and 연속 5회: → 난이도 상향 → 새로운 주제 탐색 → 어려운 문제 비중 증가 ``` ### 2. 유형별 적응 ``` for each 유형 in [직접 회상, 적용, 변형, 연결]: if 유형별 정답률 < 0.5: → 해당 유형 문제 비중 증가 (+0.1) elif 유형별 정답률 > 0.9: → 해당 유형 문제 비중 감소 (-0.05) ``` ### 3. 난이도 적응 ``` if 쉬운 문제 정답률 > 0.95: → 보통 문제 비중 증가 if 보통 문제 정답률 > 0.85: → 어려운 문제 비중 증가 if 어려운 문제 정답률 < 0.4: → 어려운 문제 비중 감소 → 보통 문제 비중 증가 ``` ### 4. 주제별 적응 ``` for each 주제 in 메모리: if 주제별 정답률 < 0.6: → 해당 주제 재학습 세션 추가 elif 주제별 정답률 > 0.9: → 해당 주제 심화 탐색 ``` ## 파라미터 조절 ### 문제 생성 파라미터 ```json { "type_distribution": { "direct_recall": 0.4, "application": 0.3, "variation": 0.2, "connection": 0.1 }, "difficulty_distribution": { "easy": 0.3, "medium": 0.4, "hard": 0.3 } } ``` ### 적응 예시 ``` 원래: direct_recall=0.4, application=0.3, variation=0.2, connection=0.1 적용 질문 정답률 0.45 (낮음): → direct_recall=0.35, application=0.35, variation=0.2, connection=0.1 어려운 문제 정답률 0.35 (낮음): → easy=0.35, medium=0.45, hard=0.20 ``` ## 적응 이력 적응 변경 시 메모리에 기록: ```json { "adaptation_log": [ { "timestamp": "2024-01-10T10:00:00Z", "trigger": "low_accuracy_variation", "changes": { "type_distribution.variation": {"old": 0.2, "new": 0.25} }, "reason": "변형 질문 정답률 0.45 (기준 미달)" } ] } ``` ## 메모리 저장 형식 ```json { "current_strategy": { "type_distribution": {...}, "difficulty_distribution": {...}, "interleaving_ratio": 0.3 }, "adaptation_history": [...], "metrics_history": [ { "iteration": 1, "accuracy": 0.60 }, { "iteration": 5, "accuracy": 0.75 } ] } ```