CNN(Convolutional Neural Networks)
- Covolution이란? 복잡함이란 의미이다.
- 결론 부터 말을 한다면 CNN이란 CONV, ReLU, POOL, Drop-out을 번갈아 적용하여 하나의 Fully Connected Network를 만드는 것을 말한다.
Conv Layer란?
- 이미지에서 필터와 Activation Funtion(ReLU)를 사용하여 하나의 값을 추출하여 하나의 Layer을 만드는 것이다.
- 하나의 예시를 들면, 어떤 색이 있다면 R,G,B필터를 사용하여 3개의 layer로 만들 수 있다. 이를 Conv layer라고한다.
- 이제 필터에 대해서 잠깐 알아보면 N은 이미지 크기(7*7)를 말하고, F는 필터의 크기(3*3)를 말한다,
- 여기서 stride라는 개념이 나오는데 stride란 필터의 한번 이동하는 크기를 말한다.
- Output의 크기는 필터를 거쳐 나오는 결과물의 크기(if stride1, 5*5)를 말한다.
- 여기서 stride가 커지면 커질수록 output의 크기가 작아지는데 이를 막기위해서 padding을 사용하게 된다.
- 쉽게 설명하면 여백을 추가한다.(크기를 키우고 0으로 채워준다.)
이 후 필터를 몇개를 쓰냐에 따라서 Layer의 깊이(두께)를 결정할 수있다.
밑에 예시를 보면 6개의 필터사용시 6개의 깊이의 Conv Layer가 생성된다.
Pooling Layer
- Pooling Layer는 Sampling, Resizing 이라고한다.
- Pooling 방식에는 max-pooling, average-pooling등 여러방식이 있지만 보통 max-pooling을 사용한다.
- max-pooling이란 각 필터안의 값들 중 가장 큰 값을 가져오는 방식이다.
'IT > 머신러닝' 카테고리의 다른 글
[section_7_lab] Meet MNIST Data (0) | 2018.06.01 |
---|---|
[section_12] RNN(Recurrent Neural Networks) (0) | 2018.06.01 |
[section_9] ReLU and 초기값 정하기(1) (2006/2007 breakthrough) (0) | 2018.06.01 |
[section_9_lab] TensorBoard 사용하기 (0) | 2018.06.01 |
[section_9_lab] Wide & Deep Network (0) | 2018.06.01 |