English· Español· Deutsch· Nederlands· Français· 日本語· ქართული· 繁體中文· 简体中文· Português· Русский· العربية· हिन्दी· Italiano· 한국어· Polski· Svenska· Türkçe· Українська· Tiếng Việt· Bahasa Indonesia

un

게스트
1 / ?
수업 목록으로

질문이란 공간이다

모든 질문은 공간을 그린다

질문은 단순히 한 가지만 요구하지 않는다. 그것은 가능한 답의 공간을 열며, 모든 후보 답은 그 공간 어딘가의 점이다.

"먹을 곳을 고르시오"라는 질문은 거대한 공간을 연다: 지구상의 모든 레스토랑, 카페, 푸드트럭, 그리고 부엌. "도보 거리 내, 현재 영업 중, 15달러 이하의 채식 식당을 고르시오"라는 질문은 아주 작은 공간을 연다: 아마도 세 개의 점 정도.

의도는 같지만, 기하학적 차이는 극단적이다. 두 번째 질문은 실질적인 일을 했다: 누군가가 탐색을 시작하기 전에 공간을 축소했다.

이 전체 수업을 한 문장으로 요약하면: 좋은 질문은 답의 공간을 검색할 가치가 있는 영역으로 축소하는 질문이다. 모호한 질문은 거대한 공간을 남기고 느리고 방황하는 검색을 강요한다. 날카로운 질문은 한눈에 스캔할 수 있는 작은 공간을 제공한다.

우리는 공간 분할, 제약 조건으로 공간 자르기, 그리고 잘 선택된 예/아니오 질문으로 공간을 절반으로 줄이는 네 가지 기하학적 개념을 통해 이를 정밀하게 정의할 것이다.

넓은 것과 좁은 것

프로그램 디버깅을 위해 도움을 요청하는 두 가지 방식을 고려해 보자:

- Q1: "왜 내 코드가 작동하지 않나요?"

- Q2: "왜 이 루프는 리스트에 10개 항목이 있는데 9개만 출력하나요? (Python 3.12 환경에서)"

각 질문이 여는 답의 공간을 설명하고, 기하학적으로 Q2가 더 나은 질문인 이유를 설명하시오. Q2의 추가적인 세부 사항이 공간의 크기에 어떤 영향을 미쳤는가?

공간을 영역으로 나누기

큰 질문을 영역으로 나누기

공간이 직접 탐색하기에는 너무 클 때, 이를 분할(partition)합니다: 전체를 함께 덮되 서로 겹치지 않는 영역으로 나누는 것입니다. 하위 질문에 답한다는 것은 하나의 영역을 선택하고 나머지를 무시하는 것을 의미합니다.

질문이 "지난 분기에 매출이 왜 감소했는가?"라고 가정해 보겠습니다. 답변 공간은 거대합니다. 이를 분할해 보겠습니다: (a) 고객 수 감소, (b) 동일한 고객의 지출 감소, (c) 가격 또는 청구 변경, (d) 데이터 오류. 이 네 가지 영역은 공간을 덮고 서로 겹치지 않습니다. 각 영역는 독립적으로 해결할 수 있는 더 작은 질문입니다.

좋은 분할(partition)은 기하학에서 그대로 가져온 두 가지 성질을 가집니다: 영역들이 전체 공간을 포함(cover)한다(아무것도 놓이지 않음) & 서로 겹치지 않는다(disjoint, 이중 계산 없음). 공간의 일부가 빠지면 실제 답이 그 틈에 숨어 있을 수 있습니다. 영역이 겹치면 같은 영역을 두 번 검색하는 데 노력을 낭비하게 됩니다.

각 하위 질문은 당신을 하나의 영역으로 좁혀 줍니다. 이를 답하면, 해당 영역 밖의 모든 것을 버릴 수 있습니다: 검색 범위의 크고 저렴한 축소입니다.

깔끔한 분할

한 도시는 이렇게 묻습니다: "왜 응급 대응 시간이 길어지고 있는가?"

분석가는 이를 다음과 같이 나누는 것을 제안합니다: (a) 부대가 현장에 도착하는 데 걸리는 시간이 길어짐, (b) 출동 명령 후 부대가 도착하는 데 걸리는 시간이 길어짐, & (c) 부대가 작업을 완료하고 해제되는 데 걸리는 시간이 길어짐.

이것이 질문의 답 공간을 좋은 분할로 세는 이유를 설명하십시오. 영역들이 가져야 할 두 가지 기하학적 성질은 무엇이며, 하나의 하위 질문에 답하는 것이 검색을 어떻게 좁히나요?

각 요구사항은 공간을 자릅니다

반평면으로서의 제약

