합성곱 신경망 · CNN
Convolutional Neural Network
합성곱 신경망이란?
- 이미지의 지역 특징을 단계적으로 잡음
- 선→형태→물체로 쌓아 인식
- 컴퓨터 비전의 주역
CNN이 바꾼 것은 '특징을 누가 만드는가'입니다. 이전에는 엔지니어가 모서리 방향이나 밝기 변화를 재는 수식을 손으로 설계했고, 제품이 바뀌면 그 수식을 처음부터 다시 짰습니다. CNN은 그 수식에 해당하는 필터 값 자체를 학습 대상으로 돌려놓았습니다. 그래서 현장이 바뀌면 코드가 아니라 데이터를 갈아 끼우는 방식으로 일의 성격이 옮겨갔고, 개발의 병목은 알고리즘이 아니라 라벨이 붙은 이미지 확보가 되었습니다. 실무에서는 이 차이가 '알고리즘 개발 6개월'과 '데이터 수집 6주'의 차이로 나타납니다.
구조는 대개 합성곱층, 풀링층, 판정을 맡는 완전연결층으로 나뉩니다. 3×3 크기의 필터 하나가 이미지 전체를 훑기 때문에 같은 규모의 완전연결 신경망보다 학습할 값이 수백 분의 1로 줄고, 대상이 사진 왼쪽에 있든 오른쪽에 있든 같은 필터가 반응합니다. 현업에서 밑바닥부터 학습시키는 경우는 드뭅니다. ImageNet 120만 장으로 미리 학습된 모델을 가져와 뒷단만 다시 훈련하는 전이학습이 기본이고, 사내 이미지가 수천 장이면 대개 이 방식으로 충분합니다. 최근 비전 트랜스포머(ViT)가 대형 데이터셋에서 앞서지만, 수천 장 규모의 사내 데이터에서는 여전히 CNN이 안정적입니다.
가장 흔한 사고는 검증 정확도만 보고 라인에 올리는 것입니다. 불량률 1%인 공정에서는 전부 양품이라고 찍어도 정확도 99%가 나오므로, 실제로 봐야 할 숫자는 미검출을 걸러내는 재현율입니다. 또 CNN은 위치 변화에는 어느 정도 강하지만 회전·확대·조명 색온도 변화에는 자동으로 강해지지 않아, 야간 조명으로 바꾼 뒤 검출률이 급락하는 일이 흔합니다. 같은 제품을 찍은 연속 프레임이 학습셋과 검증셋에 나뉘어 들어가면 실제보다 훨씬 높은 점수가 찍히는 데이터 누수가 생겨, 라인 투입 뒤에야 진짜 성능이 드러납니다. 판단 근거를 볼 수 없다는 오해도 많은데, Grad-CAM 같은 도구로 모델이 어느 부위를 보고 불량이라 했는지 열 지도로 확인할 수 있습니다.
1989년 얀 르쿤(Yann LeCun)의 연구로 기틀이 잡혔고, 2012년 알렉스넷의 대회 우승으로 딥러닝 시대를 열었습니다.
가상의 사례로 살펴보겠습니다. 임직원 240명, 연매출 780억 원의 자동차 사출부품 A사는 외관 검사를 검사원 6명이 육안으로 해 왔습니다. 하루 3만 개를 눈으로 걸러내다 보니 스크래치 유출로 고객사 클레임이 연 4건 발생했고, 한 건당 전수 선별 비용만 2천만 원이 나갔습니다. 품질팀은 CNN 외관 검사 도입을 3개월 과제로 올렸습니다.
- 품질팀 이 부장이 3년치 검사 기록을 뒤졌지만, 라벨이 붙은 실제 불량 이미지는 1,200장뿐이었습니다. 양품 사진은 28만 장이었습니다.
- 생산기술 김 과장은 학습보다 촬영 지그가 먼저라고 했습니다. "조명 각도가 매일 다른데 뭘 학습합니까"라며 2주간 조도와 거리를 고정했습니다.
- 외부 업체가 사전학습된 ResNet-50에 불량 1,200장을 회전·밝기 증강으로 9,600장까지 늘려 미세조정했고, 3주 만에 검증 정확도 97%가 나왔습니다.
- 보고 자리에서 대표이사가 "놓친 불량은 몇 개냐"고 물었고, 미검출 18건이 드러났습니다. 재현율 기준으로 판정 임계값을 낮춰 과검을 감수하기로 했습니다.
- 6개월 뒤 유출 클레임은 연 4건에서 0건이 됐고, 검사원 6명 중 4명은 재검·포장 공정으로 재배치됐습니다. 대신 과검 3.2%는 사람이 2차 확인합니다.