개념 정리

합성곱 신경망 CNN Convolution Neural Network

명징직조지훈 2022. 11. 3. 07:32

합성곱 신경망의 의미

i 시점에서의 인풋 데이터 x 값과 가중치 w 값의 합성곱 연산의 결과는 y(i) 과 같음을 나타낸다. 

위 식에서는 k 도 시점을 의미하는데, 가중치 w 의 시점은 w(i) 가 아닌 w(i-k) 임을 알 수 있다. 

이를 플립 연산이라고 하며, 가중치는 커널 kernel 이라고도 부른다. 

합성곱이라는 연산의 저의 자체가 플립하는 연산, 

머신러닝에서는 가중치, 커널을 플립하지 않은 연산을 더 많이 사용한다. 아래 식과 같은 연산을 cross-correlation 라고 부른다.

 

입력 데이터와 합성곱 연산을 수행하게 되는 행렬, 가중치를 커널이라고 부른다. 합성곱 연산 결과 차원이 줄어드는 것을 볼 수 있다. (커널의 크기에 영향을 받기 때문)

합성곱에서도 편향 bias 을 적용할 수 있다. 각 행렬 원소에 편향을 더하는 것 이다. 

패딩

신경망에 커널을 적용하면서 층이 깊어지면 데이터의 차원은 점점 줄어든다. 이를 방지하기 위한 방법으로 패딩 padding 은 입력 데이터 주변을 특정 값으로 채우는 것을 의미한다.

스트라이드

스트라이드 stride 는 한 번 합성곱 연산한 후 다음 계산 영역을 선택할 때 얼마나 이동할지 간격을 정하는 것이다.

 

패딩, 스트라이드와 관련해 출력 데이터의 크기를 미리 계산할 수 있다.

풀링

풀링 pooling 은 데이터의 차원을 줄이는 방법이다. 해당 영역에서 값을 선택하는 방법,