본문 바로가기
Deep Learning with Python

12_합성곱(CNN) 신경망의 구성요소

by Hot김치 2022. 8. 16.

합성곱(CNN)

  • 마치 입력 데이터에 마법의 도장을 찍어서 유용한 특성만 드러나게 하는 것.

ANN 동작 원리

    • 인공 신경망은 처음에 가중치 W1 - W10과 절편 b를 랜덤하게 초기화
    • 에포크를 반복하면서 경사 하강법 알고리즘 사용하여 손실이 낮아지도록 최적의 가중치와 절편을 찾는다.
    • 밀집층에 뉴런이 3개 있다면 출력 3개 / 패션 MNIST 이미지에 있는 784개의 픽셀을 입력받는 은닉층의 뉴런 개수가 100개면 출력 100개 생성
    •  

CNN 동작 원리

  • 입력 데이터 전체에 가중치 적용하지 않으며, 일부에 가중치를 곱한다.
  •  
     
  • 중요 point
    • 첫 번째 합성곱에 사용된 가중치 W1 - W3과 절편 b가 두 번째 합성곱에도 동일하게 사용.
    • 한 칸씩 아래로 이동하면서 출력을 만듬
    • 뉴런의 가중치가 3개이기에 모두 8개의 출력 생성
    • 합성곱 층의 뉴런에 있는 가중치 개수는 정하기 나름 => 하이퍼파라미터
  • 필터 / 커널
    • 커널: 입력에 곱하는 가중치
    • 필터: 뉴런 개수를 표현할 때 사용

CNN 장점 => 2차원 입력으로 확장

  • 중요 point
    • 입력이 2차원 배열이면 필터(도장)도 2차원
  • 오른쪽 이동 & 합성곱 수행 => 입력의 너비가 4이므로 더 이상 오른쪽 이동 불가능 => 아래로 한 칸 이동 & 합성곱 => 오른쪽 이동 & 합성곱
  • 4개의 출력 => 특성 맵(feature map)

합성곱 층에서도 여러개 필터 사용 => DNN 여러개의 뉴런

  • 여러 개의 필터를 사용하면 만들어진 특성 맵은 순서대로 차곡차곡 쌓은다.
  • (2, 2) 크기의 특성 맵을 쌓으면 3차원 배열이 된다. => (2, 2, 3) 크기 & 3차원 배열
  • 2차원 구조를 그대로 사용하기 때문에 합성곱 신경망이 이미지 처리 분양에서 뛰어난 성능을 발휘
  • 합성곱 층에 있는 필터의 가중치(커널)도 모두 다르게 setting.