欲速不達

일을 급히 하고자 서두르면 도리어 이루지 못한다.

Fantastic AI, Fantastic World

DS | Data Science/ML | Machine Learning

[CNN] Convolutional Neural Network : 합성곱 신경망

_껀이_ 2022. 9. 23. 11:58
728x90
반응형

1. 다층신경망(MLP : Multi Layer Perceptron)

 다층신경망(MLP : Multi Layer Perceptron)은 각 뉴런들이 선형모델과 활성함수로 모두 연결된(fully-connected) 구조

 MLP는 i에 의존적이며, i가 변화할 때마다 가중치도 변화하게 된다. 이는 가중치 행렬 W가 모든 i에 대한 가중치를 행으로 합쳐둔 행렬이기 때문이다. 

 이것과는 다르게 모든 i에 대해 일정한 크기의 커널(kernel)을 입력벡터 상에 일정한 간격을 두고 움직이며 연산을 하는 합성곱 신경망(CNN : Convolutional Neural Network)가 등장했다. 

 

 

2. 합성곱 신경망(CNN : Convolutional Neural Network)

 CNN은 특히 이미지 처리 분야에서 발전하기 시작했다. MLP는 input 데이터를 flatten하게 만들어서 사용하는게 일반적이었다. 이는 input 데이터는 일반적으로 독립적이라는 가정이 있기 때문에 input값의 모양은 중요하지 않았고, MLP 상의 가중치 행렬과 연산이 가능하게 하기 위한 조치로 볼 수 있었다.

 하지만 실제로 이미지는 region features를 가진 데이터이므로 각각의 픽셀은 독립적이지 않다. 실제로 flatten하게 만든 데이터를 사용한 MLP는 region features를 반영하지 못했고, 이를 해결하기 위해 CNN이 등장하게 되었다.

 

cnn 구조 예시

 CNN은 region features를 추출하는 Convolutional layer와 feature dimension control을 위한 Pooling layer, 최종적인 결과값을 계산하는 MLP 구조의 fully-connected layer로 구성되어 있다. 

 

  • Convolution 연산 (cross-correlation)

input 차원에 따른 Convolution 연산식의 예시

Convolution 연산은 수학적으로 신호(signal)을 커널(kernel)을 사용해 지역적(local)으로 증폭 또는 감소시켜서 정보를 추출하거나 필터링하는 것을 말한다. 

3x3 커널 Conv 연산

 

  • 커널(kernel)

 커널(kernel)은 정의역 내에서 움직여도 변화하지 않고 (translation invariant) 주어진 신호에 국소적, 지역적(local)으로 적용된다. 즉, 커널의 모양은 변하지 않고 input 데이터인 행렬 혹은 벡터 위에서 일정한 간격을 두고 움직이며(padding), 해당되는 위치에 있는 데이터와 연산을 수행한다는 것을 말한다.

 

 커널의 모양과 크기는 input 데이터에 따라 다양하고, 목적에 따라 사용되는 종류도 다양하다.

 

  • Convolution 연산의 역전파(Back Propagation)

 Convolution 연산은 커널이 모든 input 데이터에 공통으로 적용되기 때문에 역전파를 계산할때도 convolution 연산이 나오게 된다. 매번 Convolution 연산이 들어갔던 부분에 gradient를 계산하기 때문인 것이다. 연속형, 이산형 동일하게 적용된다. 

우선, 손실함수를 통해 계산된 편미분 값 δ1, δ2, δ3이 output 레이어에 전달되었다고 가정하고 식을 풀어보려고 한다. 

 어떤 값 A에 대한 w1의 편미분 값은 w1이 일정량 변화할 때 A의 변화율을 나타낸다. 즉, o1 = w1x1 + w2x2 + w3x3 라는 식에 있어서 w1의 편미분값은 x1이므로 o1에 대한 변화율이라고 볼 수 있다. 

 손실함수를 통해 계산된 편미분 값들도 위와 같으며, 이를 통해 전체 손실에 대한 편미분 값은 다음과 같이 계산된다.

전체 손실은 각각의 손실의 합이라고 표현할 수 있으며, 각각의 손실은 역전파된 δ값과 해당 커널값의 편미분값인 x를 곱한 것을 모두 더해준다. 이를 일반화하면 다음과 같은 식이 된다.

 

 

 

 

참고자료 : 네이버부스트캠프 AI Tech 강의자료

728x90
반응형