이 절에서는 컨볼루션 신경망의 핵심 연산인 컨볼루션의 우너리와 특성을 소개 , 컨볼루션 신경망이 어떻게 복잡한 컴퓨터 비전 문제를 푸는지에 대해 설명한다.
컨볼루션은 신호에서 특징을 추출하거나 신호를 변환하는 데 사용하는 연산으로 , 신호처리 , 영상처리 , 컴퓨터 비전 등에 널리 쓰인다.
1차원과 2차원 신호가 존재
커널의 크기는 3,5,7 과 같이 홀수를 사용하여 대칭을 이루게 한다.
2차원에서 ,
수직에너지를 추출하는 커널 ,
수평에너지를 추출하는 커널이 있다.
컨볼루션 층
컨볼루션 층을 구현하려면 몇 가지 아이디어를 추가로 고려해야한다 .
덧대기 - Padding 하여 크기를 유지한다. ( 0 or 이웃 화솟값 복사해 덧대기)
보폭 - stride : 입력 영상이 아주 큰 경우 영상 크기를 일부러 작게 줄일 필요가 있다. 일반적으로 보폭을 k로 설정하면 특징 맵의 크기는 1/k로 줄어든다.
바이어스 - 커널에는 바이어스가 있다.
그래서 , 컨볼루션층은 커널을 64-128개와 같이 아주 많이 사용하여 풍부한 특징 맵을 생성한다.
커널의 갯수 = 특징 맵의 갯수
폴링층
폴링은 특징 맵에 나타난 지나친 상세함을 줄여 요약 통계량을 추출한다.
주로 , 최대 풀링과 평균 풀링을 사용한다.
풀링층은 특징 맵에서 핵심을 추출해 성능을 높여주는 역할뿐 아니라 특징 맵의 크기를 줄여 메모리 효율과 계산 속도를 끌어올리는 효과가까지 제공한다.
예) LeNet-5
C는 컨볼루션 층 ,P는 풀링층 , FC 는 완전 연결층이다.
13232 에서 컨볼루션 층에서 55커널을 6개 사용하게 된다면 ,2828 크기의 특징 맵을 6개 추출한다면 , 62828 의 텐서를 출력한다.
이후 풀링층에서 , 22 커널을 보폭 2로 적용한다면 614*14의 텐서가 출력된다.
LeNet-5 은 전체적으로 C-P-C-P-C-FC-FC 층으로 구성된다.
더 나은 개발이 되길 바라며:)