개요

35편부터 41편까지, 모델을 현장에 내놓기 위한 방법을 순서대로 다 봤다. 숫자를 줄이고, 모델을 깎고, 칩에 맞춰 소수점을 지우고, 현장에서 흔들리면 파라미터를 밀거나 센서를 조절하고.

그런데 그 전부를 동원해도 안 풀리는 지점이 있다. 애초에 문제를 잘못 세팅했을 때다.

이번 편은 도구가 아니라 문제를 세우는 쪽 이야기다. 그 분야를 아는 사람이 설계에 들어가면 무엇이 달라지는가. 그리고 자료가 든 사례가 하필 수면의학이라, 앞의 편들과 이어지는 지점이 많았다.

이번 글이 답할 질문 도메인 전문지식을 안다는 게 모델 설계에서 구체적으로 무슨 일을 하는가. 그게 경량화까지 되는가.

교육 과정 자료는 대외비라 원본 자료는 싣지 않는다.


1. 도메인 전문지식 — CNN도 사실 그 결과물이었다

도메인 전문지식이라는 말이 좀 뜬구름 같은데, 자료가 든 예시가 좋았다. CNN이다.

22편에서 CNN을 다루며 “이미지에서 의미는 대부분 옆에서 나온다” 고 적었었다. 그때는 그게 이미지의 성질이라고만 생각했는데, 다시 보니 그건 사람이 사물을 보는 방식이었다.

가정 없이 만든 신경망과 시각 인지를 새겨 넣은 신경망

CNN에는 두 가지 가정이 미리 박혀 있다.

  • 가까운 것끼리 먼저 본다 — 왼쪽 위 물체를 판별할 때 오른쪽 아래를 같이 볼 필요는 없다
  • 어디에 있든 같은 것이다 — 같은 물체가 왼쪽 위에 있든 오른쪽 아래에 있든, 근거로 삼는 시각적 특징은 같다

이 둘은 수학에서 나온 게 아니다. 사람이 눈으로 사물을 알아보는 방식에서 가져온 것이다. 그리고 그 결과 CNN은 다층 퍼셉트론보다 훨씬 가벼우면서 성능은 더 높다.

더 쉬운 비유로

처음 가는 도시에서 식당을 찾는데, 지도를 주는 것과 “이 동네는 다 별로다” 한마디를 해주는 것.

지도는 정보를 더 주는 것이고, 후자는 안 가봐도 되는 곳을 지워주는 것이다. 후자 쪽이 실은 훨씬 빠르다. 전문지식 주입이 하는 게 이거다. 정답을 알려주는 게 아니라 헤맬 필요 없는 경우의 수를 미리 지워준다.

그래서 자료가 마지막에 이 문장을 붙인다. AI 전문가와 도메인 전문가의 긴밀한 협업이 필수다.

전문지식이 없으면 모델은 그걸 데이터로 처음부터 배워야 한다. 그 학습 비용이 곧 모델 크기다.


2. 수면의학 — 사람이 눈으로 30초씩 채점하는 일

사례로 든 분야가 수면의학이다. 배경부터 좀 봐야 뒤가 이해된다.

사람은 인생의 3분의 1을 자고, 부실한 수면은 사고 위험부터 만성 질환까지 끌고 온다. 그런데 한국인의 60%가 수면 질환을 겪는다고 한다.

진단의 기본은 수면다원검사(PSG) 다. 병원에 가서 센서를 열 종류 넘게 붙이고 하룻밤을 잔다. 그리고 다음 날, 전문 수면기사가 그 시계열 파형을 눈으로 보면서 30초 단위로 채점한다. 한 건에 두 시간쯤 걸린다.

여기에 문제가 다섯 개 있다.

수면다원검사의 한계

앞의 셋 중에 제일 놀란 게 정확도 82% 였다. 이건 AI 이야기가 아니라, 사람 채점자끼리 서로의 채점에 동의할 확률이다. 실제로 수면기사 2,500명 이상이 참여한 대규모 검증에서 평균 일치율이 82.6%로 나왔다. 단계별로 보면 REM은 잘 맞는데 N1은 63%, N3는 67% 수준이다.

