본문 바로가기
Study

CNN terminology

by wycho 2020. 5. 27.

CNN(Convolutional Neural Network)을 공부하다보면 무엇보다 용어에 대한 정리부터 필요하다. 같은 것을 가리키는데 여러개로 불리는 용어도 있다.

 

CNN은 고양이가 사물을 인식할 때 뇌의 일부만이 활성화되는 것을 발견한 것이 출발점이 되었다고 한다. CNN은 이미지의 일부의 특징을 찾아 분류하는 알고리즘이다.

 

CNN의 layer는 크게 4 가지가 있으며, (height, width, channel)로 표현한다.

- Convolution layer

- Downsampling layer

- Flatten layer

- Fully connected layer

 

  • Convolution layer : filter 또는 kernel이라고도 부른다. 이것의 역할은 input 이미지의 특징을 추출하기 위한 것이다.
  • Channel : input 이미지에 하나의 filter가 적용되어 나온 결과를 하나의 channel이라고 부른다. 여러개 filter가 적용되면 여러개의 channel이 생성된다.
  • Feature map : input 이미지에 filter가 적용되어 나온 결과 값들이다. channel과 같은 의미이다.
  • Receptive field : input 이미지에 filter가 적용되는 영역이다.
  • Weight : filter 각각의 값들이 weight가 된다.
  • Padding : pad는 덧대다는 뜻을 가지고 있고, padding은 input 이미지 바깥쪽 둘레에 값을 추가해 주는 것을 말한다.
  • Stride : input 이미지에 filter를 적용할 때 간격을 이야기한다.
  • Downsampling layer : pooling filter이라고 하며 convolution을 통해 나온 output 결과에서 main feature를 추출할 때 사용하는 filter를 가리킨다. 주로 filter가 적용되는 field의 max값을 취한다.
  • Flatten layer : Convolution과 downsampling 작업이 끝난 output을 단순히 1차원의 shape으로 바꾸어준다.
  • Fully connected layer : 최종 output의 shape을 결정짓는 layer이며, softmax 함수를 사용한다.

 

Convolution작업에서 Input 이미지의 channel과 filter의 channel이 같아야 한다. 연산의 예를 살펴보자.

- input 이미지 : 5x5x3

Ex 1)

Convolution

- filter : 3x3x3 with 1 stride

- output1 (feature map) : 3x3x1

Pooling

- filter : 2x2 with 1 stride

- output2 : 2x2x1

Flattening

- output3 : 4x1

Softmax

- output3 and output4 are fully connected layer(s), hidden layer(s).

- output4 : 3x1

 

Ex 2)

Convolution

- filter : 3x3x3 with 1 stride, 6개

- output1 (feature map) : 3x3x6

Pooling

- filter : 2x2 with 1 stride

- output2 : 2x2x6

Flattening

- output3 : 24x1

Softmax

- output3 and output4 are fully connected layer(s), hidden layer(s).

- output4 : 3x1

 

 

Supervised Machine Learning: A Brief Primer, https://doi.org/10.1016/j.beth.2020.05.002

 

 

Reference

- https://www.superdatascience.com/blogs/the-ultimate-guide-to-convolutional-neural-networks-cnn

- https://medium.com/@lizziedotdev/lets-talk-about-machine-learning-ddca914e9dd1

 

 

 

 

'Study' 카테고리의 다른 글

Phasing  (0) 2020.06.17
Random Walk  (0) 2020.06.17
Monte Carlo simulation  (0) 2020.06.17
PBWT (Positional Burrows-Wheeler Transform)  (0) 2020.06.09
Hilbert curve  (0) 2020.06.01

댓글