Chapter 11. Big Data Analysis and Machine Learning for Smart Infrastructure
| 스마트 인프라의 계측 개론 | 건설환경공학과 대학원
1. 개요
장기 SHM 시스템은 수십~수백 개의 센서로부터 연속적인 데이터를 생성한다. 예를 들어, 100개 채널을 1 kHz로 수집하면 하루 약 8.64 GB의 원시 데이터가 발생한다. 이를 단순 저장·육안 검토로 활용하는 것은 불가능하며, 빅데이터 분석과 머신러닝(ML) 기술을 통해 자동화된 패턴 인식, 예측, 의사결정 지원이 필요하다.
SHM(Structural Health Monitoring)이란 교량·터널·댐 같은 구조물에 센서를 부착해 건강 상태를 실시간으로 모니터링하는 시스템이다. 1 kHz 수집이란 1초에 1,000번 데이터를 기록하는 것으로, 100개 채널이면 1초에 100,000개의 숫자가 쌓인다. 하루치 데이터가 8.64 GB에 달하므로 사람이 직접 확인하는 것은 사실상 불가능하고, 이를 컴퓨터가 자동으로 분석(ML)하는 이유다.
전처리(Preprocessing)란 ML 모델에 데이터를 투입하기 전, 데이터를 깨끗하고 일관성 있게 정리하는 과정이다. 요리에 비유하면 재료 손질 단계로, 이 과정이 부실하면 아무리 정교한 알고리즘을 사용해도 좋은 결과를 얻기 어렵다. 일반적으로 ML 프로젝트 전체 시간의 60~80%가 전처리에 소요된다.
2.1 결측값 처리
센서가 일시적으로 꺼지거나 통신 오류가 생기면 데이터의 일부 구간이 비게 된다(결측값, Missing Value). 빈 칸을 그대로 두면 ML 모델이 오작동하므로, 합리적인 값으로 채우거나 해당 구간을 처리해야 한다.
선형 보간(Linear Interpolation): 짧은 결측 구간에 적합. 결측 구간의 앞뒤 값을 직선으로 이어 중간값을 추정한다. 예) 10시: 5.2 mm, 11시: 측정 없음, 12시: 5.8 mm → 11시를 5.5 mm로 채움.
이전값 유지(Forward Fill): 정적 계측 데이터에 적합. 결측 직전의 마지막 측정값을 그대로 복사한다. 값이 거의 변하지 않는 온도·침하 센서에 주로 사용한다.
모델 기반 보간(MICE, KNN Imputation): 다변량 결측 처리. 다른 채널의 측정값을 참고해 통계적으로 결측값을 예측하므로, 여러 채널이 동시에 빠진 경우에 효과적이다.
2.2 이상치(Outlier) 처리
이상치(Outlier)는 측정 오류나 순간적인 전기 노이즈 등으로 인해 다른 값들과 동떨어진 데이터다. 예를 들어, 평소 ±2 mm 범위에서 움직이는 변위 센서가 갑자기 +500 mm를 기록했다면 센서 오류일 가능성이 높다. 이상치를 제거하지 않으면 모델의 학습이 왜곡된다.
Min-Max 정규화: 값을 0과 1 사이로 압축. 데이터의 최솟값·최댓값을 알 때 사용.
\[ x' = \frac{x - x_{min}}{x_{max} - x_{min}} \in [0, 1] \]
Z-score 표준화: 평균을 0, 표준편차를 1로 변환. 이상치에 덜 민감하며 정규분포 가정이 없어도 무방.
\[ x' = \frac{x - \mu}{\sigma} \]
3. 이상 탐지 알고리즘
이상 탐지(Anomaly Detection)는 "정상이 아닌 데이터"를 자동으로 찾아내는 기술이다. 구조물 손상 데이터는 현실에서 극히 드물기 때문에(불균형 데이터), 정상 데이터만으로 학습한 뒤 "다르게 보이는" 데이터를 이상으로 분류하는 비지도 학습 방식을 주로 사용한다.
정상 상태 데이터만으로 학습하여 데이터 분포의 경계를 결정하는 비지도 학습 방법이다. 손상 데이터 없이도 이상 탐지가 가능하다.
SVM(서포트 벡터 머신)은 두 클래스를 구분하는 경계선을 긋는 알고리즘이다. One-Class SVM은 이를 변형하여, 정상 데이터만 모아서 "정상의 영역"을 하나의 경계로 감싼다. 이후 들어오는 새 데이터가 그 경계 밖에 있으면 이상으로 판정한다. 커널(Kernel) 함수를 이용하면 복잡한 비선형 경계도 표현할 수 있다.
이상치는 정상 데이터보다 더 적은 분할(split)로 고립된다는 원리를 이용한다. 고차원 데이터에 효율적이다.
군중 속에서 혼자 떨어진 사람을 찾는 것과 같은 원리다. 데이터를 무작위로 나누는 시도를 반복할 때, 이상치는 금방 다른 데이터들과 분리(고립)되지만 정상 데이터는 비슷한 데이터가 많아 분리하는 데 많은 분할이 필요하다. 즉 더 빨리 고립될수록 이상치일 가능성이 높다. 변수 수가 많거나 데이터가 많아도 빠르게 동작한다.
이상 점수 (Anomaly Score):
\[ s(x, n) = 2^{-\frac{E[h(x)]}{c(n)}} \]
여기서 \( E[h(x)] \): 트리 내 경로 길이 평균, \( c(n) \): 정규화 상수
s ≈ 1: 이상치, s ≈ 0.5: 정상
경로 길이 E[h(x)]가 짧을수록 고립이 빠른 것이므로 s가 1에 가깝다(이상치). c(n)은 n개 샘플에 대한 평균 경로 길이 기댓값으로 점수를 0~1 범위로 정규화한다.
3.3 Autoencoder 기반 이상 탐지
정상 데이터를 압축(인코딩)했다가 복원(디코딩)하도록 학습된 신경망이다. 정상 데이터는 복원 오차가 작고, 이상 데이터는 복원 오차가 커지는 원리를 이용한다.
사진을 낮은 용량으로 압축했다가 다시 복원하는 것을 상상해 보자. 자주 보던 유형의 사진은 잘 복원되지만, 처음 보는 낯선 이미지는 복원이 어색해진다. Autoencoder는 정상 신호만으로 "압축→복원"을 학습한다. 이후 이상 신호가 들어오면 학습 경험이 없어 복원이 잘 안 되고 원본과의 차이(복원 오차, Reconstruction Error)가 커진다. 이 오차로 이상을 판정한다.
1D-CNN은 시계열 신호에서 지역적 특성(local pattern)을 자동 추출하는 데 탁월하다. AE 신호, 진동 신호의 손상 분류에 효과적이다.
CNN은 원래 이미지 인식을 위해 개발되었다. 이미지에서 "모서리", "원" 같은 패턴을 찾듯이, 1D-CNN은 시계열 신호에서 "충격 파형", "주기적 진동" 같은 국부 패턴을 자동으로 감지한다. 작은 필터(커널)가 신호 위를 슬라이딩하며 패턴을 탐색하므로, 해당 패턴이 신호 어디에 나타나도 감지할 수 있다.
import tensorflow as tf
model = tf.keras.Sequential([
# 64개 필터, 커널 크기 3으로 신호의 지역 패턴 감지
tf.keras.layers.Conv1D(64, kernel_size=3, activation='relu', input_shape=(window, n_features)),
# 중요한 특성만 남기고 시퀀스 길이를 절반으로 축소
tf.keras.layers.MaxPooling1D(pool_size=2),
# 더 복잡하고 추상적인 패턴 추출
tf.keras.layers.Conv1D(128, kernel_size=3, activation='relu'),
# 전체 신호를 고정 크기 벡터로 압축
tf.keras.layers.GlobalAveragePooling1D(),
# 분류 결정을 위한 완전 연결층
tf.keras.layers.Dense(64, activation='relu'),
# n_classes개의 손상 유형 확률 출력 (합계 = 1)
tf.keras.layers.Dense(n_classes, activation='softmax')
])
6.2 장단기 메모리 (LSTM)
LSTM은 장기 의존성(long-term dependency)을 학습할 수 있는 순환 신경망으로, 시계열 예측(예: 미래 구조물 응답 예측, 잔존 수명 예측)에 적합하다.
일반 신경망은 이전 시점의 정보를 기억하지 못한다. LSTM은 세 개의 "문(gate)"을 통해 어떤 정보를 기억하고, 어떤 것은 잊을지 스스로 학습한다.
Forget gate (f): 이전 기억 중 불필요한 것을 지운다 (0: 완전히 잊음, 1: 완전히 유지)
Input gate (i): 현재 입력 중 기억에 추가할 정보를 선택한다
Output gate (o): 현재 기억 중 외부로 출력할 정보를 결정한다
예를 들어 "3시간 전 갑작스러운 기온 하강"이 지금 구조물 거동에 영향을 준다면, LSTM이 그 패턴을 장기 기억으로 유지한다.
σ: 시그모이드 함수 (0~1 출력으로 "문"의 열림 정도를 표현) / W: 학습되는 가중치 행렬 / b: 편향 벡터 / h_{t-1}: 이전 시점의 출력 / x_t: 현재 시점의 입력
6.3 전이 학습 (Transfer Learning)
다른 구조물이나 도메인에서 사전 학습된 모델을 새로운 구조물의 계측 데이터에 미세 조정(fine-tuning)하는 기법이다. 레이블 데이터가 부족한 계측 환경에서 특히 유용하다.
영어를 유창하게 구사하는 사람이 스페인어를 배울 때 처음부터 배우는 사람보다 훨씬 빠르다. 이와 같이, 다른 교량에서 학습된 딥러닝 모델은 "진동 신호를 어떻게 해석하는지"를 이미 알고 있으므로, 새로운 교량의 소량 데이터로 미세 조정(fine-tuning)만 해도 좋은 성능을 낼 수 있다. 레이블 데이터(손상 여부가 표기된 데이터)를 대량 수집하기 어려운 계측 현장에서 매우 실용적인 접근법이다.