딥러닝
CNN
StoneSeller
2022. 6. 24. 16:33
Convolution layer의 특징
- feature의 위치에 구애 받지 않는다.
- 데이터셋의 x와 y의 구성에 따라 자동으로 탐지해야 할 패턴을 추출한다.
내부 kernel은 해당 패턴을 추출하기 위한 형태로 자동으로 구성된다. - 같은 입출력을 갖는 FC Layer에 비해 더 적은 weight를 갖는다.
- 병렬 계산 구성이 쉬우므로, GPU에서의 연산이 빠르다.
- 단점: FC Layer에 비해 입출력 크기가 계산이 까다로워. 네트워크 구성이 쉽지 않다.
Dimenstion Reduction in CNN
Dimension Reduction: 고차원 공간의 sparse한 데이터를 저차원 공간에 mapping하는 방식
그러나 [3X3 + 1 padding]의 conv layer는 입/출력 텐서의 크기가 같다.
그래서 Maxpooling이나 stride 같은 기법을 사용하여 dimension reduction을 한다.
Max Pooling
- down sampling 기법
- 별도의 max-pooling layer을 사용한다.
Stride
- Convolution layer 선언 과정에서 지정해준다.
input = (4, 4) , padding = 1, kernel = (3,3), stride = 2인 경우,
[(4 + 2*1 - 3) / 2] + 1 = [1.5] + 1 = 2
∴ output = (2, 2)
Max-pooling은 초기에 많이 활용되었지만 현재는 Stride가 좀 더 많이 활용되고 있다.
CNN Architecture Design
각 Conv layer는 위치에 따라 low-level(Edge)또는 high-level feature(어떤 형태의 Edge가 모이면 고양이)을 추출하도록 학습되는데 앞에서 low-level feature을 추출하고 뒤로 갈 수록 high-level feature을 추출하도록 학습된다.
728x90