본문 바로가기
공부/컴퓨터비젼

[컴퓨터비전 과제] 7. CNN(Convolution Neural Network)

by 맑은청이 2021. 6. 10.
728x90
반응형

CNN이란?

CNN은 이미지의 전체가 아닌 부분을 보는 것이 핵심 아이디어인데요. 이 부분에 해당하는 것을 filter라고 합니다. 

쉽게 말하면 뉴럴네트워크에 Convolution과정을 하는 건데요. Convolution은 어떠한 filter를 통해서 하나의 새로 값을 얻어내는 것이라고 말할 수 있습니다. (사실 복잡하게 설명할 수 있지만 여기서는 간단하게 언급하겠습니다.) 

 

image 의 사이즈가 7x7 이고 filter가 3x3 이라고 가정을 했을 때 image의 부분마다 새로운 값을 뽑아내야합니다. 

filter의 size가 3x3 이니 9개의 parameter 가 있고 이 값이 가중치 W에 대해서 ReLu나 Sigmoid 같은 activation function을 거쳐서 새로운 값을 출력합니다. 이때 이미지를 훑는 간격을 stride라고 합니다. stride가 클수록 값을 뽑아내는 횟수가 적어지는 걸 알 수 있겠죠. 그리고 생각을 해보면 Convolution을 할 수록 크기가 작아질텐데 크기를 유지하기 위해 padding 을 추가할 수 있습니다. 

 

 

과제 

CIFAR-10 이미지 분류를 위한 CNN 구성 

 

아래 코드를 확인하시면 CIFAR-10 을 통해서 학습을 하고 평가하고 그래프와 사진들도 확인할 수 있습니다. 

https://github.com/Chung-god/ComputerVision/blob/main/CNN.ipynb

 

Chung-god/ComputerVision

Using Python. Contribute to Chung-god/ComputerVision development by creating an account on GitHub.

github.com

 

728x90
반응형