즉 이 작업은 정답이 하나로 딱 떨어지는 일이 아니다. 사람도 서로 다르게 본다.

그리고 뒤의 두 개가 더 근본적이다. 첫날 밤 효과 — 낯선 병실에서 센서를 잔뜩 붙이고 자면 평소와 수면 상태가 달라진다. 하룻밤 문제 — 수면은 매일 밤 달라지는데, 그 하루로 평소 상태를 대표해야 한다.

앞의 셋은 자동화로 풀리고, 뒤의 둘은 집에서 잴 수 있어야 풀린다. 사례 두 개가 정확히 이 둘을 하나씩 맡는다.


3. 사례 1 — 전문가의 습관을 그대로 설계로 옮기다

첫 번째는 수면단계 자동채점 AI다. 30초짜리 한 칸(에폭)을 보고 Wake, N1, N2, N3, REM 다섯 중 하나로 분류하는 문제다.

여기서 전문지식 주입이 세 번 들어가는데, 셋 다 출처가 같다. 수면기사가 실제로 어떻게 일하는가.

전문가의 행동이 설계 결정이 되는 과정

주입 1 — 시계열이 아니라 이미지 문제로 본다

이게 제일 재밌었다. 데이터만 보면 이건 명백히 시계열이다. 뇌파, 안구, 근전도, 심전도가 시간에 따라 흘러가는 값이니까.

그런데 자료는 이렇게 뒤집는다.

수면기사들은 화면에 파형을 띄워놓고 눈으로 보고 채점한다. 그렇다면 이 작업의 본질은 시계열 분석이 아니라 이미지 판독이다.

그래서 30초 화면을 그대로 스크린 캡처해서 흑백 이미지로 만들고, 컴퓨터 비전 문제로 푼다. 가로축은 시간, 세로축은 신호의 종류와 값이다.

데이터의 형식을 보고 방법을 고른 게 아니라, 일하는 사람의 관점을 보고 방법을 골랐다.

주입 2 — CNN이 아니라 비전 트랜스포머

이미지 문제니까 CNN을 쓰면 될 것 같은데, 여기서 한 번 더 걸린다. 1번에서 본 CNN의 두 가정이 이 이미지에서는 틀린 가정이 된다.

생체신호 이미지에서 깨지는 두 가정

일반 사진에서는 세로축도 위치다. 그래서 옆에 붙어 있으면 같은 물체의 일부일 가능성이 높다.

그런데 이 이미지의 세로축은 위치가 아니라 신호의 종류다. 뇌파 줄 바로 아래에 근전도 줄이 있다고 해서 그 둘이 더 관련 있는 건 아니다. 그리고 몇 번째 줄인지가 곧 그 신호의 정체라서, “어디에 있든 같은 것”이라는 가정도 성립하지 않는다.

그래서 비전 트랜스포머를 쓴다. 39편에서 정수 양자화가 어렵다고 애를 먹였던 그 모델이다.

  • 위치 임베딩으로 몇 번째 신호인지를 명시적으로 알려준다
  • 패치를 각 신호가 통째로 들어가도록 자른다
  • 어텐션으로 시간축이든 신호축이든 멀리 떨어진 것끼리도 관계를 본다

성능이 좋아서 고른 게 아니다. 이 데이터에 맞는 가정을 가진 모델이라서 고른 것이다.

주입 3 — 앞뒤를 같이 본다

마지막이 제일 사람 냄새가 났다. 수면은 30초로 뚝뚝 끊어지지 않는다. 연속적이다. 그래서 수면기사도 한 칸만 보고 정하지 않고, 앞뒤 에폭의 결과를 같이 보고 판단한다.

그래서 에폭 하나하나를 판정한 뒤, 그 결과들끼리 한 번 더 어텐션을 태워 최종 판정을 낸다.