답변 공간을 평평한 평면으로, 그 위의 모든 점을 후보 답변으로 상상해 보세요. 제약은 요구사항이며, 각 요구사항은 평면에 선을 긋고 한쪽 면만 유지합니다. 기하학에서 그 유지된 면을 반평면이라고 합니다.

"15달러 이하"는 하나의 선이며, 저렴한 쪽을 유지합니다. "도보 거리 이내"는 두 번째 선이며, 가까운 쪽을 유지합니다. "지금 영업 중"은 세 번째 선입니다. 추가하는 각 요구사항은 또 다른 절단입니다.

모든 요구사항을 만족하는 답변은 모든 유지된 면의 교집합에 존재합니다. 충분히 많은 반평면을 교차시키면 작은 유한 영역이 됩니다: 올바른 답변 하나가 포함된 깔끔한 영역입니다.

제약 조건이 반평면으로 표현되고 유한한 실현 가능 영역을 형성하는 모습

두 가지 실패 모드

과소 제약 (절단이 너무 적음): 영역은 무한대로 남습니다. 무한대로 뻗어 나가므로, 무한히 많은 모호한 답이 모두 "적합"하게 됩니다. "좋은 아이디어를 줘"라는 요청은 무한대입니다. 아무것도 배제되지 않았기 때문에 노이즈(잡음)만 얻게 됩니다.

과잉 제약 (절단이 너무 많거나, 모순이 있음): 영역은 비어 있음이 됩니다. 반평면들이 공통된 점을 가지지 않으므로, 아무 답도 적합하지 않습니다. "짝수이면서 홀수인 숫자"는 공간을 아무것도 아닌 것으로 줄여버립니다.

잘 정의된 질문은 이 두 가지 사이에 위치합니다: 영역을 제한할 만큼 충분한 제약 조건이 있지만, 모순되어 영역을 비워버릴 만큼 많지는 않은 상태입니다.

유한, 무한, 비어 있음

매니저가 디자이너에게 "로고 하나"를 요청합니다. 나중에 "한 글자로 이루어진 로고, 단색, 16픽셀에서 잘 작동해야 하며, 또한 최소 4가지 색상을 사용해야 하는 로고"라고 요청합니다.

반평면 그림을 사용하여 각 요청에 대한 실현 가능 영역을 설명하십시오. 어느 것이 무한대이고 왜 그런지, 어느 것이 비어 있고 왜 그런지, 그리고 각 실패가 디자이너가 줄 수 있는 답에 어떤 의미를 갖는지 설명하십시오.

최고의 절단은 공간을 반으로 나눕니다

이진 탐색: 모든 예/아니오 질문은 공간을 절반으로 줄입니다

일부 질문은 예/아니오 형식입니다. 기하학적으로, 예/아니오 질문은 하나의 선을 그리고 답이 어느 쪽에 있는지를 알려줍니다: 이는 한 번의 동작으로 전체 영역을 버리게 합니다.

최고의 예/아니오 질문은 공간을 두 개의 동일한 절반으로 나누는 질문입니다. 왜냐하면 어떤 답을 받든 정확히 절반을 제거할 수 있기 때문입니다. "위쪽 절반에 있는가?"라고 계속 물으면 공간은 기하급수적으로 빠르게 수렴합니다.

이것은 이진 탐색입니다. N개의 후보에서 시작합니다. 좋은 질문 하나를 하면 N/2개가 남습니다. 두 번이면 N/4개, k번의 질문 후에는 N / 2^k개가 남습니다. 후보가 하나만 남으면 끝이므로, 2^k가 N 이상인 가장 작은 k가 필요합니다.

그 가장 작은 k는 log2(N)의 올림수입니다. 1,000개의 후보의 경우: 2^9 = 512 (부족함) & 2^10 = 1024 (충분함), 따라서 log2(1000)은 약 9.97이며 10개의 질문이 필요합니다. 10억 개의 후보라면? 10억의 log2는 약 30입니다. 절반으로 줄이는 것이 매우 강력하여 1,000개에서 10억개로 늘어나도 질문 수가 약 20개만 증가합니다.

질문하는 법의 교훈: 날카로운 예/아니오 질문은 남은 공간을 균등하게 나눌 때 가장 가치가 높습니다. 일부만 제외하는 불균형한 질문은 그 턴을 낭비합니다.

발견을 보장하기

당신은 추측 게임을 하고 있습니다. 누군가가 1에서 1000 사이의 정수를 고릅니다. 당신은 예/아니오 질문만 할 수 있으며, 최적의 방식으로 플레이합니다(각 질문이 남은 후보를 가능한 한 균등하게 나누도록).

