CNN (Convolution Neural Network)
2015년에 AlexNet이 10%의 성능향상
Convolution
filer는 learning parameter
+--+--+--+--+--+
|xij | | | | 3x3 filter
+--+--+--+--+--+ +--+--+--+ +--+--+--+
| | | | | | x |wij | | = | | | |
+--+--+--+--+--+ +--+--+--+ +--+--+--+
| | | | | | | | | | | | | |
+--+--+--+--+--+ +--+--+--+ +--+--+--+
| | | | | | | | | | | | | |
+--+--+--+--+--+ +--+--+--+ +--+--+--+
| | | | | |
+--+--+--+--+--+ ^
|
feature map
𝜎(w11*x11 + w12*x12 + ...)
𝜎: activation function
5x5가 줄어들지 않게 하기 위해서
원본 5x5를 padding 하여 출력도 5x5가 되게 하기도 함
stride를 1이 아닌 2로 하면 2칸씩 이동하면서 convolution 적용
1x1 convolution
RGB image의 경우 3 channels
N1xN2xN3 fxf (N1 - f + 1)x(N2 - f + 1)
fxfxN3가 실제로 이나 , 반복 3회로 cover하기에
fxf filter라고 함
보통 conv.와 pooling layer가 하나의 set으로 구성됨
max pooling
pooling layer에서는 learning parameter가 없음
LeNet-5
이안리쿤이 제시한 최초 CNN model
CNN이 혁신적인 이유
1) locality
filter마다 각각의 특징을 보는 것임
locality
그래서 출력을 feature map이라고 함
locality의 개념을 포함한 개념
FCL는 이게 안 됨
FCL
filter의 size가 input의 size와 같다면 이게 FCL임
즉, 모든 입력 feature와 연결되는 것
즉, 전체로 보기에 각 부분의 data의 특징을 못 찾음 !
2) 속도
5x5 filter가 3이면 75
chanel이 6개면, 75*6 = 450
max pooling에서는 learning param 이 0개
CNN은 결국 전체 image에서의 부분들(locality)에 맞는 특징들을 가지고 (즉, 부분에 대한 특징) 학습을 하기에, 객체인식(전체 영상의 부분) 등을 할 수 있음
그런데 FCL 로도 이를 구현 할 수 있으나, 시간이 많이 걸림
ResNet의 layer 수
layer가 많을 수록 back-propagation이 잘 안되기에 20개 까지 밖에 사용 못 함
skip connection
ResNet은 skip connection을 사용해서
전전 layer 값도 같이 반영 하기에 값이 희미해지지 않고 뒤의 layer에 반영하게 됨
[] --> [] --> [] --> []
| ^
+--------------+
back-propagation 문제를 해결