개념 정리
합성곱 신경망 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 은 데이터의 차원을 줄이는 방법이다. 해당 영역에서 값을 선택하는 방법,