본문 바로가기
Computer Science/AL, ML

CNN (Convolution Neural Network)

by Gofo 2022. 6. 6.

CNN (Convolutional Neural Networks)

= ConvNet, DCN(Deep Convolution Network)

 

큰 이미지를 다루기 위해서는 더 큰 input을 다뤄야 하고 더 큰 모델이 필요하다.

CNN을 이용하면 더 큰 input을 다룰 수 있다.

 

주로 후반부에는 DNN과 결합하여 사용한다.

 

CNN vs. DNN

  • operation
    • DNN : linear operation + non-linear operation
    • CNN : convolution + non-linear operation
  • task
    • DNN : loss를 제일 낮추는 weight + bias를 학습
    • CNN : loss를 제일 낮추는 filter 학습
  • input size
    • DNN : 일반적인 linear transformation은 input size가 정해지면 그를 벗어나는 것을 input으로 들일 수 없다.
    • CNN : Convolution은 input size가 달라져도 동일한 filter를 이용할 수 있다.

 

Computer Vision Problem : Find Edges

CNN을 이용하면 vertical edge나 horizontal edge 등을 찾는 문제를 해결할 수 있다.

 

여러가지 Techniques

  • padding
    • padding을 하지 않으면 edge에 대해 convolution 연산을 적용할 수 없기 때문에 output의 크기가 작아진다.
    • valid : no padding
    • same : output size = input size가 되도록 패딩
  • stride
    • 모든 pixel에 대해 연산을 수행하는 것이 아니라 듬성듬성 수행한다.
    • default는 모든 pixel에 대해 수행하는 것으로 strid = 1로 볼 수 있다.
    • 주로 size를 줄이고 싶을 때 사용한다.
    • stride를 하면 output size가 줄어든다.

 

 

Convolution + Non-Linear

CNN은 linear transformation 대신 convolution 연산을 수행한다.

bias와 non-linear 연산은 각 element에 대해 broadcasting으로 적용한다.(element-wise operation)

 

Non-linear 연산까지 지는 결과를 activation maps라 한다.

 

 

댓글