Oracle
Summary
**Oracle(오라클)**은 원래는 하기 어려운 일을, 실험을 위해 마법처럼 완벽하게 대신 해주는 “치트키” 같은 도우미다. 이름은 그리스 신화의 “신탁(神託) — 뭐든 물어보면 진실을 알려주는 예언자”에서 왔다. AI·강화학습·논문 실험에서 oracle은 보통 (1) 정답/참값을 공짜로 알려주거나, (2) 어떤 동작을 100% 성공시켜주는 이상적인 부품을 가리킨다.
한 문장으로 이해하기
Oracle은 “이건 원래 어려운데, 지금은 완벽하다고 치자”라고 연구자가 켜놓는 치트키다.
시험으로 비유하면 정답지를 그대로 받는 것과 같다. 찍거나 고민할 필요 없이 답이 주어진다.
왜 일부러 치트키를 쓸까? (가장 중요한 포인트)
연구자들은 “뭐가 진짜 어려운지”를 알아내려고 일부러 oracle을 켠다.
게임을 자꾸 지는데 이유가 둘 중 뭔지 모른다고 하자.
- ① 내 **손동작(컨트롤)**이 서툴러서?
- ② 아니면 작전 자체가 틀려서?
이때 **“절대 안 죽는 치트키”**를 켜고 다시 해본다. 그래도 못 깨면 → 손이 아니라 작전이 문제다. 쉽게 깨면 → 작전은 맞았고 손이 문제였다.
이렇게 한쪽을 완벽(oracle)하게 만들어 놓고 나머지만 시험하는 것이 oracle을 쓰는 진짜 이유다. 그래서 oracle 결과는 대부분 두 가지 중 하나를 뜻한다.
| oracle을 쓰는 목적 | 읽는 법 |
|---|---|
| 상한선(upper bound) 만들기 | ”이보다 더 잘할 수는 없다”는 최고 기록. 실제 모델이 여기서 얼마나 떨어지는지 잼. |
| 변인 통제(isolation) | “이 부분은 지금 시험 안 할게”라고 빼놓기. 나머지 능력만 순수하게 측정. |
주로 쓰이는 맥락
1. Oracle skill — 완벽하게 실행되는 동작
로봇이 “컵 집어” 하면 절대 안 놓치고 100% 성공하는 마법 손. 실제로 학습된 손(learned skill)은 실패하지만, oracle skill은 실패가 없다.
예: PARTNR에서 oracle skill → learned skill로 바꾸자 성공률 0.73 → 0.57로 하락. “손이 서툴러서 생기는 손해”를 이렇게 측정한다.
2. Privileged / oracle 정보 — 정답 상태를 그냥 알려줌
눈으로 안 봐도 “컵이 어디 있는지 참값을 바로 알려주는” 것. 시뮬레이터가 세상의 정답 상태를 직접 넘겨준다. 반대는 카메라로 직접 봐야 하는 비특권(non-privileged) 지각.
예: PARTNR에서 특권 지각 → 비특권 지각(ConceptGraphs)으로 바꾸자 0.57 → 0.30 폭락. “눈이 문제”임을 드러냄.
3. 강화학습(RL)에서의 oracle
RL에서도 뜻은 똑같이 “완벽한 도우미”인데, 무엇을 완벽하게 해주느냐가 다르다.
| RL 용어 | 무엇을 완벽하게 해주나 | 비유 |
|---|---|---|
| oracle policy(오라클 정책) | 어떤 상황에서든 최적의 정답 행동을 아는 고수 | 옆에서 정답 수를 알려주는 스승 (모방학습에서 자주 등장) |
| reward oracle(보상 오라클) | 지금 행동이 잘했는지 틀리지 않고 채점 | 완벽한 심판 |
| oracle access(오라클 접근) | 궁금한 걸 물으면 참값을 즉시 답해줌 | 뭐든 물어보는 상담 창구 |
공통점: 현실에선 공짜로 못 얻는 완벽한 정보·행동을, 실험에서는 있다고 치고 빌려 쓴다.
4. 컴퓨터과학 일반
- test oracle(소프트웨어 테스트): 프로그램 출력이 맞는지 정답을 판정해주는 기준.
- oracle machine(계산 복잡도 이론): 특정 문제를 한 번에 풀어주는 가상의 블랙박스를 붙인 기계. “이 문제가 공짜로 풀린다면 나머지는 얼마나 어려운가?”를 따질 때 씀.
Oracle ↔ Inductive Bias, 헷갈리지 말 것 ⚠️
둘 다 “데이터 밖에서 뭔가를 더 넣어준다”는 점이 비슷해 보여서 자주 엮인다. 하지만 넣어주는 게 뭐냐가 정반대다.
| 무엇을 넣나 | 성격 | 비유 | |
|---|---|---|---|
| oracle | 실제 정답(참값) 그 자체 | 틀릴 일 없는 진실 | 정답지를 그대로 받음 |
| Inductive Bias | ”세상은 대략 이럴 것이다”라는 가정 | 틀릴 수도 있는 추측 | ”이 유형은 보통 3번” 같은 찍기 요령 |
정답지(oracle)를 손에 쥐면 찍기 요령(inductive bias)은 필요가 없어진다. 그래서 oracle은 inductive bias를 반영한 것이 아니라, 오히려 안 써도 되게 만드는 존재에 가깝다.
딱 한 경우엔 사람의 가정이 섞인다
oracle이 시뮬레이터가 주는 참값이 아니라 사람이 손으로 짠 “완벽한 척하는” 규칙일 때(예: PARTNR의 Heuristic Expert), 거기엔 사람의 사전지식·가정이 들어간다. 다만 이건 학습 알고리즘의 일반화 편향인 inductive bias라기보다 **“사람이 주입한 도메인 지식(domain knowledge)“**이라 부르는 게 정확하다.
문서에서 oracle을 만나면 이렇게 읽어라
“아, 여기는 원래 어려운 부분인데 연구자가 일부러 완벽하게 만들어놓고(치트키 켜고) 실험했구나.
그럼 이건 **‘잘하면 이 정도까지 가능하다’는 최고 기록(상한선)**이거나,
‘이 부분은 지금 시험 안 할게’라고 빼놓은 부분이겠구나.”
거의 항상 이 둘 중 하나다.
핵심 요약
| 질문 | 답 |
|---|---|
| Oracle이란? | 원래 어려운 일을 실험을 위해 완벽하게 대신 해주는 이상적 도우미(치트키) |
| 왜 쓰나? | 상한선(최고 기록)을 세우거나, 특정 부분을 빼서 나머지만 순수하게 측정하려고 |
| 대표 형태 | oracle skill(완벽 실행), privileged/oracle 정보(참값 제공), oracle policy·reward oracle(RL) |
| Inductive bias와 관계? | 오히려 반대. oracle은 정답을 주고, inductive bias는 정답을 모를 때 쓰는 가정 |
| 예외 | 사람이 손으로 짠 oracle(휴리스틱 전문가)엔 사람의 도메인 지식이 섞인다 |
관련 노트
- Inductive Bias — oracle과 대비되는 개념(정답 vs 가정)
- PARTNR - A Benchmark for Planning and Reasoning in Embodied Multi-agent Tasks — oracle skill·특권 지각을 껐다 켜며 병목을 찾은 사례
- Watch-And-Help - A Challenge for Social Perception and Human-AI Collaboration — Oracle 계열 베이스라인(OracleB, OracleA,B)을 상한선으로 사용
- Activation Oracles - Training and Evaluating LLMs as General-Purpose Activation Explainers — “oracle”을 다른 의미(완벽한 설명자)로 쓴 예
태그
AI ReinforcementLearning Oracle GroundTruth UpperBound Evaluation Benchmark