[TIL Day38] 신경망의 기초 - 심층학습 기초 II

이다혜·2021년 6월 28일
0

TIL

목록 보기
39/60

합성곱 신경망(CNN; Convolutional Neural Network)

  • DMLP와 CNN의 비교
    - DMLP: 완전 연결 구조로 높은 복잡도를 가짐, 학습이 매우 느리고 과적합 우려
    - CNN: 컨볼루션 연산을 이용한 부분연결(희소 연결) 구조로 복잡도를 낮춤, 좋은 특징 추출

  • CNN 특징
    - 격자 구조(영상, 음성 등)를 갖는 데이터에 적합
    - 수용장(receptive field)은 인간시각과 유사
    - 가변 크기의 입력 처리 가능

CNN과 완전 연결 신경망의 차별성

  • CONV: 학습에 의해 결정된 복수의 커널들(혹은 필터들)에 대응되는 특징들을 추출하는 층
    - 각 층의 입출력의 특징형상 유지(특징맵)
    - 영상의 공간 정보를 유지하면서 공간적으로 인접한 정보의 특징을 효과적으로 인식
    - 각 커널(필터)은 파라미터를 공유함으로써 완전 연결 신경망 대비 학습 파라미터가 매우 적음

  • POOL: 추출된 영상의 특징을 요약하고 강화하는 층

  • 가변 크기의 데이터 다루기
    - 완전 연결 신경망은 특징 벡터의 크기가 달라지면 연산 불가능
    - CNN은 가변 크기를 다룰 수 있는 강점

    • CONV층에서 보폭을 조정한다거나 POOLING층에서 커널이나 보폭을 조정하여 특징 맵 크기를 조절

합성곱 연산

컨볼루션(합성곱) 연산은 해당하는 요소끼리 곱하고 결과를 모두 더하는 선형 연산으로, 영상에서 특징을 추출하기 위한 용도로 사용됨(=공간 필터)

uu는 커널(혹은 필터), zz는 입력, ss는 출력(특징 맵)

  • Padding
    - 가장자리에서 영상의 크기가 줄어드는 효과 방지
    - 각 층의 입출력의 특징 형상 유지
    - zero padding을 가장 많이 씀

  • 가중치 공유(묶인 가중치)
    - 모든 노드가 동일한 커널 사용, 즉 가중치를 공유하므로 매개변수 수가 적어짐
    - 모델 복잡도가 크게 낮아짐

  • 다중 특징 맵 추출
    - 커널의 값에 따라 커널이 추출하는 특징이 달라짐
    - 하나의 커널만 사용하면 너무 빈약한 특징이 추출됨
    - 실제로는 수십~수백 개의 커널을 사용

  • 특징 학습
    - 커널을 사람이 설계하지 않고 학습으로 찾음
    - DMLP와 마찬가지로 오류 역전파로 커널을 학습

  • 큰 보폭(stride)에 의한 다운샘플링
    - 일반적으로 보폭이 kk이면, kk개 마다 하나씩 샘플링하여 커널 적용
    - 2차원 영상의 경우 특징 맵이 1/k21/k_2

  • 채널이 k개인 3차원 격자 구조

풀링 연산

일전 크기의 블록을 통합하여 하나의 대푯값으로 대체하는 연산으로, 보폭을 크게 하면 다운샘플링 효과가 있다.

  • 최대값 풀링(Max Pooling)
    - 지정된 블록 내의 원소들 중에서 최대값을 대푯값으로 선택

  • 평균값 풀링(Average Pooling)
    - 블록 내의 원소들의 평균값을 대푯값으로 사용

  • 풀링 연산의 특성
    - 풀링은 상세 내용에서 요약 혹은 평균 등의 통계적 대표성을 추출함
    - 매개변수가 없음
    - 특징 맵의 개수는 그대로 유지, 크기는 변화
    - 연산 효율화(연산 횟수, 연결 가중치 개수 줄임)
    - 작은 변화에 둔감 → 물체 인식이나 영상 검색 등에 효과적

전체 구조

컨볼루션층 → 활성함수(ReLU) → 풀링층
다중 커널을 사용하여 다중 특징 맵 추출

  • 컨볼루션 층의 출력 크기와 매개변수 수
profile
하루하루 성장중

0개의 댓글