인지야공

인지야공/강의 요약/6번째 글

제조데이터 분석 및 최적화 — 암묵지를 형식지로

이 과목의 문장 하나가 전부를 요약한다.

제조업의 AI 융합 혁신은 현장의 암묵지를 데이터화하여 인공지능이 학습할 수 있는 형식지로 변환하는 것이다.

베테랑 작업자가 기계 소리만 듣고 어디가 고장났는지 아는 것 — 그게 암묵지다. 학습과 경험으로 개인에게 체화됐지만 언어나 문자로 표현될 수 없어 겉으로 드러나지 않는 지식이다. 그 사람이 퇴직하면 같이 사라진다. 이 강의는 그걸 어떻게 데이터로 바꿔 붙잡을 것인가에 대한 것이다.

산업혁명의 발전

시기단계내용
1750~18401.0 증기 기계화물·증기·석탄 동력 기계를 이용한 제조업으로 전환
1870~19202.0 전기 대량생산전기모터와 내연기관의 등장
1960~20003.0 컴퓨팅 자동화정보화혁명(IT)과 자동화의 실현
2000~20204.0 IoT/CPS 스마트팩토리제조업에 첨단 ICT 접목, 디지털 전환과 CPS
2020~5.0 AI/협동로봇 인간중심Industry 4.0 이 놓친 ‘사회적 가치’ 와 기술 발전의 방향 보완

5.0 이 인간 중심이라는 게 중요하다. 4.0 이 “무인화”를 향했다면 5.0 은 무인이 아니라 자율이다. 사람을 빼는 게 아니라 사람이 더 나은 판단을 하게 만드는 방향이다.

자동화된 제조시스템자율화된 제조시스템
방식룰 기반의 사전 프로그래밍스스로 학습하고 적응
강점통제 환경에 우수인간의 개입 없이 의사결정 수행
약점돌발상황 대처 불가

스마트 팩토리 — 첨단 제조기술을 생산 현장에 맞춤형으로 결합해 효율을 극대화한 공장. 자율적으로 최적 솔루션을 제안하는 사이버물리시스템이며, 최소 비용과 시간으로 고객 맞춤형 제품을 생산하는 사람 중심의 첨단 지능형 공장이다.

자율 제조 — AI 기반 미래 생산 환경. AI 와 디지털 트윈으로 설비와 로봇이 스스로 공정을 수정하고 최적화한다. 공장이 하나의 거대한 유기체처럼 스스로 생산하고 이상과 원인을 예측하며 지속 개선이 이루어지는 제조 방식이다.

진화 경로는 이렇다.

ICT 활용 → 데이터 자동 수집 (Industrial 3.0)
→ 실시간 모니터링 → 원인 분석 자동화 → 예지보전/품질예측 → 자율제어 (Industrial 4.0)

당면 과제로 꼽은 것들 — 생산인구 감소, 생산성 정체, 탄소 배출 감축, 품질 이슈, 소비자 니즈 급변, 산업현장 안전.

전산화 · 디지털화 · 디지털전환

셋을 섞어 쓰기 쉬운데 층위가 다르다.

무엇을 바꾸나
Digitization 전산화아날로그 정보를 디지털 형식으로 변환하는 것
Digitalization 디지털화기존 업무 프로세스를 개선하고 효율화하는 것
Digital Transformation 디지털전환비즈니스 모델·고객경험·조직 문화 등 기업의 근본적인 체질 자체를 뒤바꾸는 것

종이 도면을 스캔하면 전산화, 그 파일로 결재 과정을 자동화하면 디지털화, 애초에 도면 없이 설계-생산이 돌아가게 사업 방식을 바꾸면 디지털전환이다.

사례
성공스타벅스 주문, 쿠팡 물류
실패GE Digital — 목적성이 모호했다 / 포드 스마트 모빌리티 — 기술과 업무의 통합 실패

실패 사례 둘의 원인이 다르다는 게 교훈이다. 하나는 무엇을 하려는지가 흐렸고, 하나는 방향은 맞았는데 현장 업무와 붙지 못했다.

