f8b21af4be
10_Wiki/Topics 대규모 정리: - 오류 캡처/미완성 stub 문서 227개 제거 - 교차폴더 중복 43클러스터 병합 (63파일 → redirect) - 링크명 정규화: 깨진 링크 수정·redirect 직결·개념 매핑 ~2,400건 - 카테고리 MOC 6개 신규 생성 - Graph 섹션 미해결 related-keyword 링크 10,058건 제거 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
161 lines
6.6 KiB
Markdown
161 lines
6.6 KiB
Markdown
---
|
|
id: wiki-2026-0508-ad-hoc-hypotheses
|
|
title: Ad-hoc Hypotheses
|
|
category: 10_Wiki/Topics
|
|
status: verified
|
|
canonical_id: self
|
|
aliases: [Ad Hoc Rescue, Auxiliary Hypothesis, Epicycle, Post-hoc Rationalization]
|
|
duplicate_of: none
|
|
source_trust_level: A
|
|
confidence_score: 0.9
|
|
verification_status: applied
|
|
tags: [philosophy-of-science, epistemology, falsifiability, popper, ml-debugging]
|
|
raw_sources: []
|
|
last_reinforced: 2026-05-10
|
|
github_commit: pending
|
|
tech_stack:
|
|
language: N/A
|
|
framework: scientific method
|
|
---
|
|
|
|
# Ad-hoc Hypotheses
|
|
|
|
## 매 한 줄
|
|
> **"매 falsified theory 의 rescue 의 위해 의 unprincipled patch"**. Ad-hoc hypothesis = 매 prediction 의 fail 후 의 theory 의 save 의 위해 의 added auxiliary assumption — 매 independent test 의 X + 매 explanatory power 의 add 의 X. Popper (1934, 1963) 의 매 demarcation line — 매 science 의 pseudoscience 의 separate. 매 ML/agent debugging 의 modern equivalent — 매 "magic constant + retry" 의 fix.
|
|
|
|
## 매 핵심
|
|
|
|
### 매 Popper 의 criterion
|
|
- **Bad ad-hoc**: 매 theory 의 only refutation 의 block 의 위해 의 added — 매 new prediction 의 X.
|
|
- **Acceptable auxiliary**: 매 independent testable consequence 의 generate.
|
|
- 매 example: Neptune 의 prediction (Le Verrier 1846) 의 acceptable — 매 independently observed.
|
|
- 매 example: Vulcan 의 prediction (Mercury orbit) 의 ad-hoc rescue — 매 GR 의 actually fix.
|
|
|
|
### 매 Lakatos 의 refinement
|
|
- **Progressive program**: 매 auxiliary 의 novel fact 의 predict + corroborated.
|
|
- **Degenerative program**: 매 auxiliary 의 only protect — 매 abandon.
|
|
|
|
### 매 modern science 의 example
|
|
- **Phlogiston** + 매 negative mass 의 rescue (calx 의 weight gain).
|
|
- **Geocentric** + 매 epicycle stack — 매 Copernicus 까지.
|
|
- **Cold fusion** (Fleischmann-Pons 1989) + 매 unreproducibility excuse.
|
|
- **Bem's psi** + 매 publication bias correction (Wiseman 의 critique).
|
|
- **String theory landscape** (debated) + anthropic 의 multiverse 의 rescue.
|
|
|
|
### 매 ML / agent 의 modern parallel
|
|
- **Magic constant**: temperature=0.7 의 work-when-it-works.
|
|
- **Retry-on-fail**: 매 root cause 의 X.
|
|
- **Prompt patching**: "you MUST X" 의 stack.
|
|
- **Eval cherry-pick**: 매 fail case 의 carve out.
|
|
- **Benchmark contamination excuse**: 매 leak 의 always blame.
|
|
- **Hyperparameter stew**: 매 새 result 의 매 dataset-specific tweak.
|
|
|
|
### 매 응용 (red flag detection)
|
|
1. Code review — 매 sleep(n) workaround.
|
|
2. ML eval — 매 fail mode 의 selectively excluded.
|
|
3. Theory paper — 매 rebuttal 의 only auxiliary 의 add.
|
|
4. Agent debugging — 매 prompt 의 mystery instruction 의 keep accumulating.
|
|
5. Postmortem — 매 root cause 의 X — 매 monitoring patch only.
|
|
|
|
## 💻 패턴
|
|
|
|
### Refactor pattern: ad-hoc → principled
|
|
```python
|
|
# 매 ad-hoc — magic retry
|
|
def call_api(x):
|
|
for _ in range(3):
|
|
try: return api(x)
|
|
except: time.sleep(0.5) # 매 why 0.5? why 3?
|
|
|
|
# 매 principled — explicit failure model
|
|
def call_api(x):
|
|
return tenacity.retry(
|
|
retry=retry_if_exception_type(httpx.TimeoutException), # 매 specific
|
|
stop=stop_after_attempt(3),
|
|
wait=wait_exponential_jitter(initial=0.5, max=8),
|
|
reraise=True,
|
|
)(api)(x)
|
|
```
|
|
|
|
### Eval pattern: pre-register failure modes
|
|
```yaml
|
|
# 매 ad-hoc anti — "we exclude the cases where it fails"
|
|
# 매 principled — pre-register exclusion criteria BEFORE running eval
|
|
exclusion:
|
|
- reason: "image >10MB (out of context window)"
|
|
expected_count: ~3%
|
|
- reason: "prompt 의 non-English (model 의 trained English-only)"
|
|
expected_count: ~5%
|
|
# 매 post-hoc 의 add 의 X — 매 protocol violation 의 됨
|
|
```
|
|
|
|
### Hypothesis-driven debug
|
|
```markdown
|
|
1. Hypothesis: "X causes Y because Z"
|
|
2. Independent prediction: "if H true, then we'd see W"
|
|
3. Run test that COULD falsify H
|
|
4. If H survives + W observed → progressive
|
|
5. If H survives only by adding "...except in case Q" → ad-hoc, drop H
|
|
```
|
|
|
|
### Prompt 의 ad-hoc accumulation 의 detect
|
|
```python
|
|
# 매 prompt 의 length 의 grow + per-rule justification 의 missing
|
|
SYSTEM = """You are an assistant. ...
|
|
- DO NOT use bullet points # added 2024-03 — 매 why?
|
|
- ALWAYS confirm before deleting # added 2024-05 — 매 specific incident?
|
|
- NEVER mention OpenAI # added 2024-08 — 매 still relevant?
|
|
- output JSON ONLY # added 2024-12 — 매 conflict 의 line 1?
|
|
"""
|
|
# 매 audit 의 quarterly + 매 each rule 의 origin + still-needed 의 verify.
|
|
```
|
|
|
|
### Falsifiability test (theory health check)
|
|
```python
|
|
def falsifiability_score(theory: str) -> dict:
|
|
return {
|
|
"predictions": [...], # 매 list explicit
|
|
"what_would_falsify": [...], # 매 must be non-empty
|
|
"novel_predictions_made": int, # 매 progressive: >0
|
|
"rescues_added": int, # 매 degenerative if >> novel
|
|
}
|
|
```
|
|
|
|
## 매 결정 기준
|
|
| 상황 | Action |
|
|
|---|---|
|
|
| Theory survives only by adding excuse | Drop theory or restructure |
|
|
| Auxiliary 의 independent test 의 generate | Acceptable, test it |
|
|
| ML model 의 fail case 의 patch 의 escalating | Rebuild architecture |
|
|
| Prompt 의 100+ rule | Audit + collapse + redesign |
|
|
| Postmortem "we'll add monitoring" only | Insufficient — 매 root cause 요구 |
|
|
| Reviewer asks tough question | 매 answer with new prediction, not new excuse |
|
|
|
|
**기본값**: 매 each auxiliary 의 "what NEW would this predict?" 의 ask. 매 None — 매 ad-hoc.
|
|
|
|
## 🔗 Graph
|
|
- 부모: [[Epistemology]]
|
|
- 변형: [[Auxiliary Hypothesis]]
|
|
- Adjacent: [[Confirmation Bias]] · [[Scientific Method]]
|
|
|
|
## 🤖 LLM 활용
|
|
**언제**: 매 prompt audit, 매 paper reviewer 의 ad-hoc rescue 의 detect, 매 debugging journal 의 retro.
|
|
**언제 X**: 매 LLM 의 ad-hoc judgment 의 alone trust — 매 human pre-reg + protocol 의 still required.
|
|
|
|
## ❌ 안티패턴
|
|
- **Save-the-theory-at-all-cost**: 매 auxiliary 의 stack — 매 epicycle pattern.
|
|
- **Selective failure exclusion**: 매 post-hoc 의 fail case 의 carve.
|
|
- **Magic-constant patching**: 매 root cause 의 X.
|
|
- **Promise-then-defer**: "we'll explain Q in future work" — 매 indefinite ad-hoc deferral.
|
|
- **Conspiracy-style rescue**: 매 every counter-evidence 의 "the establishment 의 suppress" 의 attribute.
|
|
|
|
## 🧪 검증 / 중복
|
|
- Verified (Popper *Logic of Scientific Discovery* 1934, *Conjectures and Refutations* 1963; Lakatos *Methodology of Scientific Research Programmes* 1978; Sober *Core Questions in Philosophy*).
|
|
- 신뢰도 A.
|
|
|
|
## 🕓 Changelog
|
|
| 날짜 | 변경 |
|
|
|---|---|
|
|
| 2026-05-08 | Phase 1 |
|
|
| 2026-05-10 | Manual cleanup — Popper/Lakatos + ML/agent modern parallel |
|