
AI가 존재하지 않는 홍수를 보았다 — 그리고 그 대가는 수십만 달러였다
동남아시아의 어느 고속도로를 찍은 위성 이미지를 응시하고 있을 때, 나는 AI가 무언가를 자신만만하게, 그러나 파국적으로 잘못 판단하는 것을 지켜볼 때 밀려오는 특유의 공포를 처음으로 느꼈다.
그 이미지에는 아스팔트 위로 넓게 퍼진 어둡고 불규칙한 형체가 있었다 — 적어도 모델이 보기에는 틀림없는 물이었다. 시스템은 이를 홍수로 표시했다. 자동 경로 재설정이 작동했다. 트럭 쉰 대가 우회 도로로 방향을 틀었고, 각각의 이동 거리에 100킬로미터가 넘게 더해졌다. 배송 시간대가 무너졌다. 부패하기 쉬운 화물이 상하기 시작했다. 누군가 확인해 볼 생각을 하기도 전에 금전적 피해는 6자리 숫자를 넘어섰다.
그 도로는 바싹 말라 있었다.
모델이 본 것 — 그것이 보았다고 확신했던 것 — 그것은 구름 그림자였다. 2,000미터 상공을 떠다니던 적운이 지면에 드리운 어두운 얼룩이었고, 단일 위성 프레임을 처리하는 AI에게는 그것이 고인 물과 똑같아 보였다. 이것이 바로 내가 지금 단일 프레임 추론(Single-Frame Inference) 실패라고 부르는 현상이다: 얼어붙은 한순간에 갇혀 그 전후에 무슨 일이 있었는지 아무 기억도 없는 AI가 존재하지 않는 현실을 환각하는 순간 말이다. 그리고 이것은 드문 예외적 사례가 아니다. 오늘날 홍수 탐지를 위해 배치된 거의 모든 컴퓨터 비전 시스템의 결정적 취약점이다.
그 사건은 VeriPrajna의 우리 팀이 존재하는 이유가 되었다. 사전 학습된 모델에 또 하나의 래퍼를 씌우기 위해서가 아니다. 자신이 무엇을 보고 있는지 실제로 이해하는 무언가를 만들기 위해서다.
AI는 왜 그림자를 물과 혼동하는가?
그 답은 물리학에 있으며, 일단 알고 나면 민망할 만큼 단순하다.
광학 위성 — Sentinel-2, Landsat, 그리고 대부분의 홍수 탐지 시스템이 의존하는 위성들 — 은 여러 파장에 걸쳐 반사된 햇빛을 포착한다. 물은 근적외선과 단파적외선 복사를 강하게 흡수한다. 그래서 위성 영상에서 물은 어둡게 나타난다.
하지만 어둠이 물의 전유물은 아니다. 구름 그림자도 어둡다. 가파른 산비탈이 만드는 지형 그림자도 어둡다. 갓 포장한 아스팔트도 어둡다. 그리고 정지 이미지로 학습된 합성곱 신경망에게는 '가장자리가 부드러운 어둡고 형체 없는 덩어리'가 홍수의 특징이다. 모델은 왜 픽셀이 어두운지 모른다. 모델이 아는 것은 오직 그것들이 어둡다는 것뿐이다.
상황을 더 나쁘게 만드는 것은 이렇다: 재난 대응 시나리오에서 이러한 모델들은 의도적으로 방아쇠에 예민하도록 조정된다. 손실 함수는 놓친 홍수를 오경보보다 훨씬 더 무겁게 처벌한다. 그래서 모델은 패닉 쪽으로 치우쳐 오류를 범한다. 모든 그림자가 잠재적 재앙이 된다.
구름 그림자는 바람의 속도로 움직인다. 홍수는 중력과 지형을 따른다. 하지만 단일 프레임 모델은 그 차이를 구별하지 못하는데, 둘 중 어느 것이 움직이는 것도 본 적이 없기 때문이다.
연구는 이것이 이론에 그치지 않음을 확인해 준다. 구름 그림자는 광학 위성 영상을 이용한 자동 준실시간 홍수 탐지의 '가장 큰 난제'로 기록되어 있다. 고해상도 데이터셋에서 그림자는 흔히 분리된 특징으로 — 그것을 드리운 구름과 떨어져 — 나타나며, 특히 구름 고도를 알 수 없을 때 기하학적 보정 방법을 신뢰할 수 없게 만든다.
우리가 우리 모델을 무너뜨린 밤
한 가지 솔직하게 말하고 싶다. VeriPrajna에서 홍수 탐지를 처음 구축하기 시작했을 때, 우리는 모두가 저지르는 것과 똑같은 실수를 저질렀다. 우리는 견고한 세그멘테이션 아키텍처를 가져와 라벨링된 홍수 영상으로 미세 조정했고, 검증 세트에서 훌륭해 보이는 수치를 얻었다. 정밀도 90퍼센트 이상. 우리는 몹시 기뻤다.
그런 다음 우리는 그것을 인도의 몬순 취약 지역 상공의 실시간 Sentinel-2 피드에 배치했다.
첫 주에 그것은 홍수 열한 건을 표시했다. 세 건은 진짜였다. 나머지는 그림자, 관개 이후의 어두운 농경지, 그리고 새로 포장한 도로 한 구간이었다. 수석 엔지니어가 자정에 좌절한 채로 내게 전화해, 모델이 '수맥 막대처럼 온 사방에서 물을 보고 있다'고 말했다.
우리는 이후 이틀 동안 모든 오탐을 일일이 검토했다. 그리고 우리는 같은 깨달음으로 계속 되돌아왔다: 모델에게는 시간이라는 개념이 전혀 없었다. 모델은 각 프레임을 낯선 사람의 카메라 롤에서 꺼낸 한 장의 사진처럼 바라보고 있었다 — 맥락도, 이전도, 이후도 없이. 같은 어두운 얼룩을 마주한 인간 분석가라면 본능적으로 이전 이미지로 전환해 볼 것이다. 그들은 그 어두운 형체가 시속 50킬로미터로 동쪽으로 흘러가는 것을 지켜보며 이렇게 생각할 것이다, 저건 홍수가 아니라 구름 그림자군. 우리 모델은 그렇게 할 수 없었다. 기억이 없었기 때문이다.
그것이 전환점이었다. 우리는 더 나은 단일 프레임 분류기를 만들려는 시도를 멈추고, 근본적으로 다른 무언가를 설계하기 시작했다: 시간을 성가신 변수가 아니라 현실의 한 차원으로 다루는 시스템을.
나는 이 아키텍처적 전환에 대해 우리 연구의 인터랙티브 버전에서 심층적으로 다뤘다.
AI에게 기억을 주면 어떤 일이 벌어지는가?