자료에 실제 사례가 있었다. 321번째 에폭을 N2로 틀리게 예측했는데, 뒤이은 두 에폭이 REM으로 나오자 321번을 REM으로 보정해서 정답이 됐다.

그래서 얻은 것

성능 평가에서 설명력을 짚은 게 인상적이었다. 모델이 어느 생체신호의 어느 시점을 보고 판단했는지를 시각화했더니, 그게 수면의학 채점 가이드라인이 말하는 근거와 일치했다.

이게 왜 중요하냐면, 의료 진단은 사람 생명이 걸린 일이라 결과에 책임을 져야 하기 때문이다. 의료진이 AI 판단을 신뢰하려면 AI가 자기 판단을 설명할 수 있어야 한다.

전문지식을 넣었더니 성능만 오른 게 아니라 설명도 같이 됐다. 사람이 보던 근거를 그대로 보게 만들었으니 당연한 결과이기도 하다.


4. 사례 2 — 안 보이는 걸 포기하고, 보이는 걸 잡는다

두 번째는 비접촉식 수면 무호흡증 진단 AI다. 2절의 뒤쪽 두 문제, 그러니까 첫날 밤 효과와 하룻밤 문제를 맡는다.

수면 무호흡증은 자는 동안 기도가 막혀 호흡이 멈추는 질환이다. 심각도는 AHI로 잰다. 무호흡과 저호흡이 시간당 몇 번 일어났는지다.

집에서 재려면 몸에 아무것도 안 붙여야 한다. 그래서 적외선 카메라 영상만으로 해보자는 게 출발점이다. 그런데 여기서 벽에 부딪힌다.

무호흡일 때의 움직임은 너무 미세해서 영상으로 안 잡힌다.

발상의 전환

여기서 의학 지식이 하나 들어온다.

기도가 막힌 상태가 오래가면 사람은 죽는다. 그래서 인체는 무의식적으로 몸을 크게 뒤척여 기도를 다시 연다.

이걸 호흡 각성(Respiratory Arousal) 이라고 한다. 그리고 이건 아주 잘 보인다.

호흡 각성을 잡고 무호흡을 역추적한다

그래서 감지 대상을 바꾼다. 무호흡을 직접 찾지 않고, 그 뒤에 반드시 따라오는 큰 움직임을 찾은 다음, 거기서 거꾸로 되짚는다.

문제는 사람이 그냥 뒤척이기도 한다는 것이다(자발적 각성). 여기서도 관찰이 하나 더 들어간다. 호흡 각성은 움직임 범위가 더 크고, 특히 가슴 위쪽 움직임의 강도가 세다. 그걸 단서로 둘을 가른다.

더 쉬운 비유로

도둑이 들어오는 순간은 못 봤어도, 개가 짖은 시각은 안다.

침입 자체는 조용해서 못 잡는다. 그런데 그 뒤에 반드시 따라오는 시끄러운 사건이 있다면, 그걸 잡고 시간을 거슬러 올라가면 된다. 놓친 걸 억지로 찾는 대신 반드시 붙어 다니는 다른 걸 찾는 것이다.

이걸 알아내려면 기도가 막히면 인체가 어떻게 반응하는지를 알아야 한다. AI 지식만으로는 절대 못 나오는 설계다.


5. 그래서 다시 온디바이스로

사례 2의 마무리가 38편과 정확히 이어져서 반가웠다.

감지 대상을 큰 움직임으로 바꾸고 나니, 무거운 영상 모델이 필요 없어졌다. 30초 클립에서 큰 움직임 하나를 잡는 일이라면 경량 비디오 모델로 충분하다. 그 결과가 이렇다.

  • 엣지 디바이스에서 GPU 없이 CPU만으로도 30초 이내 추론 — 실시간으로 돈다
  • 클립 하나를 처리하면 영상 원본은 지우고 진단 결과만 남긴다 — 침실 영상이라 사생활 문제가 크다
  • 병원이 아니라 집에서, 여러 밤에 걸쳐 잴 수 있다