AX — AI Transformation

기업의 체질·문화·프로세스 전체를 AI 중심으로 재정의하는 것이다. 지능화 → 자율화 → 진화.

제조 영역AX 적용
예지보전고장 징후를 사전 포착
지능형 품질 검사컴퓨터 비전으로 검출력 향상
공정 최적화·제어최적의 수율을 내는 파라미터 값을 자동 제어
공급망 관리정확한 수요 예측으로 재고 비용을 획기적으로 절감

DX 와 AX 의 관계는 이렇게 정리됐다.

DX 는 AX 의 필수불가결한 전제조건이다. DX 는 AX 의 토대이며, AX 는 DX 의 가속기다. 진화와 성숙의 관점으로 접근해야 한다.

데이터가 없는데 AI 를 얹을 수는 없으니 당연한 말이지만, 실제로는 순서를 건너뛰려는 시도가 많다는 뜻으로 읽었다.

AI-Enabled기존 레거시 인프라와 워크플로우에 특정 기능 AI 를 덧붙인(Bolt-on) 형태
AI-Native기획 단계부터 AI 가 시스템의 핵심 커널(Core Kernel) 로서 역할

제조데이터

제품수명주기 전반에서 생성되는 모든 형태의 디지털 정보로, 효율적인 제품 개발·생산을 가능하게 하는 원동력이자 핵심 자원이다.

분석 절차는 정해져 있다.

문제정의 → 데이터수집 → 전처리 → 모델링 → 검증 → 분석 → 적용

여기서 인상적인 통계 하나 — AI 프로젝트의 87%가 PoC 단계에서 실패한다. 초기 테스트 단계에서 실제 생산환경의 복잡성을 충분히 고려하지 못한 결과다. 전체적인 생산 프로세스를 이해하는 것이 필수라는 결론이 붙는다.

4M1E

제조 현장의 데이터를 이 틀로 분류한다.

데이터
사람 Man숙련도, 교육 이수현황, 경험, 작업시간, 건강상태, 피로도, 작업 실수 기록
기계 Machine가동률, 고장빈도, 유지보수 기록, 설비성능지표, 센서 실시간 상태(온도·압력·진동)
재료 Material입고 시 품질검사 결과, LOT 추적정보, 재고수준, 공급업체정보, 재료 특성
방법 Method표준작업 절차 준수율, 공정 매개변수 설정값, 작업방법 변경이력, 공정 최적조건
환경 Environment작업장 온도, 습도, 조명수준, 청정도, 소음

불량의 원인을 찾을 때 이 다섯을 순서대로 훑으면 빠뜨리는 것이 줄어든다.

정형 · 반정형 · 비정형

정의
정형사전 정의된 데이터 모델과 엄격한 스키마를 따른다. DBMS, SQL 의 SELECT/INSERT/UPDATE/DELETE
반정형고정 스키마는 없지만 데이터 내부에 구조를 설명하는 메타데이터·태그·마커가 있어 기계적 해석(파싱)이 가능하다. JSON, XML, HTML
비정형사전 정의나 스키마가 전혀 없는 ‘날것(Raw)’ Data Lake 나 Object Storage 에 원본 그대로 저장

파싱(Parsing) 은 입력된 문자열을 문법 규칙에 따라 구조적으로 분석하는 과정이고, 그걸 수행하는 프로그램이 파서다.

강의에서 인용한 두 마디.

  • 마윈 — 전체 데이터 중 비정형이 80%를 차지하며, 그중 32%가 전자문서, 25%가 소셜 인터랙션, 23%가 IoT 수집 데이터다
  • 스노우플레이크 — AI 로 가속화하는 혁신 속도를 따라잡으려면 비정형데이터에 숨겨진 가치를 끌어낼 수 있어야 한다

수집·활용 목적은 셋이다 — 생산성 향상, 품질 향상, 원가절감·비용 최적화. 그 끝에 DX 와 AX 를 통한 지능형 공장이 있다.

