1센서 데이터의 이해

센서는 Physical AI의 입력을 제공합니다.

**센서 데이터의 특징** - 연속적 (Continuous): 온도, 압력 - 이산적 (Discrete): 스위치, 카운터 - 노이즈 포함: 측정 오차, 전기적 잡음 - 시간 의존적: 시계열 데이터

센서 데이터 유형

아날로그 데이터

  • 연속적인 값 (예: 0-10V, 4-20mA)
  • ADC (Analog-to-Digital Converter) 필요
  • 해상도: 12bit (4096), 16bit (65536)

디지털 데이터

  • 이산적인 값 (0/1, ON/OFF)
  • 직접 읽기 가능
  • 프로토콜: SPI, I2C, UART

이미지 데이터

  • 픽셀 배열 (H×W×C)
  • 크기: 640×480, 1920×1080
  • 포맷: RGB, 그레이스케일, Bayer

2데이터 수집 (Data Acquisition)

실시간 데이터를 시스템으로 가져옵니다.

샘플링

샘플링 이론 (Nyquist-Shannon)

fs >= 2 × fmax
  • fs: 샘플링 주파수
  • fmax: 신호의 최대 주파수

**앨리어싱 (Aliasing)**: 샘플링 주파수가 낮으면 신호 왜곡 발생

예: 50Hz 진동을 10Hz로 샘플링하면 잘못된 5Hz 신호로 보임

샘플링 전략

주기적 샘플링 (Periodic Sampling)

# 주기적 샘플링 (수도코드)

샘플링_주파수 = 100  # Hz
샘플링_간격 = 1.0 / 샘플링_주파수

반복:
    데이터 = 센서.읽기()
    데이터_처리(데이터)
    대기(샘플링_간격)

이벤트 기반 샘플링 (Event-driven)

  • 임계값 초과 시
  • 상태 변화 감지 시
  • 외부 트리거 발생 시

적응형 샘플링 (Adaptive)

  • 변화가 크면 빠르게
  • 안정 상태면 느리게
  • 데이터 전송량 최소화

3데이터 전처리

원시 센서 데이터를 AI 모델에 적합하게 변환합니다.

노이즈 제거

이동 평균 필터 (Moving Average)

# 이동 평균 필터 (수도코드)

함수 이동평균(데이터, 윈도우크기=5):
    # 윈도우 크기만큼 평균 계산
    결과 = 컨볼루션(데이터, 윈도우크기)
    반환 결과

# 사용 예: 온도 데이터 필터링
온도 = [23.1, 23.5, 23.2, 25.8, 23.4, 23.6]
필터링결과 = 이동평균(온도, 윈도우크기=3)

칼만 필터 (Kalman Filter)

# 칼만 필터 (수도코드)

# 칼만 필터 초기화
필터 = 칼만필터_생성(상태차원=2, 측정차원=1)
필터.초기상태 = [0, 0]
필터.상태전이행렬 = 설정()
필터.측정노이즈 = 5
필터.프로세스노이즈 = 0.1

# 필터링 실행
필터.예측()
필터.업데이트(측정값)

중앙값 필터 (Median Filter)

  • 급격한 스파이크 제거
  • 엣지 보존
  • 이미지 처리에 효과적

정규화 (Normalization)

Min-Max 정규화

# Min-Max 정규화 (수도코드)

함수 최소최대_정규화(데이터):
    최솟값 = 데이터의_최솟값()
    최댓값 = 데이터의_최댓값()
    반환 (데이터 - 최솟값) / (최댓값 - 최솟값)

Z-Score 정규화

# Z-Score 정규화 (수도코드)

함수 Z점수_정규화(데이터):
    평균 = 데이터의_평균()
    표준편차 = 데이터의_표준편차()
    반환 (데이터 - 평균) / 표준편차

특징 추출 (Feature Extraction)

통계적 특징

# 통계적 특징 추출 (수도코드)

함수 통계특징_추출(신호):
    특징 = {
        '평균': 신호의_평균(),
        '표준편차': 신호의_표준편차(),
        '최댓값': 신호의_최댓값(),
        '최솟값': 신호의_최솟값(),
        'RMS': 제곱근(신호제곱의_평균),
        '피크간_거리': 최댓값 - 최솟값
    }
    반환 특징

주파수 도메인 특징

# 주파수 특징 추출 (수도코드)

