엔지니어스 - Engineeus

CNN(Convolutional Neural Network) 이란? 본문

Autonomous Tech./Machine Learning

CNN(Convolutional Neural Network) 이란?

Engineeus 2020. 3. 7. 20:20
728x90

CNN은 Convolutional Neural Network의 약자로 DNN(Deep Neural Network)의 한 종류 입니다.

그렇다면 딥러닝(Deep Neural Network, DNN)이란 무엇이냐??? 제 딥러닝포스트를 보고 오면 이해가 잘 되실겁니다.

딥러닝은 간단히 말하면 Layer가 엄청 Deep(많은)하게 구성된 네트워크 입니다. 아래는 AlexNet입니다. 3이라는 숫자가 들어가면 엄청 많은 네트워크들을 통해 최종적으로 오른쪽에서 0~9 사이의 결과 값을 출력 합니다.

 

 

CNN의 역사

딥러닝은 사실 오래된 역사가 있었고, CNN도 사실 좀 오래 된 알고리즘 입니다. 하지만 왜 이제야 붐이 일어 났나요? 답은 컴퓨팅 파워가 좋지 않아 그동안 멀리 배척되어 온 기술 이었고, 데이터를 모으기 힘든데 요새는 인터넷이 발달하여 데이터들을 쉽게 구할수 있었기 때문 입니다. 그러며 2012년 갑자기 'Boom'이 일어나게 됩니다.

 

CNN이 급격히 성장을 한것은 2012년 입니다. 당해 Image Classification대회 ILSVRC(ImageNet Large Scale Visual Recognition Challenge) 딥러닝이 다시 주목 받게 되었습니다.

 

 

이후 2014년도 GoogleNet과 VGGNet등장으로 이 부분에 대한 연구는 가속화 되었습니다. 2015년도 에는 ResNet의 등장으로 딥러닝이 인간의 능력 보다도 더 뛰어나다는걸 증명 하였습니다. 이때 까지만 해도 Two-shot-detection을 사용 하다가 2015년 부터 Yolo와 SSD 같은 One-shot-detection을 사용 하며 더욱 속도가 빨라져 이제 실시간성까지 증명이 되어 현재 Object Detection, Object Tracking, Object Segmentation 분야에서 사용을 하고 있습니다.

 

하지만 현재 딥러닝은 컴퓨팅파워가 좋아야 실시간성이 따라 줄 수 있으므로 모든 곳에서 채택 하긴 힘든 기술 입니다. 향후 미래엔 가능 하겠지만 현재는 GPU(Graphics Processing Unit)에서 주로 돌리거나 엄청나게 빠른 CPU에서 돌려야 실시간성을 확보 할 수 있습니다. 따라서 현재는 저가형 보드에서는 아직 Image Processing 문제로 딥러닝을 사용 하지 않고 풀고 있으며, 고가의 보드에서는 딥러닝을 활용하여 현재 기술들이 탑재 되고 있습니다.

 

아직도 현재 진행형인 CNN의 발전이 이제 향후 어떻게 변할지는 더 두고 봐야 할 일인듯 합니다. 

 

아래 주소는 2014년 이후 R-CNN부터의 많은 네트워크들을 담아 놓은 깃허브 입니다. 참고 하시면 좋을듯 합니다.

https://github.com/hoya012/deep_learning_object_detection

 

hoya012/deep_learning_object_detection

A paper list of object detection using deep learning. - hoya012/deep_learning_object_detection

github.com

 

Comments