데이터 유형별 접근

오디오 — 산업용 소음과 이상 진단

베테랑이 소리로 고장을 알아채는 그 능력을 옮기는 것이다.

변환
스펙트로그램Short-Time Fourier Transform 으로 시간-주파수 표현을 만든다
Mel-Scale / Log-Mel인간의 귀가 고주파보다 저주파 변화에 민감하다는 점을 반영한 필터뱅크 적용

소리를 그림으로 바꾸면 그 다음은 CNN 문제가 된다. 이 변환 하나가 오디오 이상탐지를 영상 문제로 바꿔 놓는다.

MIMII (Malfunctioning Industrial Machine Investigation and Inspection) — 대규모 산업용 소음 데이터셋. 펌프·밸브·팬·슬라이드레일 4종의 실데이터로, 정상음·이상음·배경 소음으로 구성된다.

이미지 — 컴퓨터 비전과 표면 결함 검사

인간의 시각 정보를 대체하는 기술로, 제조 AI 분야에서 가장 성숙하고 널리 도입된 기술이다. 분류, 객체탐지, 세그멘테이션, 이상탐지로 나뉜다.

MVTec AD — 산업용 이상 탐지 데이터셋. 객체 카테고리(구조적 변형, 부품 누락)와 텍스처 카테고리(패턴 깨짐, 오염)로 나뉜다.

시계열 — 시간에 따른 변화의 맥락

연속적인 수치의 흐름으로, 시간 축 위에 펼쳐진 전후 맥락과 패턴을 가진다.

CWRU Bearing Dataset — 베어링 고장 진단 데이터셋. 진동 신호로 정상, 내륜 결함, 외륜 결함, 전동체 결함을 분류한다.

오픈 데이터셋으로는 AI Hub 와 KAMP 을 쓴다.

데이터 획득의 4단계

텍스트·이미지·영상·오디오 모두 같은 틀을 따른다.

단계
원시데이터 수집원문·촬영·녹음으로 확보. 법적·윤리적 요건을 사전 검토
데이터 정제AI 학습에 필요한 형식·크기로 조정, 중복 제거, 개인정보 비식별화 → 원천데이터 확보
데이터 가공원천데이터에 정답(Ground Truth)과 주석을 부여 → 학습데이터 전환
데이터 학습사전학습으로 일반 능력을 습득한 뒤 데이터 증강·최적화·미세조정으로 성능 향상

계획은 항상 수집 방식 – 포맷 – 수집처/장비 – 원시데이터 정보 순으로 세운다. 학습은 임무 정의 – 사례 비교 분석 – 모델 후보 선정 – 품질 지표 선택 – 최적 모델 선정 순이다.

정제 시 점검 항목이 유형마다 다르다.

유형점검
텍스트불필요한 철자, 맞춤법, 목적 관련성, 문장부호, AI 생성문장 검토
이미지해상도, 중복, 노이즈, 편향, 포맷, 개인정보, 저작권
영상해상도, 프레임 손상, 잡음, 길이, 불필요한 장면, 개인정보, 저작권
오디오음량, 발음, 잡음, 잘림, 안 들림, 개인정보, 저작권

원천데이터는 출처와 원본의 형태를 최대한 보존한다는 원칙이 반복해서 나온다. 정제와 가공은 사본에서 한다는 뜻이다.

오디오는 규칙이 하나 더 붙는다 — 표준 발성에서 벗어나거나 같은 전사에 두 가지 이상 발음이 가능하면 한국전자통신연구원(ETRI)의 규칙을 준수해 일관성과 정확성을 확보한다.

표준과 RAMI 4.0

표준 — 특정 목적을 위해 제품·서비스·시스템·프로세스의 기술적 요구사항을 규정한 일련의 규칙·가이드라인·사양.

구분기관
국제ISO, IEC
지역APT, ETSI
한국TTA
사설기업 간 연합