38편에서 온디바이스를 고르는 이유로 속도·네트워크·비용·개인정보를 들었는데, 여기서는 네 개가 전부 한꺼번에 걸린다. 침실 영상을 클라우드로 보낼 수는 없으니까.

정리하면 이런 연쇄가 된다

단계 무엇이 바뀌었나
도메인 지식 무호흡 대신 호흡 각성을 보기로 한다
그래서 감지해야 할 움직임이 커진다
그래서 가벼운 모델로도 잡힌다
그래서 엣지 기기 CPU에서 실시간으로 돈다
그래서 영상을 밖으로 안 보내고 집에서 잴 수 있다

36편에서 경량화를 배울 때는 모델을 깎아서 가볍게 만들었다. 여기서는 모델을 하나도 안 깎았다. 문제를 바꿨더니 가벼워도 되는 문제가 됐다.

개요에서 던진 질문의 답이 여기 있었다. 전문지식은 경량화 기법이 아닌데, 결과적으로 경량화가 된다.


정리

  • 도메인 전문지식 주입은 정답을 알려주는 게 아니라 헤맬 필요 없는 경우의 수를 지워주는 것이다. 전문지식이 없으면 모델은 그걸 데이터로 처음부터 배워야 하고, 그 비용이 곧 모델 크기다
  • CNN이 그 대표 사례다. 가까운 것끼리 본다, 어디 있든 같은 것이다 — 두 가정은 사람의 시각 인지에서 가져온 것이고, 덕분에 훨씬 가벼운데 성능이 높다
  • 수면다원검사는 인력·비용·정확도(채점자 간 일치율 약 82%) 문제에, 첫날 밤 효과하룻밤 문제까지 안고 있다
  • 사례 1(수면단계 자동채점) — 전문지식이 세 번 들어갔다. ① 수면기사가 눈으로 보고 채점하니 이미지 문제로 전환 ② 생체신호 축에서는 CNN의 두 가정이 깨져서 비전 트랜스포머 ③ 수면은 연속적이라 에폭 간 어텐션으로 결과 보정
  • 그 결과 설명력까지 얻었다. 모델이 본 근거가 채점 가이드라인과 일치했다
  • 사례 2(비접촉 무호흡 진단) — 무호흡은 움직임이 미세해 영상으로 못 잡는다. 대신 그 뒤에 반드시 오는 호흡 각성을 잡고 역추적한다. 자발적 각성과는 가슴 위쪽 움직임 강도로 구분
  • 감지 대상을 바꾸니 경량 모델로 충분해졌고, 엣지 CPU만으로 30초 내 추론이 되고, 영상을 밖으로 안 보내도 됐다

여덟 편을 한 줄로

35~37편은 모델을 줄이는 법, 38~39편은 그걸 올릴 자리와 거기 맞추는 법, 40~41편은 현장에서 흔들릴 때 모델과 센서를 각각 만지는 법이었다.

그리고 42편은 그 앞에 있어야 할 단계였다. 무엇을 풀 문제로 삼을지 정하는 단계.

41편에서 “손댈 곳을 하나만 보고 있는 게 아닌가” 로 닫았는데, 이 편이 그 목록에 하나를 더 얹었다.

모델도 데이터도 센서도 아니고, 문제 정의를 손볼 수 있다.

무호흡을 못 잡겠다고 모델을 키우지 않았다. 잡을 수 있는 다른 걸 찾았다. 시계열이라고 시계열 모델을 쓰지 않았다. 사람이 그걸 이미지로 보고 있으니 이미지로 풀었다.

둘 다 AI 지식만으로는 나올 수 없는 결정이었다. 그 분야를 아는 사람이 방에 있어야 나오는 결정이다.


참고 자료

한줄 평

여덟 편 내내 모델을 어떻게 다룰지만 봤는데, 마지막에 와서 그 분야를 아는 게 제일 센 경량화였다는 게 웃픈 현실이다!