최악의 경우, 그 숫자를 **확실히** 식별할 수 있는 최소한의 예/아니오 질문 수는 몇 개인가요? 최종 숫자를 명시하고, 그 뒤에 있는 절반으로 줄이기 / log2 추론을 설명하십시오.

답이 저렴할 때, 절단은 귀하다

질문이 곧 일이다

네 가지 요소를 하나로 합쳐 보겠습니다. 질문은 공간을 엽니다. 분해는 그 공간을 분할합니다. 제약 조건은 그 공간을 유한한 실현 가능 영역으로 잘라냅니다. 좋은 예/아니오 질문은 그 공간을 절반으로 줄입니다. 이 모든 것은 답을 찾기 전에 검색 범위를 축소하는 행위입니다.

역사의 대부분 동안 답을 얻는 것이 비싼 부분이었습니다. 전문가에게 비용을 지불하고, 실험을 수행하며, 아카이브를 뒤져야 했기 때문입니다. 그래서 우리는 답을 생산할 수 있는 사람들을 소중히 여겼습니다.

그 균형이 뒤집혔습니다. 자동화 시스템은 이제 거의 무료로 수천 개의 그럴듯한 답변을 생성합니다. 답변이 저렴하고 풍부할 때, 하나 더 만들어내는 것은 더 이상 성취가 아닙니다. 희소성이 남아 있는 것은 어떤 답변이 가치가 있는지를 아는 것입니다: 그리고 그것은 답변을 생성하는 기술이 아니라 질문을 던지는 기술입니다.

기하학적 관점에서: 기계는 공간 내의 어떤 지점이든 기꺼이 당신에게 건네줍니다. 당신이 추가하는 가치는 공간을 잘라서 좋은 답변이 반드시 존재해야 하는 하나의 영역으로 줄이는 제약 조건을 그리는 것입니다. 제약 조건이 부족하면 그럴듯한 노이즈에 잠겨버립니다(무한한 영역). 제약 조건이 과도하면 아무것도 돌아오지 않습니다(빈 영역). 영역을 정확히 적절한 크기로 제한하는 절단(제약)을 설정하는 것이 희소하고 인간적인 기술입니다.

따라서 레버리지(지렛대 효과)는 "답변을 얻는 것"이 아닙니다. 그것은 "어떤 지점이든 가치가 있을 만큼 답변 공간을 충분히 작게 만드는 제약 조건을 설정하는 것"입니다.

가치가 이동한 곳

애널리스트는 이제 거의 비용 없이 몇 분 만에 백 개의 초안 전략을 생성할 수 있습니다.

이 레슨의 탐색 공간 기하학을 사용하여, 왜 애널리스트의 가치가 답변 생성에서 벗어나 질문 프레임 설정으로 이동했는지 설명하십시오. 애널리스트는 실제로 답변 공간에 무엇을 하고 있으며, 왜 이를 과소 제약하거나 과대 제약하는 것이 실패하는 것입니까?

질문의 기하학: 요약

배운 내용

질문은 하나의 답변을 요구하는 것이 아닙니다. 질문은 가능한 답변들의 공간이며, 질문하는 기술은 그 공간을 축소하는 기술입니다:

- 검색 공간: 모든 질문은 후보 답변의 집합을 엽니다. 날카로운 질문은 작은 집합을 엽니다. 반면, 모호한 질문은 방황해야 하는 거대한 집합을 엽니다.

- 분해로서의 분할: 큰 공간을 겹치지 않고 완전히 덮는 영역으로 나눕니다. 각 하위 질문은 사용자를 하나의 영역으로 좁혀 줍니다.

- 제약 조건으로서의 경계: 각 요구 사항은 반평면(half-plane)입니다. 답변은 이 반평면들의 교집합 안에 존재합니다. 자름이 너무 적으면 무한한 영역(무한히 모호한 답변)이 남고, 모순된 자름은 빈 영역(아무것도 적합하지 않음)을 남깁니다.

- 절반으로 좁히기: 잘 선택된 예/아니오 질문은 공간을 둘로 나눕니다. 1에서 1000 사이의 숫자를 특정짓는 데는 ceil(log2(1000)) = 10개의 질문이 필요하며, 10억은 약 30개만 필요합니다.

그리고 그 보상은 이렇습니다: 자동화 시스템이 답변을 저렴하게 만들 때, 희소한 기술은 답변을 생성하는 것이 아니라 공간을 가질 가치가 있는 하나의 영역으로 줄이는 제약 조건을 설정하는 것입니다. 그러한 절단선을 그리는 법을 배우면, 방대하고 방황하는 탐색을 짧은 탐색으로 바꿀 수 있습니다.