합성곱 신경망 (CNN)

m0ng5he1l·2022년 7월 12일
0

딥러닝 공부

목록 보기
6/7

CNN 구조

  • 완전연결 : 인접하는 계층의 모든 뉴런과 결합되어 있는 신경망 (CNN과는 다름)
  • 합성곱 계층과 풀링 계층이 등장
  • Affine 계층을 사용한 완전연결 신경망
    • Affine-ReLU 연결 구조
    • 마지막 출력 계층은 Affine-Softmax
  • 합성곱 계층과 풀링 계층이 추가된 합성곱 신경망(CNN)의 일반적인 구성
    • Conv-ReLU-(Pooling) 연결 구조 (풀링 계층은 생략하기도 함)
    • 마지막 출력 계층은 Affine-Softmax를 그대로 사용

합성곱 계층

1. 완전연결 계층의 문제점과 합성곱 계층

  • 데이터의 형상이 무시됨
  • 만약 3차원 형상의 이미지를 1차원으로 만들게 되면 3차원 속에서 의미를 갖던 거리가 가깝거나 먼 픽셀의 연관성 등의 연관적인 패턴을 무시하게 되어 형상에 담긴 정보를 살릴수 없음 ⇒ 합성곱 계층은 형상을 유지하여 형상을 가진 데이터를 제대로 이해할 수 있음
  • 특징 맵 : 합성곱 계층의 입출력 데이터
  • 입력 특징 맵 : 합성곱 계층의 입력 데이터
  • 출력 특징 맵 : 합성곱 계층의 출력 데이터

2. 합성곱 연산

  • 필터의 윈도우를 일정 간격으로 이동해가며 입력 데이터에 적용
  • 입력과 필터에서 대응하는 원소끼리 곱한 후 총합을 구한 뒤 (단일 곱셈-누산), 결과를 출력의 해당 장소에 저장
  • 편향을 포함하게 되면 편향을 각 원소에 더한 뒤 출력 (위의 예시에서는 18 / 19 / 9 / 18)

3. 패딩

  • 합성곱 연산을 수행하기 전 입력 데이터 주변을 0 같은 특정 값으로 채우는 것
  • 폭이 N이면 데이터 사방 N픽셀을 특정 값으로 채움
  • 패딩을 키우면 출력 크기가 커짐
  • 주로 출력 크기를 조정하기 위해 사용

4. 스트라이드

  • 필터를 적용하는 위치의 간격
  • 즉, 윈도우가 이동하는 크기
  • 스트라이드를 키우면 출력 크기가 작아짐
  • 합성곱 연산의 예시 사진에서는 스트라이드가 1
  • 패딩, 스트라이드, 출력 크기의 수식화
    • 입력 크기 : H, W (H는 높이, W는 너비)
    • 필터 크기 : FH, FW
    • 출력 크기 : OH, OW
    • 패딩 : P
    • 스트라이프 : S
    • 출력 크기가 정수가 아니면 오류

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

  • 입력 데이터와 필터의 합성곱 연산을 채널마다 수행한 뒤 결과를 모두 더해 하나의 출력을 얻음
  • 입력 데이터의 채널 수와 필터의 채널 수가 같아야 함
  • 합성곱 출력으로 다수(N개)의 채널을 내보내려면 필터(가중치)를 다수(N개) 사용하면 됨
  • 편향은 채널 하나에 값 하나이므로 각 채널의 원소에 모두 더해짐

6. 배치 처리

  • 각 계층을 흐르는 데이터의 차원을 하나 더 늘려 4차원 데이터로 저장
  • (데이터 수, 채널 수, 높이, 너비) 순으로 저장
  • N회 분의 처리를 한 번에 수행함

풀링 계층

  • 세로, 가로 방향의 공간을 줄이는 연산
  • 최대 풀링 : 대상 영역의 크기에서 최댓값을 구하는 연산. 보통 풀링의 윈도우 크기와 스트라이드는 같은 값으로 설정. 이미지 인식 분야에서는 주로 최대 풀링을 사용
  • 평균 풀링 : 대상 영역의 크기에서 평균을 계산.
  • 풀링 계층의 특징
    • 학습해야 할 매개변수가 없음
    • 채널 수가 변하지 않음
    • 입력의 변화에 영향을 적게 받아 강건함

대표적인 CNN

  • LeNet : 손글씨 숫자 인식 네트워크. 합성곱 계층과 풀링 계층 반복 후 완전연결 계층으로 결과 출력
    • 시그모이드 활성화 함수 사용
    • 서브샘플링을 하여 중간 데이터의 크기 줄임
    • 위의 특징은 현재의 CNN(ReLU 함수 사용, 최대 풀링 주류)와의 차이를 보여줌
  • AlexNet : 합성곱 계층과 풀링 계층 반복 후 완전연결 계층으로 결과 출력
    • ReLU 활성화 함수 사용
    • LRN(국소적 정규화)를 실시하는 계층 이용
    • 드롭아웃 사용
  • 딥러닝의 발전에는 빅데이터와 GPU가 큰 원동력이 되었음
profile
통통

0개의 댓글

관련 채용 정보