RAMI 4.0 — 독일 Plattform Industrie 4.0 연합과 ZVEI, VDI/VDE 가 개발한 Industry 4.0 참조 아키텍처 모델이다. 독일 국가표준 DIN SPEC 91345, IEC/PAS 63088 로 제정됐다.

왜 필요한가 — 인더스트리 3.0 은 물리 장비에 종속된 고립된 수직 통신 체계였다. 4.0 은 이기종 시스템 간 데이터 교환이 전제다. 그러려면 동일한 용어로 소통할 거시적 표준 지도가 있어야 한다.

축
x축 제품 수명주기아이디어 → 설계 → 생산 → 유지보수 → 폐기의 시간적 흐름. AAS(Asset Administration Shell)
y축 수직적 통합전통적 자동화 피라미드(ISA-95)를 확장. 공장 바닥의 제품부터 제어기기·엣지 컴퓨팅·엔터프라이즈·클라우드까지

OPC UA

Open Platform Communications Unified Architecture — 설비와 시스템이 공통으로 사용하는 표준 언어이자 국제 통신 프로토콜이다.

Foundation Layer 가 시스템 간 연결과 데이터 교환 규칙을 정의하고, 그 위에 Information Models 로 실제 공장 운영에 필요한 네 가지 핵심 기능을 구현한다.

통신 방식
클라이언트-서버전통적인 1:1 통신
PubSubPublisher–Subscriber 방식
# opc_server.py 서버 구동  ↔  opc_client.py 클라이언트 접속

네 가지 핵심 기능

이름하는 일
DAData Access현재의 온도·압력 등 실시간 센서값을 읽고 쓴다
HAHistorical Access저장된 과거 데이터를 기간 조건(Start~End) 으로 조회해 트렌드 분석에 활용
ACAlarms & Conditions특정 조건(온도 80도 초과) 충족 시 클라이언트로 비동기 push
ProgPrograms클라이언트가 서버(설비)의 특정 함수를 실행하도록 명령 (설비 리셋, 긴급 정지)

읽기(DA)·과거 조회(HA)·알림(AC)·명령(Prog) 네 가지면 공장에서 필요한 통신은 거의 다 된다는 것이 이 구조의 요점이다.

데이터 품질 절차는 이렇다.

데이터획득 → 데이터정제 → 데이터라벨링 → 품질검증

품질검증에서 의도적 결함을 주입해 확인한다. 유일성·완전성·유효성·일관성·정확성의 다섯 항목을 정제 전후로 비교한다.

실습 — 이상 탐지와 결함 검출

전처리에서 지킨 것들

train_test_split(..., stratify=y)     # 층화 추출로 데이터 분리 시 비율 유지
  • 식별자 제거 — ID 는 학습에 넣지 않는다
  • 비학습 대상 데이터 제거 — 누수 차단
  • 층화 추출 — 분리 시 클래스 비율 유지
  • 신경망 기본 규격 맞춤 — .unsqueeze(1) 로 출력과 정답의 차원을 정확히 일치시킨다. 안 맞으면 브로드캐스팅 오류로 손실 계산이 엉뚱하게 된다
  • 미니배치 구성 — WeightedRandomSampler 로 희소한 고장 데이터가 더 높은 확률로 중복 추출되도록 설정

마지막 항목이 제조 데이터의 현실을 보여 준다. 불량은 원래 드물다. 배치를 그냥 뽑으면 배치 하나에 불량이 한 개도 안 들어가는 일이 생긴다.

심층 신경망

선형 연산 사이에 비선형 활성화 함수와 정규화·규제 기법을 촘촘히 엮어 낸 은닉 2층 구조다.

self.network = nn.Sequential(
    nn.Linear(input_dim, 32),
    nn.ReLU(),
    nn.BatchNorm1d(32),
    nn.Dropout(0.3),
    nn.Linear(32, 16),
    nn.ReLU(),
    nn.BatchNorm1d(16),
    nn.Dropout(0.3),
    nn.Linear(16, 1),
)

Linear → ReLU → BatchNorm → Dropout 이 한 블록이고, 이걸 반복한다.

