뒤로 갈수록 이해하기 어려워진다.
오늘 공부한 내용은 Convolutional Nerual Network에 대한 내용이다.
강의는 https://youtu.be/Em63mknbtWo 를 참고.
CNN은 고양이를 통한 실험에서 시작되었다고 한다.
고양이에게 이미지를 보여주고, 뉴런이 활성화되는 부분을 관찰하니, 이미지의 부분 부분 마다 활성화되는 곳이 달랐다는 것이다.(Hubel & Wiesel, 1959)
전체적인 그림은 하나의 이미지를 잘라서 아래처럼 구성하는 것이다.
CONV RELU CONV LERU POLL CONV RELU ... FC(fully connected nerual network)
32 X 32 X 3의 이미지가 있다면, 이미지의 일부분만 처리하는데(filter)
이런 filter를 사용해서 하나의 숫자(one number)로 만든다. =wx + b를 사용해서(=ReLU(Wx + b)
ex) filter size : 5 X 5 X 3, w1x1 + w2x2 + w3x3 + ... + w25x25 + b
이렇게 필터를 통해 하나의 숫자로 만드는 과정을 이미지에서 stride size에 따라 추출한다.
stride size = 1이라는 것은 N X N 사이즈에서 1씩 shift한다는 의미이다.
7 X 7 이미지에서 3 X 3 filter, stride 2로 뽑는다면 3 X 3이 나온다.
즉, (N -F ) / stride + 1
실제로 사용할 때는 0 padding을 써서 사방에 0을 추가한 뒤 같은 size를 얻도록 하여 사용한다.
=> filter 사용으로 이미지가 작아지는 것을 방지
이런 filter를 여러개 적용하는 것이 convolution layer가 되고, 이를 계산하면 activation maps(x, y, 6)이 이렇게 계산된다.
(CONV + RELU) + (CONV + RELU) + (CONV + RELU) + ...
이런 형태가 CNN이라고 한다.
* 이번 블로그는 주저리 주저리 적어놓은 글이되었다. 좀 더 내용을 이해한다면 수정해야겠다.
* 그리고, 글로만 설명하기에는 부족함을 느낀다. 그림을 그려야 하나 싶다.
'Computer > DeepLearning' 카테고리의 다른 글
CNN case study (0) | 2016.06.14 |
---|---|
CNN : Max pooling 과 Full Network (0) | 2016.06.14 |
레고처럼 넷트웍 모듈을 마음껏 쌓아 보자 (0) | 2016.06.09 |
Dropout & Ensemble (0) | 2016.06.09 |