[LNF]CNN 정리

koyoon·2025년 3월 13일

Lost and Found

목록 보기
4/6
post-thumbnail

1. CNN 개론

CNN이란 Convolutional Neural Network로 합성곱 신경망이라는 의미이다. 합성곱을 이용한다는게 말 그대로 주요 개념이다. 공간적 구조를 고려하면서 효율적으로 특징을 추출할 수 있다. 여기서 말하는 구조적 특징이란, 각 픽셀을 단순히 독립적인 값이 아니라 인접 픽셀과의 관계를 반영한다는 것이다.

CNN의 주요 특징으로는 아래와 같다.

  • 전체 영역을 한번에 학습하는 것이 아니라, 작은 영역(수용영역, Receptible Field)을 사용해 부분적인 패턴을 학습함.
  • 매개변수의 수가 매우 많은 Fully Connected Layer와 달리, 동일한 필터를 공유하면서 매개변수의 개수를 적게 유지한다.
  • 계층적으로 학습을 하는데, 층이 깊어짐에 따라 단순한 저수준의 이미지 특징(선, 모서리)을 학습하다가 고수준의 특징(얼굴, 물체)을 학습하게 된다.
  • 풀링(Pooling)을 통해 이미지의 크기를 줄이면서 동시에 주요 특징은 유지한다.

2. 합성곱 층과 풀링 층

이를 위한 주요 요소는 합성곱 층과 풀링 층이라고 할 수 있다.

2-1. 합성곱 층 (Convolutional Layer)

합성곱 층은 입력 데이터에서 주요 특징을 추충한다. 이때 필터(커널, Kernel)을 이용하게 된다. 이는 작은 행렬로 입력 데이터를 스캔하면서 합성곱을 연산한다. 그렇다면 이 필터는 무엇으로 구성될까?

필터 크기: 필터의 크기
스트라이드: 필터가 이동하는 거리
패딩: 입력 크기의 유지를 위해 가장자리 부분을 임의의 값으로 채움(주로 zero-padding)

위의 세 가지 요소는 결론적으로 합성곱 층을 통과하였을 때의 결과물, Feature Map을 결정하게 된다. 이를 통해 공간적 구조를 유지하면서 패턴을 학습하게 된다. 그리고 이 필터의 행렬 값은 가중치(W)로, 학습을 통해 갱신된다.

필터의 수는 각 합성곱 층이 학습하는 특징의 개수를 의미한다.

2-2. 풀링 층 (Pooling Layer)

풀링 층은 합성곱 층의 결과 물로 생성되는 Feature Map의 크기를 줄이는 역할을 한다. 계산량을 줄이는 것이 주목표이며, 어떤 풀링을 사용하냐에 따라 불변성에 대한 처리가 가능하다.

다음과 같은 풀링 방식이 존재한다.

  • 최대 풀링 (Max Pooling): 해당 영역에서 가장 큰 값만 남김
  • 평균 풀링 (Average Pooling): 해당 영역의 평균값을 사용
  • 최소 풀링 (Min Pooling): 해당 영역에서 가장 작은 값만 남김

이 중에는 최대 풀링이 가장 많이 사용된다. 참고로 어떤 풀링 방식인지와 무관하게, 단순하게 함수를 통과하여 최대, 최소 값을 남기는 역할을 진행하기 때문에, 가중치가 존재하지 않으며, 학습의 대상이 아니다.

풀링에 따라서 불변성이 달라진다는 점에 주목할 만하다.

최대 풀링은 강한 불변성을 만들어낸다. 강한 특징을 보존하며 크기 축소 효과가 크다. 하지만 동시에 세부적인 정보의 손실이 일어날 수 있다.

평균 풀링은 약한 불변성을 만들어낸다. 최대 풀링보다는 약한 강건성을 보인다는 뜻이다. 하지만 최대 풀링보다 특징을 약하게 보존한다는 단점이 있다.

최소 풀링은 최대 풀링과 반대로 특징을 거의 잡아내지 못해 약한 신호를 유지하는 역할을 한다. 또한 불변성이 거의 없어서 작은 변화에도 민감하게 반응한다. 따라서 등변성이 목표일 때 사용할 수 있지만, 거의 사용되지 않는다.

3. 채널과 Feature Map

공부를 하다가 채널(Channel)과 특징 맵에 대해 혼동이 있었다.

채널은 입력 데이터의 차원 정보를 의미한다. 예를 들어 일반적인 컬러 사진의 RGB값을 3개의 채널을 가진 이미지로 볼 수 있다. RGB 값을 가진 이미지가 합성곱 층을 통과하면 3차원 필터가 각각의 채널을 통과한다. 그리고 만들어진 세 개의 결과는 bias를 고려하여 하나의 Feature Map으로 생성된다.

만약에 이런 필터가 16개라면, 결과적으로 16개의 Feature Map이 생성될 것이다. 만약 그 다음에 합성곱 층을 또 통과한다면, 다음 필터는 nn16의 3차원 필터일 것이다.

정리하자면 입력 채널의 수가 이전 층의 Feature Map 개수인 것이다. 이런 식으로 CNN의 깊이가 깊어진다면, Feature Map의 수가 늘어나 더 고차원의 특징을 학습할 것이다.

profile
neocortex

1개의 댓글

comment-user-thumbnail
2025년 6월 9일

이건 앞공부인가요 뒷공부인가요?

답글 달기