최대 1 분 소요

🔮 합성곱

앞 장에서 배운 밀집층의 경우 모든 뉴런에 가중치를 곱하고 절편을 더해서 1개의 값을 출력했다. 하지만 합성곱의 경우 필터(또는 커널) 에 대해서만 가중치를 곱하고 절편을 더해서 1개의 출력값을 낸다. -> 이렇게 합성곱 계산을 통해 얻은 출력을 특성 맵 이라고 부른다.

합성곱의 경우 2차원 구조를 그래도 사용하기 때문에 합성곱 신경망이 이미지 처리 분야에서 뛰어난 성능을 발휘한다.

from tensorflow import keras
keras.layers.Conv2D(10, kernel_size=(3, 3), activation='relu')

형식으로 사용되고 커널의 크기 역시 하이퍼파라미터이다.

🔮 패딩

패딩은 입력 주변에 0을 넣어서 합성곱을 하여도 결과의 크기가 달라지지 않도록 하는 것이다.

  • 밸리드 패딩(padding=’valid’) : 기본값으로 주변에 0 넣지 X
  • 세임 패딩(padding=’same’) : 주변에 0을 넣어서 합성곱의 크기를 입력 크기와 동일하게 조절할 수 있다.

🔮 스트라이드

커널이 한 칸씩 이동하면서 합성곱을 했는데, 몇 칸 이동할지를 결정하는 매개변수이다. strides=1 이런식으로 사용을 한다. 하지만 일반적으로 합성곱에서는 스트라이드 1을 사용한다.

🔮 풀링

풀링에는 가중치가 없으며 최대 풀링평균 풀링 으로 나뉜다. 풀링의 경우 합성곱을 마친 결과에 대해서 다시 특정 크기만큼에서의 값 중, 최대값을 고르거나 평균을 구해서 특성 맵을 만드는 것이다.

  • 최대 풀링 : keras.layers.MaxPolling2D(2) -> (2, 2) 크기로 풀링한다는 말
  • 평균 풀링 : keras.layers.AveragePooling2D

🔮 합성곱 신경망의 전체 구조

입력 -> 합성곱 층 -> 풀링 층 -> 밀집층(1차원 배열이 필요하므로 Flatten 사용)

댓글남기기