-
CNN을 이미치 처리에 쓰는 이유 (affine layer, FC layer, MLP)1) Tech 2020. 3. 8. 11:57반응형
CNN을 연구하다 보면 본질적인 궁금증이 생길겁니다.
왜? DNN중에서 CNN이 image 처리에서 강점을 보일까입니다.
저도 이제까지 이유는 알고는 있지만 정확하게는 설명을 못하는 부분이기도 해서 이렇게 정리합니다.
========================================================
DNN은 다음과 같은 순서대로 공부를 많이할겁니다.
Perceptron -> MLP (Multi-layer Perceptorn) -> CNN (Convolutional Neuron Network)
1. Perceptron은 말그대로 인간의 brain의 신경세포(Neuron)에서 motiv를 얻었습니다.
2. MLP는 Perceptorn을 여러개 FC layer을 쌓은 것입니다.
MLP의 layer를 부르는 명칭을 여러가지 인데 이를 모두 알고 가면 좋겠습니다.
Affine layer, FC layer(Fully-connected)로 불려집니다.
3. CNN은 Convolution연산을 진행하는 CONV layer와 FC layer로 이루어져 있습니다.
========================================================
그럼 왜 MLP보다 CNN이 computer vision에 더 사용될까요?
이유는 간단합니다.
MLP는 input image의 3차원 형상을 고려하지 않습니다.
CNN은 이를 고려합니다.
MLP는 FC layer로 이루어져 있는데 이는 input image의 3차원 형상을 1차원으로 평탄화(flatten) 시킵니다.
image안의 pixel끼리의 관계를 전혀 고려하지 않고 쭉펴버린 후에 그냥 filter와 연산을 진행한겁니다.
CNN의 Convolution연산은 평탄화(flatten)를 하지 않습니다.
CNN의 CONV layer는 image안의 pixel끼리의 관계를 그대로 고려합니다.
한마디로, MLP는 FC layer로만 이루어져 있고, CNN은 CONV layer와 FC layer로 이루어집니다.
FC layer는 image를 1차원으로 만들기 때문에 image안의 공간적 형상을 무시(?)합니다.
반응형'1) Tech' 카테고리의 다른 글
Pooling을 사용하는 이유, pooling의 특징, pooling의 효과 (CNN, Sub sampling, Max pooling, Average pooling) (1) 2020.03.08 DNN의 특징 (Heuristic, 발견법) (0) 2020.03.08 epoch / batch / iteration (0) 2020.02.28 CNN이 다루는 문제들 (Classification, Localization, Segmentation) (0) 2020.02.25 Data set의 분류 (Training / Validation / Test) (0) 2020.02.24