본문 바로가기
인공지능

Convolutional neural network(CNN)

by 이융정 2023. 11. 9.

합성곱 신경망은 이미지 인식과 음성 인식 등에 사용된다.

 

CNN 전체 구조
  • 새롭게 등장하는 개념 : 합성곱 계층, 풀링 계층
지금까지의 신경망
인접하는 계층의 모든 뉴런과 결합되어 있었다 => 완전연결
이렇게 완전히 연결된 계층은 Affine 계층이란 이름으로 구현함

 

완전연결 계층으로 이루어진 네트워크 예

완전 연결 신경망은 Affine 계층 뒤에 활성화 함수를 갖는 ReLU 계층 (or Sigmoid 계층)이 이어진다.

위 그림에서는 Affine-ReLU 조합이 2층이 쌓였고 마지막 3번째 층은 Affine 계층에 이어 소프트맥지 계층에서 최종결과를 출력한다.

 

CNN으로 이뤄진 네트워크 예

CNN은 새롭게 합성곱 계층과 풀링 계층이 추가된다.

CNN 계층은 Conv-ReLU-(Pooling) 흐름으로 연결된다. ( 풀림 계층은 생략될 수 있음)

CNN 계층은 가까운 층에서는 Affine-ReLU 계층 구성을 사용할 수 있다.

마지막 출력 계층에서는 Affine-softmax 조합을 그대로 사용한다.


합성곱 계층

 CNN에서는 패딩, 스트라이트 등 CNN 고유의 용어가 등장한다.

각 계층은 3차원 데이터와 같이 입체적인 데이터가 흐른다. (완전연결 신경망과 다른점!)

 

완전연결 계층의 문제점 
3차원데이터를 평평한 1차원 데이터로 평탄화 해주는 과정에서 '데이터의 형상 무시'
이미지는 3차원 형상이고, 이 형상의 공간적 정보나 패턴을 완전히 무시하고 같은 차원의 뉴런으로 취급
=> 형상에 담김 정보 살릴 수 없음

 

CNN에서는 합성곱 계층의 입출력 데이터 => 특징맵

CNN에서 합성곱 계층의 입력 데이터 => 입력 특징 맵

CNN에서 합성곱 계층의 출력 데이터 => 출력 특징 맵

 


합성곱 연산

합성곱 연산의 예

입력데이터는 세로, 가로 방향의 형상을 가짐

필터 역시 세로, 가로 방향의 형상을 가짐

형상 - (높이, 너비) : 입력 - (4,4) / 필터 - (3,3) / 출력 - (2,2)

 

합성곱 연산은 필터의 윈도우를 일정 간격 이동해가며 입력데이터에 적용한다.

입력과 필터에 대응하는 원소끼리 곱한 후 그 총합을 구함(단일 곱셈-누삼)

그 총합 결과를 해당 장소에 저장함

 

합성곱 연산의 편향

편향은 필터를 적용한 후의 데이터에 더해지며 항상 하나(1X1)로만 존재


패딩

합성곱 연산 수행 전 입력 데이터 주변을 특정 값으로 채우는 과정

주로 출력 크기를 조정할 목적으로 사용

합성곱 연산의 패딩 처리

EX) 폭 1짜리 패딩이라고 하면 입력 데이터 사방 1픽셀을 특정 값으로 채운다.

 

패딩 추가 후 입력 데이터 (4, 4) -> (6, 6)이 된다.

패딩을 1로 설정했지만 다른 원하는 정수 값으로 설정 가능하다.


스트라이드

필터를 적용하는 위치의 간격

만약에 스트라이드를 2로 하면 필터를 적용하는 윈도우가 두 칸씩 이동함


  • 스트라이드를 키우면 출력 크기는 작아짐
  • 패딩을 크게 하면 출력 크기는 커짐

입력 크기를 (H, W), 필터 크기를 (FH, FW), 출력 크기를(OH, OW), 패딩을 P, 스트라이드를 S라고 하였을때,

출력 크기 계산 식

(단, 값이 정수로 나눠떨어지는 값이어야 함 => 출력 크기가 정수가 아니면 대응 필요)


3차원 데이터의 합성곱 연산

채널쪽으로 특징 맵이 여러 개 있다면 채널마다 입력데이터와 필터의 합성곱 연산을 수행하고, 그 결과를 더해서 하나의 출력을 얻는다.

주의 : 입력 데이터의 채널수와 필터의 채널 수가 같아야 함

필터 자체의 크기는 원하는 값으로 설정할 수 있으나, 모든 채널의 필터가 같은 크기여야 한다.

 

 

3차원의 합성곱 연산은 데이터와 필터를 직육면체 블록이라 생각한다.

채널이 1개인 특징 맵의 합성곱 연산, 다수의 채널 특징맵의 합성곱 연산

합성곱 연산에서는 필터의 수도 고려해야하며, 필터의 가중치는 (출력채널 수, 입력 채널 수, 높이 , 너비) 순으로 4차원 데이터를 사용한다.

=> FN개의 맵을 모으면 형상이 (FN, OH, OW)인 블록 완성

합성곱 연산에 편향 추가

 

배치 처리를 하는 경우에는 각 계층을 흐르는 데이터의 차원을 하나 늘려 4차원 데이터로 저장함

=> (데이터 수, 채널 수, 높이, 너비)


풀링 계층

세로, 가로 방향의 공간을 줄이는 연산

EX) 2X2영역을 원소 하나로 집약하여 공간 크기를 줄이는 것

 

2 X 2 최대 풀링을 스트라이드 2로 처리하는 순서

=> 2 X 2 대상 크기 영역에서 가장 큰 원소 하나를 꺼냄

=> 풀링의 윈도우 크기와 스트라이드는 같은 값으로 설정하는것이 보통임

 

<풀링 계층의 특징>

  1. 학습해야 할 매개변수가 없다 => 그냥 대상 영역에서 최대값이나 평균을 취하는 처리이기 때문
  2. 채널 수가 변하지 않는다 => 채널마다 독립적으로 계산함
  3. 입력의 변화에 영향을 적게 받는다 => 입력 데이터가 조금 변해도 풀링 결과 잘 안변함

 

'인공지능' 카테고리의 다른 글

K-Nearest Neighbor  (0) 2023.10.01