머신 러닝 이론

컨볼루션 레이어

skawlsgus2 2025. 3. 28. 10:27

컨볼루션 레이어(Convolutional Layer)는 딥러닝, 특히 이미지 처리 분야에서 핵심적인 역할을 하는 레이어이다. 이미지의 특징을 추출하고 학습하는 데 특화되어 있으며, 컨볼루션 신경망(CNN)의 핵심 구성 요소라고 할 수 있다.

그럼 어떻게 이미지의 특징을 추출할 수 있는 걸까?

 

굉장히 추상적이므로 조금 더 알아볼 필요가 있다. 우선 컨볼루션 연산 방식에 대해 알아보자

컨볼루션 연산을 하기 위해서는 입력 텐서와 커널이 필요하다. 그리고 출력으로 나오는 이미지는 특성맵(Feature Map) 라고 한다.

위 그림은 5x5 이미지를 3x3 커널로 컨볼루션 연산을 하는 과정이다. 출력 9 는 다음과 같은 컨볼루션 연산을 통해 도출된다.

2*1+3*0+4*1+1*1+0*0+1*1+0*0+1*1+1*0 = 9 이것은  입력 이미지의 픽셀값과 커널의 픽셀값끼리의 곱의 총합으로 만들어진 것이다. 스탬프를 찍어 하나의 출력 픽셀을 만든다고 생각하면 쉽다.

 

그럼 이게 이미지 특징 추출과 무슨 상관일까? 

아래에는 4x4 입력 텐서, 3x3 커널이 있다. 입력되는 이미지는 1을 픽셀로 표현한 것이다. 

커널은 가로 특징을 추출할 수 있는 커널과 세로 특징을 추출할 수 있는 커널 두개를 준비해 각각 컨볼루션 연산을 해 본다. 

왼쪽부터 입력픽셀, 가로 커널, 세로커널

1) 가로 커널과 컨볼루션 

가로 커널을 사용해 입력 텐서와의 컨볼루션 연산을 하면 2x2 특성맵이 출력된다.

2 2
1 1

특성맵의 상단은 값이 크고(2) 하단은 값이 작다(1) 이것은 입력 텐서의 가로 특성이 하단보다 상단이 뚜렷하다는 것을 의미한다.

입력 텐서의 가로 특성은 상단이 두드러진다

2) 세로 커널과 컨볼루션

세로 커널을 사용해 입력 텐서와의 컨볼루션 연산을 하면 2x2 특성맵이 출력된다.

1 3
1 3

특성맵 우측은 값이 크고(3) 좌측은 값이 작다(1) 이것은 입력 텐서의 세로 특성이 좌측보다 우측이 뚜렷하다는 것을 의미한다. 또한 가로 커널과의 컨볼루션 연산 결과값 보다 큰 3이 되었는데 이것은 입력 텐서의 특징이 세로에 가깝다는 것을 의미한다.

입력 텐서의 세로 특성은 우측이 두드러진다.

따라서 이미지 컨볼루션 연산은 커널의 패턴과 입력 이미지의 패턴이 유사한 부분일수록 높은 값을 가지는 특성맵을 만들어 낸다.

'머신 러닝 이론' 카테고리의 다른 글

파인 튜닝(Fine-tuning)  (1) 2025.04.07
Cross Entropy 손실함수  (0) 2025.04.05
Mnist 데이터 셋 불러오기  (0) 2025.03.27
backward() 와 requires_grad = True  (0) 2025.03.27
loss.backward()  (0) 2025.03.26