Deep Learning2020. 1. 3. 23:55
반응형

 김성훈 교수님의 [모두를 위한 딥러닝] 강의 정리

 - https://www.youtube.com/watch?reload=9&v=BS6O0zOGX4E&feature=youtu.be&list=PLlMkM4tgfjnLSOjrEJN31gZATbcj_MpUm&fbclid=IwAR07UnOxQEOxSKkH6bQ8PzYj2vDop_J0Pbzkg3IVQeQ_zTKcXdNOwaSf_k0

 - 참고자료 : Andrew Ng's ML class

  1) https://class.coursera.org/ml-003/lecture

  2) http://holehouse.org/mlclass/ (note)

  3) http://cs231n.stanford.edu/

 

1. Convolutional Neural Networks (CNN)

 - CONV와 RELU가 한 쌍으로 구성, 중간에 POOL(pooling, sampling, resizing)이 들어감

 - FC : Fully Connected network

 

2. image로 CNN 이해하기

 (1) Start with an image (width x height x depth)

  - 그림 크기 32 x 32

  - 색상 3가지(red, green, blue) x 3

 

 (2) Let's focus on a small area only (5 x 5 x 3)

  - 색상에 해당하는 3은 항상 같아야 함

 

 (3) Get one number using the filter

  - 필터가 차지하는 영역을 하나의 값으로 변환 : Wx + b

  - W는 weight (필터에 해당), x는 외부에서 읽어온 값으로 불변(이미지에 해당)

  - CNN의 목표는 올바른 필터를 찾는 것

  - ReLU 함수를 이용하고 싶다면 간단하게 ReLU(Wx+b)

 

 (4) Let's look at other areas with the same filter

  - 동일한 필터를 사용하여 다른 영역도 조사

 

  - 이 때 필터가 움직이는 규칙을 stride라고 하며, ouput의 크기를 계산하면 다음과 같음

    output size = (input size - filter size) / stride + 1

 

  - 이와 같이 반복되는 경우 convolutional layer를 거칠 때마다 output의 크기가 작아지는 문제가 발생함

    => padding을 통해 해결 (원본이미지 주변을 0으로 채움)

 

 (5) Swiping the entire image

  - activation map : 여러 개의 필터(convolutional layer)를 거친 출력 결과(channel)

 

  - activation map(28, 28, 6) :

    output size 28 = (input size 32 - filter size 5) / stride 1 + 1

    filter 개수 6

 

 (6) Convolutional layers

  - CONV를 거칠 때마다 크기가 작아지고 두꺼워짐

  - 두께는 필터의 개수, 색상, 채널(channel)을 의미함

 

3. Pooling (sampling, resizing)

 

 - Max Pooling : 여러 Pooling 기법 중 가장 많이 사용. 여러 개의 값 중 가장 큰 값을 꺼내서 모음

 

4. FC layer (Fully Connected Layer)

 - 아래 그림의 경우, 최종 결과물이 5개 중 하나 : softmax 사용 

 

 - CNN 동작을 시각적으로 보여주는 웹사이트 : https://cs.stanford.edu/people/karpathy/convnetjs/demo/cifar10.html

 

ConvNetJS CIFAR-10 demo

 

cs.stanford.edu

 

반응형
Posted by CCIBOMB