컨벌루션 신경망(Convolutional Neural Network, CNN)은 주로 이미지 분석 및 컴퓨터 비전 작업에 사용되는 딥러닝 방식 중 하나이다.
특히 이미지 처리에 탁월한 성능을 보인다.
인공신경망의 기본 구조로 이미지를 분석하기 위해선 1차원 형태로의
변환(Flatten)이 필요하고 그에 따라 한계점이 발생했다.
1. 인접 정보의 소실
2. 이미지 크기가 커짐에 따라 모델의 크기가 기하급수적으로 증가
이로 인해 생체 신경망의 계층적 시각 정보 처리방식을 모방한 CNN이 탄생되었다.
뉴런은 아주 좁은 영역의 자극에 반응한다.
뉴런마다 각기 다른 모양의 특징을 인식하도록 뉴런의 역할이
나뉜다.
뉴런은 계층 구조를 이루며 시각 정보를 계층적으로 처리한다.
컨볼루션 신경망은 컨볼루션 계층과 서브샘플링 계층으로 이루어진다.
컨볼루션 계층과 서브샘플링 계층은 번갈아가며 반복되는 구조를 가진다.
각 필터(Filter) 마다 각기 다른 특징(Feature)을 산출할 수 있다.
필터가 이미지의 일부분에 적용되며 결과값을 계산하는 과정을
컨볼루션 연산이라고 한다.
필터는 3x3 행렬로 이루어져 있고, 9개의 인덱스 값을 전부 더해 가운데 칸에 넣는다.
컨볼루션 연산 결과로 만들어지는 이미지
컨볼루션 필터 개수 = 액티베이션 맵의 채널 수
데이터를 낮은 빈도로 뽑는 것을 의미한다.
풀링 연산은 액티베이션 맵에 있는 지나친 상세함을 줄여
중요 통계량을 추출 및 요약해준다.
컨볼루션 계층 사이에 적용하여 액티베이션 크기를
줄여 연산이 빨라진다.
맥스 풀링, 평균 풀링
컨볼루션 필터(kernel)를 이미지의 여러 위치에서 공유하여 모델의 학습 가능한 파라미터(parameter) 수를 줄이고 특징 추출을 향상시킨다.
+컨볼루션 필터는 희소 연결로서, 입력 데이터와 겹치는 영역에만 연결된다.(머신러닝 및 신경망에서는 연결 방식에 희소 연결과 완전 연결이 있다.)
이미지의 이동이 액티베이션 맵에도 동일하게 이동하는 것
컨볼루션 연산으로 추출된 특징값 자체는 같음
위치가 변동되더라도 같은 결과 값을 갖는 것