AI 기초
CNN(합성곱 신경망)이란 무엇인가?
A 합성곱 신경망(CNN)은 입력의 국부 영역에 걸쳐 학습된 필터를 사용하는 신경망 아키텍처입니다. CNN은 패턴이 어디에 나타나든 감지하고 이미지 전체에 동일한 파라미터를 재사용할 수 있기 때문에 현대 컴퓨터 비전의 기반이 되었습니다.
CNN은 이미지를 비수치형에서 수치형으로 변환하지 않습니다—이미지는 픽셀 값 텐서 형태로 이미 제공됩니다. CNN의 목적은 그 텐서를 분류, 검출, 세분화 또는 기타 작업에 유용한 특징 맵으로 변환하는 것입니다.
핵심 요점
- 합성곱은 학습된 커널과 로컬 입력 값을 결합하여 특징 맵을 생성합니다.
- 스트라이드, 패딩, 팽창, 그리고 풀링은 공간 해상도와 수용 영역을 제어합니다.
- 가중치 공유는 원시 픽셀에 대한 완전 연결 네트워크보다 CNN을 파라미터 효율적으로 만듭니다.
- 비전 트랜스포머는 대안이 될 수 있지만, CNN은 효율적이고 데이터가 제한된 시스템에서 여전히 강력합니다.