함수 주파수특징_추출(신호, 샘플링주파수):
    # FFT 변환 수행
    FFT값 = 푸리에변환(신호)
    주파수 = 주파수_계산(신호길이, 샘플링주파수)

    # 주파수 대역별 파워 계산
    특징 = {
        '저주파_파워': 합계(10Hz 미만 대역),
        '중주파_파워': 합계(10~100Hz 대역),
        '고주파_파워': 합계(100Hz 이상 대역)
    }
    반환 특징

4센서 퓨전 (Sensor Fusion)

여러 센서 데이터를 결합하여 더 정확한 정보를 얻습니다.

퓨전 레벨

데이터 레벨 퓨전 (Data-level)

  • 원시 센서 데이터 직접 결합
  • 높은 대역폭 필요
  • 가장 정확

특징 레벨 퓨전 (Feature-level)

  • 추출된 특징 결합
  • 중간 대역폭
  • 일반적으로 사용

결정 레벨 퓨전 (Decision-level)

  • 각 센서의 판단 결과 결합
  • 낮은 대역폭
  • 가장 단순

퓨전 알고리즘

가중 평균

# 가중 평균 퓨전 (수도코드)

함수 가중평균_퓨전(센서1, 센서2, 가중치1=0.7, 가중치2=0.3):
    반환 가중치1 × 센서1 + 가중치2 × 센서2

베이지안 퓨전

# 베이지안 퓨전 (수도코드)

함수 베이지안_퓨전(사전확률, 우도, 증거):
    사후확률 = (우도 × 사전확률) / 증거
    반환 사후확률

**센서 퓨전의 장점** - 정확도 향상: 노이즈 감소 - 신뢰성 향상: 센서 고장 대응 - 완전성 향상: 더 많은 정보

5물리적 세계 모델링

Physical AI는 물리 법칙을 이해해야 합니다.

물리 모델

뉴턴 역학

F = ma
τ = Iα (토크 = 관성모멘트 × 각가속도)

열역학

Q = mcΔT (열량 = 질량 × 비열 × 온도변화)
dT/dt = -k(T - T_ambient)  # 냉각

유체역학

Q = A × v  # 유량 = 단면적 × 속도
P + ½ρv² + ρgh = const  # 베르누이 방정식

시스템 모델링

1차 시스템

# 1차 시스템 (수도코드)
# 예: RC 회로, 온도 시스템

함수 일차시스템(상태, 시간, 시상수, 입력):
    변화율 = (입력 - 상태) / 시상수
    반환 변화율

2차 시스템

# 2차 시스템 (수도코드)
# 예: 스프링-질량-댐퍼 시스템

함수 이차시스템(상태, 시간, 고유주파수, 감쇠비, 입력):
    위치, 속도 = 상태
    위치변화율 = 속도
    속도변화율 = 고유주파수² × (입력 - 위치) - 2×감쇠비×고유주파수×속도
    반환 [위치변화율, 속도변화율]

6시계열 데이터 분석

시간에 따른 변화를 분석합니다.

추세 분석 (Trend Analysis)

# 추세 분석 (수도코드)

함수 추세_검출(데이터, 타임스탬프):
    # 선형 회귀 분석
    기울기, p값 = 선형회귀(타임스탬프, 데이터)

    만약 p값 < 0.05:  # 통계적으로 유의미
        만약 기울기 > 0:
            반환 "증가 추세"
        아니면:
            반환 "감소 추세"
    반환 "안정"

이상 감지 (Anomaly Detection)

통계적 방법

# 3-sigma 이상 감지 (수도코드)

함수 통계적_이상감지(데이터, 임계값=3):
    평균 = 데이터의_평균()
    표준편차 = 데이터의_표준편차()

    이상목록 = []
    각 데이터포인트에 대해:
        z점수 = |데이터값 - 평균| / 표준편차
        만약 z점수 > 임계값:
            이상목록에_추가(인덱스)

    반환 이상목록

Moving Z-Score

# 이동 윈도우 이상 감지 (수도코드)

함수 이동Z점수_이상감지(데이터, 윈도우=50, 임계값=3):
    이상목록 = []

    인덱스 = 윈도우부터 데이터끝까지:
        윈도우데이터 = 데이터[인덱스-윈도우:인덱스]
        평균 = 윈도우데이터의_평균()
        표준편차 = 윈도우데이터의_표준편차()

        z점수 = |현재값 - 평균| / 표준편차
        만약 z점수 > 임계값:
            이상목록에_추가(인덱스)

    반환 이상목록

