CNN이란?
- 이미지에 특화된 신경망 구조
- 학습 파라미터의 갯수가 FC(Fully connected 신경망 모든 노드가 연결되어 있는 것을 의미하며, 입력층을 거쳐 은닉층의 노드들이 모두 연결되어 가중치를 도출하는 기본 인공 신경망)구조에 비해 매우 적어, 다른 네트워크에 비해 효울적
- CNN 사용하지 않을경우
- 픽섹들을 명암에 따라 숫자로 바꾼 뒤 이를 1차원으로 바꾸어 모델(다층 퍼셉트론 Fully connected layer에 연결)에 넣어준다.
- 3차원 이미지들을 1차원으로 바꾸어 Fully connected layer적용하면, 각 픽섹들의 연관관계에 대한 손실이 일어나고 같이 분류해야할 이미지를 올바르게 분류하지 못함
- 즉, 모델은 1차원으로 바꿔서 입력하기에 각 픽셀간의 연관성의 정보 손실 일어남
Convolutional layer(합성곱 층)
-
이미지 벡터들의 연관관계에 대한 정보들, 이미지 특유의 공간에 대한 정보들을 지닌 Feature Map을 입력층에 input함으로써 더 좋은 CNN모델이 된다.
-
공간에 대한 정보를 가진 Feature Map 만드는 과정
- Stride = 1로 설정하여 Filter를 한칸씩만 이동하여 Feature Map 형성
(Stride는 이미지 데이터에 적용할 Filter를 얼마나 움직여 적용할지 정하는 단위)
(Feature Map은 이미지 데이터에 필터를 적용해 공간에 대한 정보를 지닌 변환 데이터)
-
합성곱을 하면 Feature Map이 작아진다. 또한 합성곱 레이어의 출력 데이터가 작아지는 것을 방지하기 위해서는 위와 같이 어떤 수로 외곽을 둘러싸는 padding기법 필요
( 보통은 0으로 제로패딩,출력데이터 사이즈 보호하면서 인공 신경망에 외곽임을 인식시키는 효과)
Pooling layer
-
합성층으로 부터 이미지의 특징 도출 다만 한번으로는 데이터가 크고 복잡
-
Pooling 또는 sub sampling을 통해 축소화 시킨다.
-
합성층으로 도출한 Activation Map(Feature Map)의 구역을 분할하여 가장 큰 수를 구역의 대표값으로 정하는 것
Drop out
- 모델을 학습시킬 때에는 항상 과적합을 방지해야 한다.
- 랜덤하게 원하는 정도의 노드를 끔으로써 과적합 쉽게 방지 가능
출처:https://wikidocs.net/152775
출처:https://inhovation97.tistory.com/15