1) CNN의 장점
- Grid가 있는 데이터에 유리하다 (이미지, 시계열 데이터)
- 다른 뉴럴 네트워크에 비해 paramter의 수가 적어 시간이 적게 걸리고, 오버피팅의 가능성도 상대적으로 낮다.
- input의 크기에 비교적 영향을 덜 받는다.
2) CNN의 단점
- Pooling 과정에서 정보 손실이 발생할 수 있다.
- 파라미터 수의 감소로 인해 연산량은 감소가 있으나, 촘촘한 convolution 연산 수행을 위해서는 큰 연산량이 요구된다.
3) 필터는 왜 필요한가
필터는 이미지의 특징을 추출하기 위한 공용 파라미터이다. Filter를 Kernel이라고도 하며, convolution 과정에서 필터를 거치지 않고 곧바로 flatten layer로 들어가게 되는 경우 spatial or tolopological 한 특성을 잃을 수 있다.
4) 점점 작은 필터를 쓰는 이유는?
과거에는 데이터의 양이 적고 컴퓨터의 성능도 좋지 않아 아키텍처의 depth를 크게 갖지 못했기 때문에 filter size를 크게 설정할 수 밖에 없엇으나, 최근에는 그러한 제약이 사라져서 filter size를 작게하여 depth를 깊게 하여 비선형성을 추가하고 high level의 feature를 추출하는 것이 목표가 되었다.
5) 패딩은 왜 필요한가
Convolution layer에서 Filter를 활용하여 계산된 결과 결과값(Feature Map)의 크기는 입력데이터보다 작아지는데, 이때 출력 데이터가 줄어드는 것을 방지하는 방법이 패딩이다. 패딩은 입력 데이터의 외곽에 픽셀만큼 특정 값으로 채워 넣는 것을 의미하며 보통 패딩 값으로 0을 채워넣는다. 이를 통해 가장자리에 위치한 정보(feature)를 살릴 수 있게 된다.
6) 풀링은 왜 필요한가
Convolution 레이어의 출력 데이터를 입력으로 받아서 출력 데이터(Activation Map)의 크기를 줄일 수 있다. 중요한 feature를 강조하는 한편, 중요하지 않은 feature 또는 중복된 정보를 사라지게 하여 넓은 범위의 정보를 축약해서 볼 수 있다.
7) Convolutional layer의 출력 데이터 크기 공식
((N - F + 2P) / S) + 1 ( N: 기존 size, F: filter size 크기, P: padding 크기, S: stride크기)
예시: AlexNet에서 입력 이미지의 크기는 227x227x3 이다. 첫 번째 컨볼루션 레이어는 11x11x3 크기의 커널 96개를 갖는다. 스트라이드는 4이고 패딩은 0이다. 이때 출력값(Feature Map)의 크기는?
(227 - 11 + 2 * 0) / 4 + 1 = 55
=> (55, 55, 96)
8) Pooling 레이어 출력 데이터 크기 공식
N-F'/S+1 (N: 기존 size, F': Pooling size, S:stride 크기)
Convolutional 레이어 공식을 그대로 써도 된다
(차이는 1) padding은 없어서 0으로 놓는다 2) filter size 대신 pooling size를 넣는다)
위의 예시에 이어서 Pooling size가 3이고 stride가 2인 pooling layer의 결과 값은?
(55 - 3) / 2 + 1
=> (27, 27, 96)
9) Convolutional 레이어의 학습 파라미터수를 구하시오
1) wieght 수 : (입력 채널 수)x (필터폭) x (필터 높이) x (커널 수)
2) bias 수 : (커널수)
3) parameter 수 = weight 수 + bias 수 = (입력 채널 수) x (필터폭) x (필터 높이) x (커널 수) + (커널수)
AlexNet에서 입력 채널의 수가 3, 커널 사이즈가 11, 커널의 수가 96 인 경우 가중치, 편향, 파라미터 수를 모두 구하시오.
1) 입력 데이터는 채널 수와 상관없이 필터 별로 1개의 피처 맵이 만들어진다. (O)
: 입력 데이터가 여러 채널을 갖을 경우 필터는 각 채널을 순회하며 합성곱을 계산한 후, 채널별 피처 맵을 만듭니다. 그리고 각 채널의 피처 맵을 합산하여 최종 피처 맵으로 반환합니다.
2) Pooling 레이어는 학습대상 파라미터가 없다(O)
3) Pooling 레이어를 통과하면 행렬의 크기 감소한다.(O)
4) Pooling 레이어를 통과하면 채널 수가 변경되지 않는다(O)
5) Convolutional 레이어에서 filter의 수만큼 dimension이 정해진다 (O)
'AI' 카테고리의 다른 글
신경망에서 학습을 시킨다는 의미 (1) | 2022.12.08 |
---|---|
CNN (Convolutional Neural Networks) (2) | 2022.12.08 |