평가와 배포

과적합 — 모델이 훈련 데이터에 너무 과하게 맞춰져 새로운 데이터에 대한 예측 능력이 떨어지는 현상. 훈련 데이터의 본질적 패턴뿐 아니라 무작위 노이즈까지 학습해 버린 상태다.

Train(훈련) = 연습문제 · Validation(검증) = 모의고사 · Test(테스트) = 실전평가

Accuracy=TP+TNTP+FP+FN+TN,Precision=TPTP+FP,Recall=TPTP+FN\text{Accuracy} = \frac{TP+TN}{TP+FP+FN+TN}, \quad \text{Precision} = \frac{TP}{TP+FP}, \quad \text{Recall} = \frac{TP}{TP+FN}

제조 현장의 언어로 옮긴 주석이 좋았다.

  • Precision = 1 − 과검 — 예측 양성 중 진짜 양성. 낮으면 멀쩡한 걸 불량이라고 잡아낸다
  • Recall = 1 − 유출 — 실제 양성 중 잡아낸 것. 낮으면 불량이 고객에게 나간다

배포에서 강조된 것 하나 — 모델 가중치와 전처리 스케일러는 동시에 저장된 패키지로 배포되어야 한다. 완전히 동일한 기준이 아니면 정상적인 추론이 불가능하기 때문이다. API 및 서비스화의 기초다.

실험 모니터링은 TensorBoard 로 한다.

CNN 으로 결함 검출

CNN 이 필요한 이유는 패턴인식 쪽과 같다 — 지역 상관성, 지역 균질성, 계층적 구조. MLP 는 파라미터가 폭발하고 Flatten 하면서 공간 구조를 잃는다.

train_loader = DataLoader(train_dataset, batch_size=4, shuffle=True)
images, labels = next(iter(train_loader))

img = images[i].permute(1, 2, 0).numpy()

PyTorch 는 (채널, 세로, 가로), Matplotlib 는 (세로, 가로, 채널) 이다. permute(1,2,0) 으로 축 순서를 바꿔야 그림이 제대로 뜬다. 이걸 빼먹으면 시각화가 엉망이 된다.

class SimpleCNN(nn.Module):
    def __init__(self):
        super(SimpleCNN, self).__init__()
        # 특징 추출기
        self.conv_layers = nn.Sequential(
            nn.Conv2d(3, 32, kernel_size=3, padding=1),
            nn.ReLU(),
            nn.MaxPool2d(kernel_size=2, stride=2),    # 채널 유지, 가로세로 1/2
            nn.Conv2d(32, 64, kernel_size=3, padding=1),
            nn.ReLU(),
            nn.MaxPool2d(kernel_size=2, stride=2),
        )   # (3,256,256) → (64,64,64)

        # 분류기
        self.fc_layers = nn.Sequential(
            nn.Flatten(),
            nn.Linear(64 * 64 * 64, 128),
            nn.ReLU(),
            nn.Dropout(0.5),                          # 뉴런 50% 를 무작위로 끈다
            nn.Linear(128, 2),                        # 출력층을 클래스 수에 맞춘다
        )

    def forward(self, x):
        x = self.conv_layers(x)
        x = self.fc_layers(x)
        return x

출력 크기 계산을 손으로 해 두면 Flatten 뒤의 차원을 틀리지 않는다.

O=I−F+2PS+1O = \frac{I - F + 2P}{S} + 1

64×64 입력에 3×3 커널, 패딩 0, 스트라이드 1이면 (64−3+0)/1+1=62(64-3+0)/1 + 1 = 62 다.

평가 단계에서는 두 줄이 필수다.

model.eval()              # Dropout 등을 끄고 100% 성능으로 평가
with torch.no_grad():     # 기울기 계산 off — 속도와 메모리 절약

