공부자료/Deep Learning

합성곱 신경망 (1)

mogazi 2022. 9. 26. 00:21
  •   합성곱 신경망의 필요성(Convolutional Neural Network)

 

 

순전파 과정에 따라 계산된 오차 정보가 신경망의 모든 노드 (출력층 -> 은닉층 -> 입력층) 으로 전송된다.

이러한 계산과정은 복잡하고 많은 자원(CPU or GPU, 메모리) 를 요구한다. 

또한, 계산하는 데도 오래 걸리므로 합성곱 신경망이 필요하게 되었다.

 

 

 

 

합성곱 신경망은 이미지 전체를 한 번에 계산하는껏이아닌 이미지의 국소적 부분을 계산함으로써 

시간과 자원을 절약하여 이미지의 세밀한 부분까지 분석할 수 있는 신경망이다.

 

 

 

 

 

 

 

 

이미지 분석은 3×3 배열을 오른쪽 그림과 같이 펼쳐서(flattening) 각 픽셀에 가중치를 곱하여 은닉층으로 전달하게 된다. 

하지만 그림에서 보이는 것처럼 이미지를 펼쳐서 분석하면 데이터의 공간적 구조를 무시하게 되는데, 이것을 방지하려고 도입된 것이 합성곱층이다.

 

 

 

 

 

 

 

 

 

 

 

 

  • 구조

 

 

 

 

다차원 배열 데이터를 처리하도록 구성되어 컬러 이미지 같은 다차원 배열 처리에 특화되어 있으며, 다음과 같이 계층 다섯 개로 구성된다.

 

 

 

1. 입력층

2. 합성곱층

3. 풀링층

4. 완전연결층

5. 출력층

 

 

 

 

 

 

 

 

합성곱 신경망은 합성곱층과 풀링층을 거치면서 입력 이미지의 주요 특성 벡터(feature vector)를 추출한다. 

그 후, 추출된 주요 특성 벡터들은 완전연결층을 거치면서 1차원 벡터로 변환되며, 

마지막으로 출력층에서 활성화 함수인 소프트맥스(softmax) 함수를 사용하여 최종 결과가 출력된다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  입력층 (Input layer)

 

 

 

입력층은 입력 이미지 데이터가 최초로 거치게 되는 계층이다.

이미지는 단순 1차원의 데이터가 아닌 높이(height), 너비(width), 채널(channel)의 값을 갖는 3차원 데이터이다. 

이때 채널은 이미지가 그레이스케일(gray scale)이면 1 값을 가지며, 컬러(RGB)면 3 값을 갖는다. 

 

 

 

 

 

 

 

 

예를 들어 다음 그림과 같은 형태는 높이 4, 너비 4, 채널은 RGB를 갖고 있으므로, 이미지 형태(shape)는 (4, 4, 3)으로 표현할 수 있다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  합성곱층 (Convolutional layer) 

 

 

 

합성곱층은 입력 데이터에서 특성을 추출하는 역할을 수행한다.

입력 이미지가 들어왔을 때 이미지에 대한 특성을 감지하기 위해 커널(kernel)이나 필터를 사용한다. 

커널/필터는 이미지의 모든 영역을 훑으면서 특성을 추출하게 되는데, 이렇게 추출된 결과물이 특성 맵(feature map)이다.

 

 

 

이때 커널은 3×3, 5×5 크기로 적용되는 것이 일반적이며, 스트라이드(stride)라는 지정된 간격에 따라 순차적으로 이동한다.

다음은 스트라이드가 1일 때 이동하는 과정이다.

 

 

* 스트라이드 : 필터를 적용하는 위치의 간격

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

그레이스케일 이미지의 합성곱

 

 

 

 

1단계. 입력 이미지에 3×3 필터 적용

 

 

 

입력 이미지와 필터를 포개 놓고 대응되는 숫자끼리 곱한 후 모두 더한다.

(1×1) + (0×0) + (0×1) + (0×0) + (1×1) + (0×0) + (0×1) + (0×0) + (1×1) = 3

 

 

 

 

 

 

 

 

 

2단계. 필터가 1만큼 이동

 

 

 

(0×1) + (0×0) + (0×1) + (1×0) + (0×1) + (0×0) + (0×1) + (1×0) + (1×1) = 1

 

 

 

 

 

 

 

 

 

 

 

3단계. 필터가 1만큼 두 번째 이동

 

 

(0×1) + (0×0) + (0×1) + (0×0) + (0×1) + (1×0) + (1×1) + (1×0) + (0×1) = 1

 

 

 

 

 

 

 

 

 

4단계 . 필터가 1만큼 마지막으로 이동

 

 

(0×1) + (1×0) + (0×1) + (0×0) + (1×1) + (0×0) + (0×1) + (1×0) + (0×1) = 1

 

 

 

 

 

 

 

 

 

결론) 앞의 그림에서는 이미지 크기가 (6, 6, 1)이며, 3×3 크기의 커널/필터가 스트라이드 1 간격으로 이동하면서 합성곱 연산을 수행하는 것을 보여준다. 

 

 

커널은 스트라이드의 상호 작용으로 원본 (6, 6, 1) 크기가 (4, 4, 1) 크기의 특성 맵으로 줄어들었다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

컬러 이미지의 합성곱

 

 

 

앞서 다룬 그레이스케일 이미지와 구분되는 특징은 첫째, 필터 채널이 3이라는 것,

둘째, RGB 각각에 서로 다른 가중치로 합성곱을 적용한 후 결과를 더해 준다는 것이다.

 

 

그 외 스트라이드 및 연산하는 방법은 동일하다. 

 

 

 

 

 

 

 

 

 

이 때 필터 채널이 3이라고 해서 필터 개수도 세 개라고 오해하기 쉬운데, 실제로는 필터 개수가 한 개라는 점에 주의.

 

 

 

 

 

필터가 두 개 이상이면 과 필터 각각은 특성 추출 결과의 채널이 된다. 

 

특성의 색상은 필터의 색상을 그대로 물려받음.

 

 

 

 

 

 

 

 

 

 

 

 

  합성곱층 요약