7실시간 처리

지연 없이 데이터를 처리합니다.

스트리밍 처리

Sliding Window

# 슬라이딩 윈도우 (수도코드)

클래스 슬라이딩윈도우:
    초기화(윈도우크기):
        윈도우 = 고정크기_큐(최대크기=윈도우크기)

    함수 추가(값):
        윈도우에_값_추가(값)

    함수 통계계산():
        만약 윈도우가_비어있으면:
            반환 없음
        반환 {평균, 표준편차, 최댓값, 최솟값}

# 사용 예
윈도우 = 슬라이딩윈도우(크기=100)
반복:
    데이터 = 센서.읽기()
    윈도우.추가(데이터)
    통계 = 윈도우.통계계산()

버퍼링 전략

Ring Buffer (순환 버퍼)

# 순환 버퍼 (수도코드)

클래스 순환버퍼:
    초기화(크기):
        버퍼크기 = 크기
        버퍼 = 빈_배열(크기)
        현재인덱스 = 0
        개수 = 0

    함수 추가(값):
        버퍼[현재인덱스] = 값
        현재인덱스 = (현재인덱스 + 1) % 버퍼크기
        개수 = 최소(개수 + 1, 버퍼크기)

    함수 전체가져오기():
        만약 개수 < 버퍼크기:
            반환 버퍼[0:개수]
        반환 버퍼[현재인덱스:] + 버퍼[:현재인덱스]

8데이터 품질

고품질 데이터가 고품질 AI를 만듭니다.

데이터 품질 지표

완전성 (Completeness)

# 완전성 검사 (수도코드)

함수 완전성_검사(데이터):
    전체개수 = 데이터_길이()
    결측개수 = 결측값_개수()
    완전성 = (전체개수 - 결측개수) / 전체개수 × 100
    반환 완전성

정확성 (Accuracy)

  • 센서 교정 (Calibration)
  • 기준값과 비교
  • 오차 범위 확인

일관성 (Consistency)

  • 물리 법칙 위반 확인
  • 범위 체크
  • 상관관계 확인

결측치 처리

보간법 (Interpolation)

# 선형 보간 (수도코드)

함수 선형보간_결측치채우기(데이터, 타임스탬프):
    유효마스크 = 결측값이_아닌_위치()
    보간함수 = 선형보간_생성(유효_타임스탬프, 유효_데이터)
    반환 보간함수(전체_타임스탬프)

9실전 예제

온도 센서 데이터 처리 전체 파이프라인입니다.

# 온도 센서 처리 파이프라인 (수도코드)

클래스 온도센서_프로세서:
    초기화(윈도우크기=50):
        윈도우 = 슬라이딩윈도우(윈도우크기)
        칼만필터 = 칼만필터_초기화()

    함수 칼만필터_초기화():
        필터 = 칼만필터_생성()
        필터.초기온도 = 25.0
        필터.측정노이즈 = 0.5
        필터.프로세스노이즈 = 0.1
        반환 필터

    함수 처리(원시온도):
        # 1. 칼만 필터 적용
        칼만필터.예측()
        칼만필터.업데이트(원시온도)
        필터링값 = 칼만필터.상태값

        # 2. 슬라이딩 윈도우 추가
        윈도우.추가(필터링값)

        # 3. 통계 계산
        통계 = 윈도우.통계계산()

        # 4. 이상 감지 (3-sigma 규칙)
        만약 통계가_있으면:
            z점수 = |필터링값 - 평균| / 표준편차
            이상여부 = z점수 > 3
        아니면:
            이상여부 = 거짓

        반환 {원시값, 필터링값, 통계, 이상여부}

요약

센서 데이터 처리는 Physical AI의 기초입니다:

  1. 데이터 수집: 적절한 샘플링
  2. 전처리: 노이즈 제거, 정규화
  3. 특징 추출: 의미있는 정보 추출
  4. 센서 퓨전: 여러 센서 결합
  5. 물리 모델링: 물리 법칙 적용
  6. 실시간 처리: 지연 최소화
  7. 품질 관리: 고품질 데이터 확보

다음 레슨에서는 디지털 트윈 기초를 배웁니다.