Convolutional Neural Network (CNN)
합성곱 신경망 (CNNs)이 현대 컴퓨터 비전을 구동하는 방식을 살펴보세요. 계층과 애플리케이션, 실시간 AI를 위해 Ultralytics YOLO26을 실행하는 방법을 알아보세요.
합성곱 신경망 (CNN)은 특히 디지털 이미지와 같이 격자형 토폴로지를 가진 데이터를 처리하도록 설계된 특수한 딥러닝 아키텍처입니다. 생물학적 시각 피질의 구조에서 영감을 받은 CNN은 입력 데이터 내의 공간적 관계를 보존하는 데 특히 뛰어납니다. 이미지를 긴 숫자 목록으로 평탄화하는 기존 신경망과 달리, CNN은 이미지의 작고 겹치는 영역을 분석하여 단순한 에지와 텍스처부터 복잡한 형태와 객체에 이르기까지 특징의 계층 구조를 자동으로 학습합니다. 이러한 능력 덕분에 CNN은 최신 컴퓨터 비전 (CV) 시스템의 기반 기술로 활용됩니다.
합성곱 신경망의 작동 방식#
CNN의 강점은 우수한 예측에 중요한 특징을 잃지 않으면서 복잡한 이미지를 더 쉽게 처리할 수 있는 형태로 변환하는 능력에 있습니다. 이는 입력 볼륨을 출력 클래스 또는 값으로 변환하는 여러 계층으로 구성된 파이프라인을 통해 구현됩니다.
- 합성곱 레이어: 핵심 구성 요소입니다. 손전등처럼 입력 이미지 위를 이동하는 학습 가능한 필터(또는 커널) 집합을 사용합니다. 각 위치에서 필터는 합성곱이라는 수학적 연산을 수행하여 수평선이나 색상 그래디언트와 같은 특정 패턴을 강조하는 피처 맵을 생성합니다.
- 활성화 함수: 합성곱 후 출력에 비선형 함수가 적용됩니다. 가장 일반적인 선택은 ReLU (Rectified Linear Unit)이며, 음수 픽셀 값을 0으로 변환합니다. 이를 통해 비선형성이 도입되고, 네트워크는 단순한 선형 관계를 넘어 복잡한 패턴을 학습할 수 있습니다.
- 풀링 레이어: 다운샘플링이라고도 하며, 피처 맵의 차원을 줄이는 레이어입니다. 최대 풀링과 같은 기법은 영역 내에서 가장 중요한 특징(가장 높은 값)만 유지하여 연산 부하를 줄이고 과적합을 방지하는 데 도움을 줍니다.
- 완전 연결 레이어: 마지막 단계에서는 처리된 특징을 평탄화하여 표준 신경망 (NN)에 입력합니다. 이 레이어는 이전 레이어에서 식별한 고수준 특징을 사용하여 "고양이" 또는 "개"와 같은 최종 분류나 예측을 수행합니다.
실제 적용 사례#
CNN은 인간을 뛰어넘는 정확도로 시각 작업을 자동화하여 산업을 변화시켰습니다.
- 의료 진단: 의료 분야에서 CNN은 의료 스캔의 이상 징후를 사람의 눈보다 빠르게 식별하여 방사선 전문의를 지원합니다. 예를 들어 딥러닝 모델은 MRI 및 CT 스캔을 분석하여 종양이나 골절의 초기 징후를 감지합니다. 방사선학 분야의 AI에 관한 연구는 이러한 도구가 진단의 일관성과 속도를 어떻게 향상시키는지 보여줍니다.
- 자율 시스템: 자율주행차는 주변 환경을 인식하기 위해 CNN에 크게 의존합니다. YOLO26과 같은 모델은 효율적인 CNN 백본을 활용하여 실시간 객체 감지를 수행하고, 보행자, 교통 표지판 및 다른 차량을 식별하여 순간적인 주행 결정을 내립니다.
CNN과 비전 Transformer (ViT) 비교#
CNN이 오랫동안 비전 작업의 표준으로 사용되어 왔지만, 비전 Transformer (ViT)라는 새로운 아키텍처가 등장했습니다.
- CNN은 로컬 특징을 사용하여 이미지를 처리하며, "귀납적 편향"(인접한 픽셀이 서로 관련되어 있다고 가정함) 덕분에 소규모 데이터셋에서 매우 효율적입니다. 엣지 디바이스에서 실시간 추론이 필요한 시나리오에서 뛰어난 성능을 발휘합니다.
- ViT는 이미지를 패치로 분할하고 전역 셀프 어텐션 메커니즘을 사용하여 처리합니다. 이를 통해 이미지 전반의 장거리 종속성을 포착할 수 있지만, 효과적으로 학습하려면 일반적으로 대규모 데이터셋과 더 많은 컴퓨팅 성능이 필요합니다.
구현 예시#
최신 라이브러리를 사용하면 CNN 기반 모델을 간편하게 사용할 수 있습니다. ultralytics 패키지는 빠른 추론을 위해 고도로 최적화된 CNN 아키텍처를 특징으로 하는 YOLO26과 같은 최첨단 모델에 대한 액세스를 제공합니다.
다음 예제에서는 사전 학습된 CNN 모델을 로드하고 예측을 실행하는 방법을 보여줍니다.
from ultralytics import YOLO
# Load a YOLO26 model, which uses an advanced CNN architecture
model = YOLO("yolo26n.pt")
# Run inference on an image to identify objects
results = model("https://ultralytics.com/images/bus.jpg")
# Display the prediction results
results[0].show()개발 도구#
CNN 개발은 강력한 오픈 소스 도구 생태계의 지원을 받습니다. 엔지니어는 일반적으로 PyTorch 또는 TensorFlow와 같은 프레임워크를 사용하여 사용자 지정 아키텍처를 구축합니다. 이러한 라이브러리는 합성곱 및 역전파에 필요한 저수준 텐서 연산을 제공합니다.
데이터 수집부터 배포까지 컴퓨터 비전 프로젝트의 수명 주기를 간소화하려는 팀을 위해 Ultralytics Platform은 종합적인 솔루션을 제공합니다. 이 플랫폼은 복잡한 워크플로를 간소화하여 개발자가 인프라 관리보다 비즈니스 문제 해결을 위한 CNN 적용에 집중할 수 있도록 합니다. 또한 모델을 ONNX 또는 TensorRT와 같은 형식으로 내보내 엣지 디바이스에 고성능으로 배포할 수 있습니다.









