ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • CS231n 2017 lecture 5
    머신러닝 기초 2019. 7. 31. 23:02
    반응형

    1. Convolutional Neural Networks

     

    Convolutional Neural Networks(CNN)의 역사는 넘어간다. 아래 그림은 초창기의 CNN 구조 중 하나이다.

     

     

    CNN의 layer들은 필터에 의해 연산된다. 예를 들어 아래와 같이 입력 이미지의 크기를 32x32x3이라 하고 필터의 크기를 5x5x3이라고 하자.

     

    이때 주의할 점은 필터의 depth(여기서는 x3)는 항상 이미지의 depth와 그 크기가 같아야 한다는 점이다.

     

     

    이러한 필터는 이미지와 convolution 연산을 하는데, 이미지 위의 5x5x3의 원소들과 필터의 5x5x3 원소들과의 내적을 하게 된다. 이때 bias항이 더해진다. 이러한 과정은 convolution과 약간의 차이가 있지만 결과적으로 거의 유사하여 Convolutional Neural Networks라고 불린다. 결국 5x5x3=75번의 내적을 수행한다. 필터로 convolution되는 layer를 convolution layer라고 부른다.

     

     

    이 필터가 이미지 위를 slide 하면서 모든 위치에 대해 convolution을 수행하면 결과적으로 28x28x1의 activation map이 출력된다. 결국 필터 하나당 activation map의 depth 한 층이 생성되는 것이다.

     

     

    예를 들어 필터를 6개를 사용한다면 activation map의 크기는 28x28x6이 된다. 따라서 activation map을 입력으로 가지는 새로운 layer는 depth가 6인 필터를 사용해야 한다.

     

     

    위는 실제 Convolutional Neural Networks에서 각각의 필터를 통과시킨 다음 activation map을 나타낸 것이다. 처음 입력 이미지에 필터를 통과시키면 (즉 convolution을 수행하면) 이미지의 저수준의 특징들이 보인다. (모서리 등등) 필터를 여러 개 사용하는 이유는 다양한 특징점들을 잡기 위함이다.

     

    convolution 이후 이미지의 크기가 감소하는 이유는 필터의 크기 때문이다. 위와 같이 3x3 필터가 7x7 이미지를 통과하면 (상하좌우 1칸씩 움직여서) 5x5 이미지로 그 크기가 감소할 것이다. 이때 필터가 움직이는 크기를 stride라고 하는데 이 경우는 stride=1이다. 만약 stride가 2라면 출력 이미지는 3x3으로 더욱더 작아질 것이다.

     

     

    흔히 stride는 1, 2 이외의 값을 잘 사용하지 않는다. 위 그림처럼 필터가 이미지를 정확히 덮지 못하고 학습 시 불균형이 발생할 수 있기 때문이다.

     

     

    padding은 이미지 가장 바깥쪽에 0으로 구성된 픽셀들을 추가하는 것인데, 이 과정을 거치면 convolution 이후 이미지의 크기가 감소하는 것을 막을 수 있다. 이미지 크기가 너무 작아지면 정보의 손실이 커서 제대로 된 학습이 어려워진다.

    (참고로 필터의 개수는 32, 64, 128등 2의 제곱수를 많이 사용한다.)

     

     

    어떠한 경우는 1x1 크기의 필터를 사용하는 경우가 있는데, 이 경우 이미지의 크기는 동일하나 depth를 필터의 개수만큼으로 변화시킨다. 예를들어 32개의 1x1 필터를 사용하면 출력 이미지의 depth는 32가 된다.

     

     

    pooling layer는 이미지를 downsampling 하는것과 비슷하다. 이러한 과정은 이미지의 특징점들을 관리하기 편리하게 만든다.

     

     

    pooling의 대표적인 예로 MAX pooling이 있다. MAX pooling은 그림처럼 이미지를 2x2 그리드로 나누고 각 그리드 내의 가장 큰 원소만 추출하는 과정이다. 결과적으로 출력 이미지는 입력 이미지의 절반 크기로 줄어든다.

     

     

    CNN으로 image classification을 하는경우 convolution 이후 fully connected layer로 연결된다.

    반응형

    '머신러닝 기초' 카테고리의 다른 글

    Maximum likelihood estimation  (0) 2019.09.20
    CS231n 2017 lecture 6 - part 1  (0) 2019.08.02
    CS231n 2017 lecture 4 - part 2  (0) 2019.07.30
    CS231n 2017 lecture 4 - part 1  (0) 2019.07.28
    CS231n 2017 lecture 3  (0) 2019.07.26

    댓글

Designed by black7375.