Convolution Neural Network(CNN)이란 무엇인가요?
CNN은 일반 신경망을 한 단계 발전시킨 형태라고 볼 수 있습니다. Convolution(합성곱) 연산을 활용해 이미지의 공간적 특징을 효과적으로 유지하면서도, Fully Connected Neural Network에 비해 연산량을 크게 줄였습니다. 덕분에 효율성과 성능을 동시에 잡은 기술로 평가받고 있어요.
컴퓨터가 이미지를 어떻게 처리하는지 알아보면 CNN의 필요성이 더 분명해집니다. 컴퓨터는 이미지를 단순히 숫자의 배열로 인식합니다. 예를 들어, 흑백 이미지는 픽셀의 밝기를 나타내는 2차원 배열로, 컬러 이미지는 빨강, 초록, 파랑(RGB)의 강도를 담은 3차원 배열로 표현되죠. CNN은 이런 원시 데이터에서 의미 있는 패턴을 스스로 찾아내고 학습할 수 있도록 설계된 똑똑한 구조입니다.
CNN의 주요 활용 분야
이미지 분류
- 소셜 미디어에서 사진에 태그를 자동으로 붙이는 기능
- 의료 영상 분석을 통해 질병을 진단하는 시스템
객체 검출
- 자율주행 차량에서 보행자를 감지하는 기술
- 보안 카메라로 침입자를 탐지하는 용도
이미지 생성 및 변환
- 흑백 사진을 컬러로 바꾸는 작업
- 저해상도 이미지를 고해상도로 업스케일링하거나 보정
이 외에도 의료, 엔터테인먼트 등 다양한 분야에서 CNN이 활약하고 있습니다. 활용 범위가 정말 넓죠!
CNN의 탄생과 발전 과정
1950-60년대: 신경과학에서 얻은 영감
CNN의 기원은 1959년으로 거슬러 올라갑니다. David Hubel과 Torsten Wiesel이 고양이의 시각 피질을 연구하며 뉴런의 작동 방식을 밝혀냈는데, 이 발견이 CNN의 토대가 되었어요.
Local Receptive Field의 발견
뉴런은 시야 전체를 한꺼번에 처리하지 않고, 특정 작은 영역(수용 영역)에만 반응한다는 점이 드러났습니다. 이 영역들이 서로 겹치며 전체 시야를 커버하는 구조가 흥미롭죠.
계층적 정보 처리
- Simple Cell: 직선 같은 단순한 패턴을 감지
- Complex Cell: 더 넓은 범위에서 복잡한 패턴을 인식
1970-80년대: 신경망의 기초 다지기
1979년 Kunihiko Fukushima는 이 아이디어를 바탕으로 Neocognitron을 개발했습니다. 여기서 CNN의 핵심 요소인 Convolutional Layer(특징 추출 층)와 Downsampling Layer(정보 압축 층)이 처음 등장했어요.
1989-1990년대: LeNet의 탄생
Yann LeCun과 그의 팀이 만든 LeNet-5는 CNN을 실용화한 첫 사례입니다. 우편번호 인식에 성공적으로 적용되며, 합성곱 층, 풀링 층, 완전 연결 층으로 이어지는 현대 CNN의 표준 구조를 확립했죠.
이미지 데이터의 구조
컴퓨터가 이미지를 다루려면 시각 정보를 숫자로 변환해야 합니다
픽셀과 채널
- 흑백 이미지: 2차원 배열 (가로 × 세로)
- 각 픽셀은 0(검정)에서 255(흰색) 사이의 값을 가짐
- 컬러 이미지: 3차원 배열 (가로 × 세로 × 채널)
- Red 채널: 빨간색 강도 (0-255)
- Green 채널: 초록색 강도 (0-255)
- Blue 채널: 파란색 강도 (0-255)
채널의 역할
채널은 이미지의 서로 다른 속성을 나타냅니다
- 흑백 이미지: 1채널 (밝기)
- RGB 이미지: 3채널 (빨강, 초록, 파랑)
- RGBA 이미지: 4채널 (RGB + 투명도)
2012년: AlexNet의 혁신
2012년, Alex Krizhevsky, Ilya Sutskever, Geoffrey Hinton이 개발한 AlexNet은 CNN의 전환점을 만들었어요. ImageNet 대회에서 압도적인 성능을 보여주며 주목받았습니다
- GPU를 활용한 대규모 학습
- ReLU 활성화 함수 도입
- Dropout으로 과적합 방지
- 데이터 증강 기법 활용
2014년 이후: 더욱 깊고 효율적으로
AlexNet의 성공 이후 CNN은 빠르게 발전했습니다
- 2014년: VGGNet이 더 깊은 네트워크 구조 제시
- 2014년: GoogLeNet(Inception)이 효율적인 설계 도입
- 2015년: ResNet이 잔차 학습으로 초심층 네트워크 구현
- 2017년 이후: MobileNet, EfficientNet 등 가볍고 강력한 모델 출현
저는 이제 개념 정리 및 코드로 찾아뵙겠습니다!
Reference
Convolutional Neural Networks Explained
Understanding the receptive field of deep convolutional networks
GeeksforGeeks