인간 분석가는 기다림으로써 의심되는 홍수를 검증한다. 그들은 다음 이미지를 확인한다. 되감아 본다. 구름 그림자는 몇 분 만에 형태를 바꾸고 사라진다. 홍수는 몇 시간에서 며칠 동안 지속되며, 중력과 지형 저항에 따라 천천히 퍼진다.
시간적 일관성은 단일 프레임 추론이 내버리는 실측 진리(ground truth)다.
VeriPrajna에서 우리의 입력은 이미지가 아니다. 그것은 시계열 데이터의 텐서 — 모델이 픽셀의 변화를 지켜보는 프레임의 연속 — 이다. 우리는 합성곱 커널이 시간 차원을 갖는 3D 합성곱 신경망을 사용한다. 커널은 높이와 너비를 가로질러 미끄러지는 대신 높이, 너비, 그리고 시간을 가로질러 미끄러진다.
그 효과는 지대하다. 밝았다가 어두워졌다가 다시 밝아지는 픽셀은 일시적 이상 — 지나가는 그림자 — 으로 표시된다. 식생에서 물로 바뀐 뒤 프레임이 거듭되어도 계속 물로 남아 있는 픽셀은 홍수로 분류된다. 시간적 기울기는 단일 프레임이 결코 담아낼 수 없는 이야기를 들려준다.
더 장기적인 패턴 — 몇 분이 아니라 며칠에 걸쳐 전개되는 홍수 — 에 대해서는 합성곱 LSTM 네트워크를 추가로 쌓는다. 이 네트워크는 (모든 것을 1차원 벡터로 평탄화하는 일반 LSTM과 달리) 영상의 공간 구조를 보존하면서 홍수 상태의 '기억'을 유지한다. 망각 게이트는 일시적 잡음을 버린다. 입력 게이트는 지속적인 변화를 받아들인다. 모델은 그저 '홍수가 나고 있다'고만 말하지 않는다. '여기가 두 시간 뒤에 침수될 것'이라고 예측해 물류 운영자에게 진정한 선행 시간을 제공할 수 있다.
시간적 깊이를 더하자, 그림자 오분류에 대한 우리의 오탐률은 85퍼센트 떨어졌다. 더 나은 분류기를 만들었기 때문이 아니라 — 잘못된 질문을 던지기를 멈췄기 때문이다.
우리는 또한 시공간 그래프 합성곱 네트워크를 사용해 도로망을 따라 홍수가 전파되는 과정을 모델링한다. 도로는 픽셀 격자가 아니라 서로 연결된 그래프다. 상류 노드가 침수되면, 네트워크는 고도 기울기와 배수 용량에 근거해 — 물이 위성 영상에 나타나기도 전에 — 하류 노드의 홍수 확률을 높이도록 학습한다. 이 덕분에 우리는 하천 수위계 측정값, 교통 속도 데이터, 기상 예보를 시각적 추론 파이프라인에 직접 통합할 수 있다.
구름을 꿰뚫어 보는 레이더
홍수 탐지의 잔인한 아이러니는 이렇다: 홍수는 폭풍과 함께 오고, 폭풍은 구름과 함께 온다. 홍수를 일으키는 바로 그 조건이 광학 위성의 눈을 멀게 하는 조건이다.
바로 여기서 센서 융합은 타협 불가능한 것이 된다. 합성 개구 레이더 — SAR — 는 능동 센서다. 그것은 자체 마이크로파 펄스를 방출하고 그 반향을 듣는다. 마이크로파는 구름, 비, 연기를 통과한다. 밤낮으로 작동한다. 그리고 결정적으로, 마이크로파는 광학 빛과는 다른 방식으로 물과 상호작용한다.
구름 그림자는 레이더에 보이지 않는다. 레이더는 자체 조명을 제공한다 — 태양이 무엇을 하든 상관하지 않는다. 그래서 광학 센서가 어둠을 보고 레이더가 후방산란이 높은 거칠고 마른 표면을 볼 때, 답은 분명하다: 그림자다. 두 센서가 모두 후방산란이 낮은 매끄럽고 거울 같은 표면에 동의할 때, 답은 마찬가지로 분명하다: 물이다.
원리는 단순하다. 실행은 잔혹할 만큼 복잡하다.
왜 그냥 두 센서를 평균 내면 안 되는가?