Softmax 로 로짓을 0~1 확률로 바꾸고, torch.max 로 정상/불량 중 확률이 높은 쪽의 인덱스를 최종 예측으로 고른다. 정답·예측·확률을 리스트에 extend 로 모아 두었다가 classification_report 로 채점한다. ROC curve 는 판단 기준이 변할 때의 성능을 보여 주고 (yy = TPR, xx = FPR), AUC 는 그 아래 면적이다.

Grad-CAM — 판정 근거 보기

“이 제품은 98% 확률로 불량입니다”에서 끝나지 않고, AI 가 이미지의 어느 부분을 보고 그렇게 판단했는지 추적한다.

Hook저장하는 것
register_forward_hook이미지가 층을 통과할 때 만들어지는 특징 맵 — 어떤 패턴을 찾았는지
register_backward_hook정답을 역추적할 때의 기울기 — 어떤 패턴이 결정적이었는지

CNN 의 특정 층에 도청 장치를 달아 놓는 것이라는 설명이 정확하다. 추출한 시선 데이터에 OpenCV 로 열화상 카메라처럼 색을 입혀 원본 사진과 겹치면 판정 근거를 눈으로 확인할 수 있다.

품질 검사에서 이건 선택이 아니다. 왜 불량이라 판단했는지 설명하지 못하면 현장에서 받아들여지지 않는다.

오토인코더로 비지도 이상 탐지

MVTec AD 는 구조 자체가 비지도 학습용이다 — 정상만 학습셋에 넣고, 테스트셋에 다양한 불량을 포함시킨다. 픽셀 단위 마스크로 결함의 정확한 위치와 모양까지 제공하며, 스크래치·오염·찌그러짐·부러짐 등 실제 결함 유형이 들어 있다.

합성곱 오토인코더(CAE)

단계하는 일
인코더공간 차원(가로·세로)을 줄이면서 채널 차원을 늘린다. Conv + Pooling 반복
잠재공간 Bottleneck고차원 원본이 저차원으로 압축된 상태
디코더압축된 잠재벡터를 원본 크기로 복원. 업샘플링, 전치합성곱 반복
class ConvAutoencoder(nn.Module):
    def __init__(self):
        super(ConvAutoencoder, self).__init__()
        self.encoder = nn.Sequential(
            nn.Conv2d(3, 16, 3, stride=2, padding=1), nn.ReLU(),
            nn.Conv2d(16, 32, 3, stride=2, padding=1), nn.ReLU(),
            nn.Conv2d(32, 64, 3, stride=2, padding=1), nn.ReLU(),
        )
        self.decoder = nn.Sequential(
            nn.ConvTranspose2d(64, 32, 3, stride=2, padding=1, output_padding=1), nn.ReLU(),
            nn.ConvTranspose2d(32, 16, 3, stride=2, padding=1, output_padding=1), nn.ReLU(),
            nn.ConvTranspose2d(16, 3, 3, stride=2, padding=1, output_padding=1), nn.Sigmoid(),
        )

    def forward(self, x):
        return self.decoder(self.encoder(x))

채널이 3 → 16 → 32 → 64 로 갔다가 64 → 32 → 16 → 3 으로 되돌아오는 대칭 구조다. 마지막이 Sigmoid 인 이유는 출력이 0~1 로 정규화된 이미지이기 때문이다.

정상만 배웠으니 정상은 잘 복원하고 이상은 못 복원한다. 재구성 오차가 큰 곳이 곧 결함 위치다. 불량 샘플을 모으기 어려운 제조 현장에 딱 맞는 접근이다.

시계열 이상 탐지에는 LSTM 을 쓴다 — 시계열 데이터를 다루는 데 최적화된 순환신경망이다.

마지막 문장

강의 슬라이드에 이런 순서로 적혀 있었다.

LLM → Physical AI 무인 아닌 자율

언어 모델에서 물리 세계로 넘어간다는 것, 그리고 그 목표가 사람을 없애는 게 아니라는 것. Industry 5.0 이 인간 중심을 내건 이유와 같은 자리에 놓인 말이다.

표시는 이 브라우저에만 남는다. 서버로 가는 것은 없다.