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(휴리스틱 전문가)엔 사람의 도메인 지식이 섞인다

관련 노트


태그

AI ReinforcementLearning Oracle GroundTruth UpperBound Evaluation Benchmark