같은 지점을 수백 번 지나간다는 것
이 프로젝트의 유일한 무기
지금까지 여러 편에서 우리 방식의 약점을 나열했다. 센서가 조악하고, 서스펜션이 정보를 지우고, 도심 주행이 지저분하고, 차마다 조건이 다르다.
그 모든 약점에 대한 답이 하나였다. 반복.
이 편에서 그 반복이 실제로 무엇을 해주는지, 그리고 무엇은 해주지 못하는지 정리한다. 이게 이 프로젝트의 성립 근거이므로, 과장하지 않고 정확히 볼 필요가 있다.
평균이 오차를 줄이는 원리
측정을 여러 번 해서 평균하면 오차가 줄어든다는 것은 잘 알려진 사실이다.
원리는 이렇다. 측정값은 참값 + 오차로 되어 있다. 참값은 매번 같고, 오차는 매번 다르다. 그리고 오차가 위아래로 고르게 흩어져 있다면, 여러 번 더해서 나누면 오차 부분이 서로 상쇄된다.
얼마나 줄어드는가. 측정 횟수의 제곱근에 반비례한다.
- 4번 측정 → 오차 절반
- 100번 측정 → 오차 10분의 1
- 10,000번 측정 → 오차 100분의 1
이 관계가 우리에게 유리한 이유는, 측정 횟수를 늘리는 비용이 거의 0이기 때문이다. 전용 장비로 100번 측정하려면 100번 나가야 한다. 우리는 그냥 기다리면 된다. 사람들이 매일 지나가니까.
“오차 10분의 1”을 공짜로 얻는다. 조악한 센서의 약점을 상당 부분 메운다.
그런데 조건이 있다
여기서 반드시 짚어야 할 것이 있다. 위 원리는 오차가 위아래로 고르게 흩어져 있을 때만 성립한다.
만약 오차가 한쪽으로 치우쳐 있다면 — 예를 들어 모든 측정이 실제보다 높게 나온다면 — 평균해도 그 치우침은 남는다. 100번 측정해도 없어지지 않는다.
이걸 계통 오차라 부른다. 그리고 우리 문제에는 계통 오차가 많다.
차량 지문. 같은 차로 계속 측정하면 그 차의 특성이 모든 측정에 같은 방향으로 실린다. 평균해도 남는다.
거치 방식. 항상 같은 거치대를 쓰면 마찬가지다.
엔진과 타이어. 특정 대역에 항상 같은 성분을 더한다.
11편에서 본 사람의 편향. 특정 차종을 타는 사람들이 전반적으로 더 많이 느끼는 것.
그래서 19편의 정규화가 반드시 앞에 와야 한다. 정규화가 계통 오차를 걷어내고, 그 다음에 평균이 무작위 오차를 줄인다. 순서가 바뀌면 안 되고, 정규화를 생략하면 반복이 소용없다.
| 무작위 오차 | 계통 오차 | |
|---|---|---|
| 예 | 센서 잡음, 그날 노면 습도 | 차량 특성, 거치 방식 |
| 반복으로 줄어드나 | 줄어든다 | 안 줄어든다 |
| 대응 | 반복 (20편) | 정규화 (19편) |
다양성이 정규화를 돕는다
여기서 흥미로운 상호작용이 있다.
한 사람이 같은 차로 100번 지나가는 것과, 100명이 각자 다른 차로 한 번씩 지나가는 것. 측정 횟수는 같지만 성격이 다르다.
한 사람 100번 — 무작위 오차는 잘 줄어든다. 그러나 그 사람의 차량 지문은 그대로 남는다.
100명 1번씩 — 각자의 차량 지문이 서로 다르므로, 그것들도 무작위 오차처럼 상쇄된다.
즉 참여자가 다양할수록 정규화가 덜 필요해진다. 다양성 자체가 계통 오차를 무작위화한다.
이건 19편 마지막에서 말한 것과 같은 이야기다. 조건의 다양성이 장애물이 아니라 자원이 된다.
그래서 우리 목표는 한 사람이 많이 쓰게 하는 것보다 여러 사람이 조금씩 쓰게 하는 것이 된다. 이건 서비스 설계에 영향을 준다.
무엇은 반복으로도 안 되나
정직하게 한계를 정리하자.
① 서스펜션이 완전히 지운 정보. 17편에서 말한 대로, 시스템이 0에 가까운 대역의 정보는 원리적으로 복원할 수 없다. 100번이든 10,000번이든 없는 것은 없다.
② 구조적으로 배제된 구간. 18편의 문제. 항상 정체되는 구간, 항상 회전하는 교차로는 데이터가 안 쌓인다. 반복이 일어나지 않는다.
③ 통행량이 적은 도로. 이면도로, 골목. 하루 몇 대만 지나면 반복의 이점이 없다.
④ 위험이 짧게 머무는 경우. 5편에서 “위험이 오래 머물수록 유리하다”고 했다. 반대로 공동이 빠르게 자라 며칠 만에 붕괴하면, 그 사이에 충분한 반복이 쌓이지 않는다.
⑤ 무엇을 찾을지 모르는 문제. 이게 가장 근본적이다. 반복은 신호 대 잡음 비를 개선하지만, 어떤 특징을 봐야 하는지는 알려주지 않는다.
다섯 번째 한계로 3부가 끝난다
마지막 항목을 조금 더 이야기하고 3부를 마무리하자.
3부에서 우리는 신호를 다루는 도구들을 갖췄다. 성분으로 나누고(16편), 시스템 지문을 걷어내고(17편), 오염된 구간을 걸러내고(18편), 조건을 정규화하고(19편), 반복으로 정밀도를 높인다(20편).
이 도구들로 만들 수 있는 것은 각 구간에 대한 깨끗한 특징값들이다. 이 구간의 스펙트럼은 이렇게 생겼고, 어느 대역이 크고, 봉우리가 어디에 있고.
그런데 그 숫자들을 보고 “위험하다”고 말할 근거가 아직 없다.
16편에서 세 가지 후보를 이야기했다. 특정 대역의 크기 변화, 봉우리 위치의 이동, 봉우리의 뾰족함. 그중 무엇이 실제로 공동과 관련되는지, 그 변화가 얼마나 커야 의미가 있는지 — 우리는 모른다.
이론으로 짐작할 수는 있다. 하지만 실제 도로에서, 실제 차량으로, 실제 도심 주행 조건에서 그 짐작이 맞는지는 데이터로 확인해야 한다.
그리고 확인하려면 정답이 붙은 데이터가 필요하다. 2부에서 만든 그것 — 사람의 판단이 이름표로 붙은 신호 기록.
4부는 그 이름표를 가지고 기계에게 배우게 하는 이야기다. 사람이 “물컹하다”고 느낀 그 순간, 신호에는 무엇이 있었는가.
다음 편 예고 — 미약한 신호를 건져 올리는 법. 3부의 마지막. 잡음보다 작은 신호를 다루는 기법들과, 그 한계를 정리한다.
「우리 동네가 먼저 안다」는 5부 30편으로 이어집니다. 지금 읽은 글은 3부 신호 읽기의 7번째(전체 제20회)입니다.