- CNN(합성곱 신경망)
합성곱 신경망(CNN)의 기본 구조와 작동 원리를 설명합니다. 이미지 처리에 특화된 CNN의 장점, 필터와 합성곱 연산 방식, 3D 데이터 처리 방법, 그리고 깊은 CNN 구조가 매개변수 수를 줄여 연산 효율성을 높이는 원리를 다루고 있습니다.
CNN(Convolutional Neural Network)
합성곱 신경망(CNN)은 이미지에 강력한 알고리즘이다.
MLP가 아닌 CNN이 등장한 이유?
-
이미지는 다차원(28x28)인데 평탄화 -> 1차원(784x1) 데이터 사용(공간적 정보 손실)
- 784 = 28*28
-
CNN보다 Weight Parameter 개수가 많음
- FC : 784x10 = 7840
- 5x5 Conv : [5x5x1]x64 = 1600
1. CNN 모델 형태
32x32x3 크기의 input img를 3x3x3 filter 32개에 통과 => 30x30x32 output
참고로 input, filter 둘다 끝에 3은 채널을 의미하며 채널이 같아야함.
- output이 채널 32이인 이유는 filter 32개를 거쳤기 때문
- width, height이 30이 된 이유는 아래 Conv(합성곱) 방식을 참고
2. Convolution(합성곱)
그림은 계산 흐름만 확인해서 어떻게 output 크기가 결정되는지 이해하자.
- stride, padding 속성도 존재
3D 데이터의 Conv(합성곱)
채널별로 각 필터와 Conv한 값들을 전부 합하면 output (feature map)을 구할 수 있다.
3. Deep CNN
Layer가 깊으면 깊을수록 학습 연산량(=매개변수 수)가 줄어든다. 즉, 고속화가 된다.
- 그림을 보면 3x3을 두번해서 9+9=18개 매개변수를 가지는 경우와,
- 5x5로 한번해서 25개 매개변수를 가지는 경우가 있고,
- 더 깊은 Layer를 가진 3x3의 경우가 매개변수 수도 더 작기 때문에 5x5보다 빠르다.
댓글남기기