카테고리 없음

CNN(Convolution Neural Network)이란

손혜정 2018. 10. 22. 01:16

(공부를 위한 글입니다)



Vision, 영상처리에서 이미지의 공간 정보를 유지한 상태로 학습시키기 위한 모델



 예측/분류 및 여러가지 결과를 얻고자 학습을 위해 (Deep) Neural Network를 사용해본 적이 있을 것.


 그럼 이미지는 어떻게 학습을 시킬 수 있을까?


 이미지 데이터는 MxNx3(RGB) 3차원으로 표현되는데, 이를 처음부터 1차원으로 pixel값을 풀어서 Neural Network를 수행한다고 하면 이미지 데이터 특유의 공간 정보 (옆픽셀간의 상관관계, 색깔-channel이 가지는 특징)를 잃을 수 있다. 결국 정확도가 낮아지고 학습이 비효율적이어 진다.


 이미지의 공간 정보를 유지한 채로 학습이 가능하도록 한 것이 CNN 모델이다!



 CNN 모델은 이미지로부터 feature(특징으로, 이미지 각 부분에서 선, 엣지등->도형->큰모형 등등 분류를 위한 특징)를 추출하는 Convolution 부와, 추출한 feature를 가지고 Classification을 하는 (이 특징을 보니 이 이미지는 고양이일 확률 x%, 강아지일 확률 x%,...이므로 고양이겠군!) Neural Network부로 나눠질 수있다.



 보통 Convolution 부는 Convolution layer와 Pooling layer를 반복적으로 쌓고, Neural Network부는 Fully Connected Layer를 구성하고 마지막에 Softmax를 사용한다.

 



 각 부분에 대한 용어, 간단한 기술들에 대한 내용은 다른 블로그들에서 잘 설명해 놨기 때문에 생략함


 CNN 기본 및 http://taewan.kim/post/cnn/