합성곱 작동 방식
커널은 학습 가능한 가중치가 배치된 작은 격자입니다. 각 위치에서 CNN은 커널 값을 해당 입력 값과 곱하고 결과를 합산하며 일반적으로 편향을 추가합니다. 이러한 과정을 입력 전체에 반복하면 특징 맵이 생성됩니다.
컬러 이미지의 경우 커널은 모든 입력 채널에 걸칩니다. 한 층은 여러 개의 커널을 사용해 여러 출력 채널을 만듭니다. 학습 중에는 역전파가 이러한 커널 가중치에 대한 그래디언트를 계산합니다; 합성곱 연산 자체가 각 이미지마다 새로운 고정 가중치 집합을 생성하는 것이 아닙니다.
스트라이드, 패딩 및 팽창
- 스트라이드는 커널이 이동하는 거리를 제어합니다. 1보다 큰 스트라이드는 공간 해상도를 낮춥니다.
- 패딩은 입력 주변에 값을 추가하여 경계 정보를 처리하고 출력 크기를 제어할 수 있게 합니다.
- 팽창은 커널 요소들을 떨어뜨려 배치함으로써 파라미터를 비례적으로 늘리지 않고 수용 영역을 확장합니다.
수용 영역은 유닛에 영향을 줄 수 있는 원본 입력의 영역을 말합니다. 합성곱을 층층이 쌓으면 수용 영역이 확대되어 이후 특징이 더 넓은 영역의 정보를 결합할 수 있게 됩니다.
활성화, 정규화 및 풀링
합성곱 층 뒤에는 일반적으로 비선형 활성화와 정규화가 따라옵니다. 풀링은 최대값이나 평균값과 같은 연산을 사용해 로컬 영역을 요약합니다. 학습된 스트라이드 합성곱도 다운샘플링에 사용할 수 있습니다.
풀링은 필수는 아닙니다. 많은 최신 네트워크는 큰 특징 맵을 완전 연결 스택으로 평탄화하는 대신 출력 근처에 전역 평균 풀링을 사용합니다. 이는 파라미터를 감소시키고 네트워크가 공간적 근거를 집계하도록 합니다.
현대 CNN 아키텍처
전형적인 비전 모델은 스템, 일련의 특징 블록, 다운샘플링 단계, 그리고 작업 헤드로 구성됩니다. 잔차 연결은 블록이 입력에 대한 변형을 학습하도록 하고 정보와 그래디언트가 직접 전달되는 경로를 제공합니다. 잔차 네트워크의 성공으로 훨씬 더 깊은 CNN을 학습시키는 것이 실용화되었습니다.
분류 헤드는 클래스 점수를 출력합니다. 검출 헤드는 카테고리와 박스를 예측합니다. 세분화 아키텍처는 공간 세부 정보를 복원하는 디코더 경로를 추가합니다. 동일한 CNN 백본은 전이 학습을 통해 재사용될 수 있습니다.
CNN 층이 학습하는 것
초기 필터가 가장자리나 텍스처에 반응하고, 이후 표현이 부분이나 객체와 연관되는 모습을 시각화하는 것이 일반적입니다. 이는 유용한 직관이지만 고정된 규칙은 아닙니다. 특징은 작업, 아키텍처, 데이터, 목표 및 학습 과정에 따라 달라지며, 일부 유닛은 인간 개념에 깔끔히 대응되지 않는 정보를 결합하기도 합니다.
CNN과 비전 트랜스포머 비교
비전 트랜스포머는 이미지를 패치로 나누고 어텐션을 사용해 패치 간 관계를 모델링합니다. 대규모 사전학습 데이터셋으로 효과적으로 확장할 수 있습니다. CNN은 지역성 및 변환 불변성 가정을 아키텍처에 직접 내장하므로 작은 환경에서도 더 효율적이고 데이터 활용도가 높을 수 있습니다.
많은 실용 시스템이 합성곱과 어텐션을 결합합니다. 적절한 아키텍처는 정확도, 지연 시간, 메모리, 학습 데이터, 하드웨어 및 배포 환경에 따라 결정되며, 어느 패밀리가 최신인지와는 무관합니다.
제한 사항 및 실무 고려사항
CNN은 데이터 분포 변화, 적대적 교란, 배경 지름길, 편향된 학습 데이터에 민감할 수 있습니다. 위치, 회전, 스케일 또는 시점에 대해 완전히 불변하지는 않습니다. 데이터 증강 및 아키텍처 선택이 견고성을 향상시킬 수 있지만 보장을 제공하지는 않습니다.
배포 시에는 종단-종단 지연 시간, 메모리, 처리량 및 서브그룹 동작을 측정해야 합니다. 양자화와 프루닝은 비용을 절감할 수 있으며, 특히 에지 AI에 유용하지만 압축된 모델은 재검증이 필요합니다.
합성곱, 수용 영역 및 현대 CNN 블록
합성곱 층은 학습된 커널을 격자 위로 슬라이드시키며 위치마다 가중치를 공유합니다. 커널 크기, 스트라이드, 팽창 및 패딩이 출력 형태와 수용 영역을 결정합니다. 초기 층은 종종 로컬 가장자리나 텍스처에 반응하고, 깊은 층은 더 큰 영역의 정보를 결합하지만 학습된 표현이 인간 개념에 깔끔히 대응할 필요는 없습니다. 풀링이나 스트라이드 합성곱은 공간 해상도를 낮춥니다. 채널은 특징 맵을 전달하고, 그룹 및 깊이별 분리 합성곱은 채널 간 혼합을 줄여 연산량을 낮춥니다. 잔차 연결은 매우 깊은 네트워크를 최적화하기 쉽게 만듭니다.
입력 높이와 너비에 대해 패딩은 경계 처리를, 스트라이드는 샘플링을 제어합니다. 과도한 다운샘플링은 작은 객체를 사라지게 할 수 있고, 제로 패딩은 가장자리 아티팩트를 만들 수 있습니다; 팽창은 같은 파라미터 증가 없이 컨텍스트를 확장하지만 그리드 현상을 초래할 수 있습니다. 배치 정규화는 학습 통계에 의존하며, 대안은 작은 배치 크기에서 더 나은 동작을 보일 수 있습니다. 최신 아키텍처는 병목, 다중 스케일 특징, 어텐션 또는 역잔차 구조를 결합합니다. 이미지 분류 정확도만이 아니라 작업 해상도, 메모리 대역폭, 지연 시간 및 목표 하드웨어를 기준으로 아키텍처를 선택하십시오.
학습, 해석 및 배포
라벨을 유지하고 실제 변화를 반영하는 데이터 증강을 사용하고, 증강 전에 피사체 또는 장면별로 데이터를 분할하십시오. 전이 학습은 일반적이며: 작업 헤드를 교체하고 학습한 뒤 백본을 조심스럽게 언프리징합니다. 클래스별 성능, 캘리브레이션, 흐림, 압축, 조명, 스케일, 크롭 및 적대적 교란에 대한 견고성을 평가합니다. 특징 맵 및 살리언시와 같은 시각화 방법은 지름길을 드러낼 수 있지만 방법과 기준에 민감합니다. 가설적 이미지, 가림 테스트 또는 데이터셋 변화를 통해 의심되는 의존성을 확인하십시오.
내보낸 CNN은 GPU, NPU, 브라우저 또는 마이크로컨트롤러용으로 융합, 양자화 또는 컴파일될 수 있습니다. 정확한 디바이스에서 전처리와 후처리를 포함한 배포된 그래프를 검증하십시오. 종단-종단 지연, 메모리, 에너지 및 열 동작을 측정합니다; 작은 모델에서는 입력 디코딩이 지배적일 수 있습니다. 카메라와 이미지 통계, 출력 분포 및 확인된 오류를 모니터링합니다. 서명된 모델 아티팩트, 보호된 업데이트 채널, 그리고 우아한 센서 장애 처리는 생산 설계의 일부입니다. CNN은 유용한 지역성 편향을 인코딩하지만 객체나 인과 장면을 자동으로 이해하지는 않습니다.
실제 예시: 검사 카메라에 CNN 배포
CNN은 고해상도 라인 스캔 이미지에서 표면 결함을 분류합니다. 엔지니어는 작은 결함이 다운샘플링에서도 살아남도록 겹침을 두고 이미지를 타일링하고, 검토를 위해 좌표를 보존하며, 실제 광학 변동에 대한 증강을 검증합니다. 잔차 CNN과 경량 깊이별 모델을 동일한 재현율로 비교합니다. 테스트에는 가장자리 결함, 눈부심, 압축, 움직임, 재료 배치, 카메라 교체가 포함되며, 최종 평가를 위해 독립적인 생산 로트를 예약합니다.
컴파일 단계에서 모델을 에지 가속기용으로 융합하고 양자화하지만, 배포된 그래프는 민감한 결함 사례에서 레퍼런스와 비교됩니다. 디코딩, 타일링, 추론 및 병합 지연 시간을 종단-종단으로 측정합니다. 시스템은 제품 결함과 별도로 죽은 픽셀과 노출 드리프트를 표시합니다. 운영자는 소스 타일을 검사하고 결과를 재정의할 수 있습니다. 모델 및 카메라 변경은 점진적으로 롤아웃되며, 비전 파이프라인이 사용할 수 없을 때도 라인은 안전한 수동 검사 절차를 유지합니다.
구현 증거 및 운영 준비성
생산 결정을 내리기 위해서는 성공적인 시연 이상의 것이 필요합니다. 의도된 사용자, 운영 환경, 입력, 출력, 의존성, 책임자 및 각 주요 실패의 결과를 정의하십시오. 튜닝 전에 재현 가능한 기준선과 버전 관리된 평가 세트를 구축합니다. 일반적인 경우, 경계 조건, 잘못된 또는 누락된 입력, 분포 변화, 의존성 중단, 오용, 그리고 소외될 가능성이 높은 그룹이나 환경을 테스트합니다. 작업 품질을 캘리브레이션 또는 불확실성, 지연 시간, 처리량, 자원 비용, 접근성, 프라이버시 및 보안과 함께 측정합니다. 모든 변환 및 임계값을 기록하여 독립적인 검토자가 결과를 재현하고 매력적인 프로토타입과 증거를 구분할 수 있게 합니다.
출시 전에 릴리스, 예외, 변경, 롤백 및 폐기에 대한 권한을 지정하십시오. 단계적 롤아웃을 사용하고 안전한 대체 방안을 유지하며, 고의로 삽입한 실패를 통해 모니터링을 검증합니다. 운영 텔레메트리는 불필요한 민감 데이터를 수집하지 않으면서 입력 품질, 출력 동작, 모델 또는 규칙 버전, 의존성 상태, 인간 재정의 및 확인된 결과를 보여줘야 합니다. 알림 임계값과 대응 담당자를 정의하고, 오프라인 성능이 지속될 것이라고 가정하지 말고 배포 후 실제 증거를 검토하십시오. 데이터 소스, 사용자, 모델, 벤더, 정책, 하드웨어 또는 목표가 변경될 때마다 재평가하십시오. 유지되는 시스템은 문서화된 복구, 사고 학습, 삭제 및 보존 절차, 그리고 비활성화 또는 교체 시점을 명확히 해야 합니다.
자주 묻는 질문
CNN은 항상 풀링이 필요합니까?
아니오. CNN은 스트라이드 합성곱으로 다운샘플링할 수 있으며, 밀집 예측을 위해 해상도를 유지할 수도 있습니다. 풀링은 필수 요구사항이 아니라 설계 도구 중 하나입니다.
CNN 필터는 수작업으로 설계되나요?
학습된 CNN에서는 커널 값이 일반적으로 데이터에서 학습됩니다. 이는 가장자리 검출과 같은 작업을 위해 사전에 계수를 선택하는 고전적인 비전 필터와 다릅니다.












