레이다 데이터에 AI 적용하기
레이다 데이터는 라벨이 비싸고 형태가 여러 가지이다. 이것을 어떻게 학습 가능한 입력으로 만들고, 적은 실측 데이터로 어떻게 학습하는가?
전이학습
전이학습(transfer learning)은 큰 데이터셋(예: ImageNet)으로 미리 학습한 모델의 가중치를 가져와 우리 문제에 맞게 미세조정(fine-tuning)하는 기법이다. 레이다 AI에서는 실측 라벨 데이터가 매우 비싸므로, 시뮬레이션으로 사전학습한 뒤 적은 실측 데이터로 적응시키는 방식이 특히 중요하다.
전이학습이 통하는 이유는 둘이다.
- 앞쪽 층은 모서리, 꼭짓점, 질감 같은 저수준 특징을 배우는데, 이것은 자연 영상과 레이다 영상에 함께 쓸모 있다.
- 레이다로 모은 데이터는 적지만, 사전학습한 특징 추출기를 다시 쓰면 적은 데이터로도 높은 성능을 얻는다.
전이학습은 세 단계로 한다.
- 사전학습(pre-training): 큰 데이터(ImageNet, 시뮬레이션 등)로 신경망 전체를 학습한다. 모델이 일반적인 특징 표현을 익힌다.
- 동결 미세조정: 작은 목표 데이터를 모으고, 앞쪽 층(특징 추출기)을 동결(freeze)한 채 마지막 한두 층만 학습한다. 과적합을 막으면서 새 도메인의 성질을 빠르게 흡수한다.
- 전체 미세조정: 2단계 뒤에 모든 층을 매우 낮은 학습률()로 미세조정한다. 층의 깊이에 따라 학습률을 다르게 두기도 하는데, 예를 들면 앞쪽 층 , 중간 층 , 마지막 층 이다.
PyTorch로 2단계를 쓰면 다음과 같다.
for name, param in model.named_parameters():
if 'fc' in name or 'layer4' in name: # 마지막 층만
param.requires_grad = True
else:
param.requires_grad = False # 나머지는 동결
optimizer = torch.optim.Adam(
filter(lambda p: p.requires_grad, model.parameters()),
lr=1e-4 # 낮은 학습률
)
| 전략 | 필요한 데이터 | 장점 | 단점 |
|---|---|---|---|
| 처음부터 학습(scratch) | 수만 개 | 도메인에 최적화된다 | 데이터 수집 비용이 매우 크다 |
| 마지막 층만 fine-tune | 수백 개 | 빠르고 안정적이다 | 표현력이 제한된다 |
| 전체 fine-tune(낮은 학습률) | 수백~수천 개 | 균형이 좋다 | 과적합 위험이 있다 |
ImageNet으로 사전학습한 ResNet-18을 micro-Doppler 스펙트로그램에 미세조정하는 것은 흔한 선택이다. 다만 21장의 행동 인식 사례는 비교를 단순하게 하려고 ResNet-18을 무작위 초기화로 학습한다. 실측 데이터가 생기면 시뮬레이션으로 사전학습한 모델을 적은 실측 보정 데이터로 미세조정한다. 시뮬레이션에서 실측으로 적응하는 이 방식이 레이다 AI의 기본 작업 흐름이다.
도메인 무작위화
도메인 무작위화(domain randomization)는 시뮬레이터의 불확실한 파라미터를 일부러 무작위로 바꿔 학습 데이터를 만드는 데이터 증강 전략이다. 시뮬레이터가 낼 수 있는 변동을 모두 학습 데이터에 넣으면 신경망이 특정 조건에 과적합하지 않고 일반화하므로, 여러 현실 조건에서도 견고하게 동작한다. 이 방법은 시뮬레이션에서 학습한 모델을 실제 로봇으로 옮기는 로보틱스의 sim-to-real 전이에서 나왔고, 레이다 AI에서도 매우 효과적이다.
| 무작위화 대상 | 흔한 범위 | 효과 |
|---|---|---|
| SNR | dB | 여러 거리와 RCS 조건에 대응한다 |
| 표적 파라미터(위치, 속도, 각도) | 물리적으로 유효한 전 범위 | 여러 시나리오를 덮는다 |
| 하드웨어 오차(위상, 이득) | 실측 범위의 1.5~2배 | 보정 오차를 메운다 |
| 환경 파라미터(클러터, 다중 경로) | 확률적으로 켜고 끈다 | 현실적인 간섭 환경에 대응한다 |
무작위화 범위가 너무 넓으면 신경망이 지나치게 어려운 문제를 풀어야 해서 학습이 수렴하지 않는다. 실제 하드웨어를 재서 오차 범위를 추정한 뒤, 그보다 조금 넓게 잡는다(예: 실측 → 학습 ). 22장의 도래각 사례는 하드웨어 오차가 없는 시뮬레이션 데이터만으로 학습한다(위상 잡음 0, 정확한 자기 위치). 보정 오차, 위상 잡음, 진폭 불균형을 넣어 보는 것이 그 사례의 확장 실험이다.
레이다 데이터의 형태
레이다 신호는 처리 단계에 따라 여러 형태의 데이터가 된다. 형태마다 담은 정보가 다르고, 알맞은 AI 문제도 다르다.
복소 데이터의 전처리
레이다 신호는 본래 복소수이다. CNN은 실수 입력을 받으므로 알맞게 바꿔야 한다.
| 전처리 | 변환 | 보존하는 정보 | 쓰는 곳 |
|---|---|---|---|
| 2채널(I/Q) | 실수부와 허수부 → 2채널 텐서 | 위상 정보를 모두 보존한다 | 위상이 핵심인 문제(예: SAR autofocus) |
| 크기(magnitude) | 크기만(위상은 잃는다) | RD 맵 탐지(위치가 목표) | |
| dB 스케일 | 동적 범위를 압축한다 | 탐지, 분류 일반 | |
| z-score 정규화 | 상대적인 무늬를 유지한다 | 배치 사이의 수준 차이가 클 때 | |
| 샘플별 min-max | 샘플마다 [0, 1]로 정규화한다 | SNR 범위가 넓을 때 |
시뮬레이션으로 학습 데이터 만들기
시뮬레이터를 쓰면 실제 데이터를 모으지 않고도 여러 학습 데이터를 자동으로 만들고 정확한 라벨을 얻는다. 이것이 레이다 AI의 큰 장점이다.
그림에서 ▶를 누를 때마다 표적 하나가 학습 샘플 하나가 되는 단계를 하나씩 지난다. 표적의 거리와 속도를 정하면 beat 신호가 생기고, 2차원 FFT로 RD 맵이 되고, 같은 거리와 속도에서 계산한 셀에 라벨 마스크가 놓이고, 마지막으로 dB로 바꾸어 정규화한 값이 신경망의 입력이 된다.
레이다 파라미터는 8장의 예(77 GHz, B = 300 MHz, chirp 64개)이고 잡음을 더했다. RD 맵은 range bin 0–63만 그렸다.
표적은 8장의 표적 A(20 m, 5 m/s)이다. 라벨 셀은 탐지기로 찾지 않고 표적의 파라미터에서 바로 계산한다. range bin은 beat 주파수 798 kHz를 bin 간격 20 kHz로 나눈 39.9에 가장 가까운 40이고, Doppler bin은 −8.2에 가장 가까운 −8이다. RD 맵의 피크도 같은 셀에 있다. 실측 데이터에서는 사람이 이 셀을 찾아 라벨을 붙여야 하고, 잡음과 사이드로브 때문에 틀리기도 한다.
시뮬레이터에서 학습한 모델이 실제 레이다 하드웨어에서 성능이 떨어지는 현상을 sim-to-real gap이라 한다. 원인은 시뮬레이터가 모델링하지 못하는 다음 요소들이다.
- 하드웨어의 비선형 특성(위상 잡음, I/Q 불균형, DC 오프셋)
- 실제 클러터의 비가우시안 통계(해면 클러터의 K-분포)
- 다중 반사, 다중 경로 효과
- 표적의 복잡한 RCS 무늬
이 차이를 줄이는 방법은 도메인 무작위화, 실제 데이터로의 미세조정, 시뮬레이션과 실측을 섞은 학습이다.
사례 장의 입력 데이터
| 사례 | 장 | 입력 데이터 | 형태 | 전처리 |
|---|---|---|---|---|
| RD 맵 탐지(U-Net) | 20장 | RD 맵 | (2, 64, 200) | noise floor 기준 log-magnitude와 위상, 두 채널 |
| micro-Doppler 행동 인식 | 21장 | micro-Doppler 스펙트로그램 | (1, F, T) | dB + z-score 정규화 |
| 레이다 지도 작성(도래각과 지도) | 22장 | 거리-각도 맵 | (2M, M) | 실수부와 허수부 분리, 정규화 |
| SAR speckle 제거 | 23장 | SAR 진폭 영상 | (1, H, W) | log 변환 + 정규화 |
이 장의 ML/AI 기초는 네 사례 모두의 공통 기반이고, 각 사례는 앞 장의 신호처리를 AI로 넓힌 것이다. 실습 환경, 저장소 구조, 사례를 고르는 기준은 24장에 있다. 네 사례의 예제 코드는 공개되어 있다.
강의 노트