이것은 내가 가장 자주 받는 질문이며, 그 답은 대부분의 '융합' 접근법이 왜 겉치레에 불과한지를 드러낸다.
광학 밴드와 SAR 밴드를 하나의 입력 텐서에 쌓아 놓고 네트워크가 알아서 해결하기를 바랄 수는 없다. 통계적 분포가 근본적으로 다르기 때문이다 — RGB 픽셀 값 대 데시벨 후방산란 측정값. 별개의 모델들을 학습시켜 그 확률 지도를 평균 낼 수도 없는데, 그렇게 하면 진정한 모호성 해소가 일어나는 특징 수준의 상호작용을 놓치기 때문이다.
우리가 대신 구축한 것은 교차 모달 어텐션 메커니즘이다. 광학 인코더와 SAR 인코더는 병렬 스트림을 통해 독립적으로 특징을 추출한다. 그런 다음 여러 스케일에서 교차 어텐션 블록이 각 모달리티가 서로에게 '주의를 기울이도록' 한다. 모델은 픽셀 단위로 지금 어느 센서가 더 신뢰할 만한지를 계산한다.
광학 특징이 구름 잡음의 통계적 지문 — 높은 분산, 낮은 분광 상관 — 을 나타내면, 어텐션 게이트는 가중치를 레이더 신호 쪽으로 옮긴다. SAR가 건물에서 발생하는 이중 반사 아티팩트로 고전하는 도시 환경에서는, 게이트가 다시 광학 데이터 쪽으로 방향을 튼다. 이것은 평균 내기가 아니다. 동적 소스 선택이다.
이 AI는 데이터를 융합하지 않는다. 모든 프레임의 모든 픽셀마다, 어느 센서를 믿을지 능동적으로 선택한다.
우리가 해결해야 했던 실질적 문제가 하나 있다: Sentinel-1과 Sentinel-2는 같은 지점 위를 같은 시각에 지나가지 않는다. 폭풍 중에 홍수가 발생해 SAR 데이터만 확보되는 경우, 우리는 생성적 적대 신경망을 사용해 레이더 반사를 바탕으로 광학 영상이 어떻게 보일지를 합성한다. 이것은 데이터를 조작하는 것이 아니다 — 원시 레이더 영상은 판독하기가 악명 높게 직관적이지 않기에, 인간 분석가에게 해석 가능한 참조 프레임을 제공하려는 것이다.
우리 융합 아키텍처와 학습 방법론에 대한 완전한 기술적 설명은 우리 연구 논문을 참고하라.
우리 팀을 거의 갈라놓을 뻔한 논쟁
초기에, 우리 팀이 진심으로 둘로 나뉜 한 주가 있었다. 절반은 순수하게 시간적 모델링에만 집중하기를 원했다 — 시간에 걸쳐 충분한 프레임이 있으면 광학 데이터만으로도 그림자와 물을 구별할 수 있다는 주장이었다. 나머지 절반은 연속된 다섯 개의 흐린 프레임이 있을 때 시간적 데이터는 쓸모없다고 주장했다 — 그리고 그것은 바로 당신이 가장 탐지해야 할 홍수가 발생하는 동안 일어나는 일이다.
논쟁이 뜨거워졌다. 한 엔지니어가 방글라데시 상공의 몬순 시즌 영상을 띄워, Sentinel-2가 열두 날 내내 구름 꼭대기 말고는 아무것도 포착하지 못한 장면을 보여주었다. '당신의 시간적 모델은 구름이 변해 가는 것을 지켜보고 있어요,'라고 그녀가 말했다. '지면에서 무슨 일이 벌어지는지는 전혀 몰라요.'
그녀가 옳았다. 그리고 시간 진영도 옳았다 — 지면을 볼 수 있을 때, 시간은 활용할 수 있는 가장 강력한 판별 요소다.
그 해결책은 타협이 아니었다. 그것은 두 접근법이 단독으로는 불완전하지만 함께라면 판도를 바꾼다는 깨달음이었다. 시공간 모델링은 광학 가시성이 간헐적인 경우를 처리한다. SAR 융합은 광학이 완전히 차단된 경우를 처리한다. 그리고 교차 어텐션 메커니즘은 어떤 증거의 조합을 신뢰할지를 동적으로 학습한다.
우리는 이 통합 파이프라인을 Chronos-Fusion이라고 명명했다. 이 파이프라인은 Sentinel-1 SAR와 Sentinel-2 광학 데이터를 이중 스트림 인코더로 처리하고, 여러 스케일에서 교차 어텐션으로 융합하며, 3D 역합성곱 네트워크로 디코딩하고, 물이 몇 초 만에 나타났다 사라지거나 45도 경사면에 고이는 것과 같은 물리적으로 불가능한 예측에 페널티를 부과하는 손실 함수를 통해 시간적 일관성을 강제한다.
우리의 내부 벤치마크가 이를 잘 보여준다:
- 정적 광학 전용 베이스라인: 약 0.65 mIoU (평균 Intersection over Union)
- 정적 SAR 전용 베이스라인: 약 0.70 mIoU
- Chronos-Fusion 시공간 모델: >0.91 mIoU
- 시간적 일관성: 96% 추세 안정성 — 깜빡임 없음, 유령 홍수 없음
'그냥 파운데이션 모델을 쓰라'는 부류에 대해서는?
나는 이 말을 끊임없이 듣는다. 작년에 한 투자자가 완전히 진지하게 내게 말했다, 'SAM을 홍수 이미지 몇 장으로 미세 조정해서 출시하면 되지 않나요?' SAM — Segment Anything Model — 은 인상적인 기술이다. 하지만 그것은 범용 세그멘테이션 엔진이다. 물이 근적외선 복사를 흡수한다는 것을 이해하지 못한다. 표면이 거울처럼 반사될 때 레이더 후방산란이 감소한다는 것을 알지 못한다. 그림자는 바람을 따라 움직이는 반면 홍수는 중력을 따른다는 것을 결코 학습한 적이 없다.
이러한 래퍼 접근법 — 사전 학습된 모델을 가져와 소규모 라벨링 데이터셋으로 미세 조정한 뒤 배포하는 방식 — 은 인상적인 데모를 만들어낸다. 정제된 검증 세트에서는 높은 점수를 낸다. 그리고 실제 환경에서는 실패하는데, 현실 세계는 깨끗한 데이터셋과는 다른 방식으로 적대적이기 때문이다.
사전 학습된 모델은 관개 이후 펀자브의 어두운 논밭이 얕은 홍수와 분광학적으로 동일하게 보인다는 것을 알지 못한다. 케랄라의 몬순 구름이 몇 주 동안 지속되어 사건 전체 기간 내내 광학 전용 탐지를 무용지물로 만든다는 것을 알지 못한다. 뭄바이의 도시 SAR 영상이 건물로 인해 물의 특징을 흉내 내는 이중 반사 아티팩트를 만들어낸다는 것을 알지 못한다.
래퍼 AI는 상류 전처리의 모든 실패를 그대로 물려받는다. 구름 마스크가 그림자를 놓치면, 세그멘테이션 모델은 그것을 자신만만하게 홍수로 라벨링한다. 쓰레기가 들어가면, 자신만만한 쓰레기가 나온다.
래퍼 AI와 우리가 만드는 것 사이의 구별은 탁상공론이 아니다. 그것은 데모에서 작동하는 시스템과 몬순이 닥쳤을 때 작동하는 시스템의 차이다.
진짜 비용은 우회한 트럭이 아니다
내가 이 글을 물류 사례로 시작한 것은 금전적 피해가 실체적이고 즉각적이기 때문이다. 하지만 더 깊은 비용은 신뢰다.
홍수 탐지 시스템의 오경보율이 높으면, 인간 운영자는 그것을 더 이상 믿지 않게 된다. 그들은 모든 경보를 수동으로 확인하기 시작하고, AI가 없애기로 했던 지연을 다시 끌어들인다. 긴급 대응 요원들은 연구자들이 말하는 '경보 피로(alert fatigue)' — 즉 지난 다섯 번이 그림자였던 탓에 정당한 경고마저 지연되거나 무시되는 '늑대가 나타났다' 식의 역학 — 을 겪게 된다.
재난 대응에서 이것은 인명으로 측정된다. 수색구조팀을 마른 곳 — 구름 그림자 — 으로 파견하면 실제 홍수 피해자들은 기다리게 된다. 연구에 따르면 구호 물자 배분의 '라스트 마일'을 최적화하는 것이 결정적으로 중요하며, 거짓 수요 신호는 작전 전체의 편익-비용 비율을 떨어뜨린다.
위성 데이터에 근거해 보험금이 자동으로 지급되는 파라메트릭 보험('자산 X의 반경 500미터 이내에서 홍수 감지')에서는 정확성이 곧 법적 통화다. 오탐(거짓 양성)은 부당한 보험금 지급을 촉발한다. 미탐(거짓 음성)은 정당한 청구를 거부한다. 우리 시스템은 홍수 라벨뿐 아니라 시공간적 증거 사슬을 기록한다: 물이 여섯 시간 동안 지속되었고, 레이더 후방산란이 표면 거칠기 변화를 확인했으며, 시간적 분석이 그림자 가능성을 배제했다는 것을. 그것은 확률 점수가 아니라 포렌식 감사 추적이다.
볼 수 없는 물리학을 이해하도록 AI를 어떻게 학습시키는가?
사람들이 내게 이것을 묻는데, 정직한 답은 이렇다: 물리학을 직접 학습시키지는 않는다. 방대한 시계열 위성 데이터 아카이브로 학습시키는데, 그 안에는 물리학이 암묵적으로 담겨 있다.
우리는 라벨이 없는 영상에 자기지도 학습을 사용한다. 모델은 마지막 프레임이 가려진 프레임 연속을 보고, 다음에 무엇이 올지 예측해야 한다. 이러한 수백만 번의 예측을 통해 모델은 구름은 빠르게 움직이고 물은 느리게 움직인다는 것을 학습한다. 그림자는 가파른 시간적 기울기를 갖고 홍수는 완만한 기울기를 갖는다는 것을 학습한다. 뉴턴의 법칙을 한 번도 들은 적 없이 변화의 물리학을 학습한다.
그런 다음 우리는 확보 가능한 최고의 라벨링 데이터셋으로 미세 조정한다 — 전 세계 11건의 홍수 사건에 걸친 4,831개의 라벨링 칩을 담은 Sen1Floods11, 다양한 형태를 포착한 159건의 홍수 사건을 담은 WorldFloods, 구름과 그림자 제거를 위한 400만 장의 이미지를 담은 AllClear, 도시 환경이라는 악몽에 특화된 UrbanSARFloods. 어떤 단일 데이터셋도 충분하지 않다. 각각은 저마다의 라벨링 편향을 지니며, 이들 모두로 학습하면 모델은 암기가 아니라 일반화를 하도록 강제된다.
그림자는 물이 아니다
나는 그 첫 번째 이미지로 자꾸 되돌아온다. 고속도로 위의 어두운 형체. 자신만만한 빨간색 라벨: 홍수. 누군가 의문을 제기했을 무렵 이미 경로를 바꾸고 있던 쉰 대의 트럭.
문제는 결코 AI가 멍청하다는 데 있지 않았다. 문제는 우리가 AI에게 2차원 스냅숏을 보고 4차원 세계를 이해하라고 요구했다는 데 있었다. 우리는 AI에게 사진 한 장을 건네고 이야기를 들려달라고 요구했다. 당연히 AI는 환각을 일으켰다.
핵심 인프라 관련 의사결정에 단일 프레임 추론을 쓰던 시대는 끝났다. 기후 변화는 극한 기상 이변의 빈도를 — 그리고 그에 동반되는 구름층을 — 가속하고 있다. 비가 오면 눈이 멀어버리는 시스템은 신중한 것이 아니다. 구식일 뿐이다.
VeriPrajna에서 우리가 만드는 것은 더 나은 분류기가 아니다. 그것은 다른 종류의 봄(seeing)이다. 우리는 시간의 흐름을 지켜본다. 우리는 전자기 스펙트럼을 융합한다. 우리는 어두운 픽셀이 JPEG 안에서 어떻게 뭉치는지가 아니라, 물이 실제로 지형 위에서 어떻게 거동하는지의 물리학을 모델링한다. 래퍼 모델이 침수된 도로를 보고 패닉에 빠졌을 때, 우리 시스템은 레이더를 확인하고, 테이프를 되감고, 시간적 일관성을 검증한 뒤, 경로를 통과시켰다.
그림자는 물이 아니다. 하지만 단 한 번만 본다면 그 차이를 결코 알 수 없을 것이다.

