본문 바로가기
파이썬 & 머신러닝

FNN, CNN, RNN 장단점

by 두재 2020. 5. 19.

FNN (Fully connected Neural Network)

Pros : 단순하고 매우 Powerful함. 많은 관계를 모델링 할 수 있음

Cons : 파라미터의 개수가 매우 많이 필요하여 메모리, 컴퓨팅 파워 필요, Curse of dimension(차원의 저주)로 오버 피팅(over fitting)이 일어나기 쉬움

 

CNN (Convolutional Neural Network)

Pros : 파라미터의 개수를 굉장히 줄었다. local information을 효율적으로 볼 수 있어 컴퓨터 비전 분야에서 가장 많이 사용됨.

Cons : Local information은 좋지만 멀리 있는 픽셀 들 간의 관계를 보려면 layer를 많이 쌓아야 한다. 다시 말해 Field of View 늘리려면 Deep architecture 여야함. ResNet의 등장으로 나름 괜찮아졌지만 Deep architecture는 Gradient vanishing, exploding 등의 문제로 학습이 어렵거나 오래 걸리긴 함.

 

RNN (Recurrent Neural Network)

Pros : 파라미터의 개수가 굉장히 줄었다. Sequential information을 다루는데 효율적이고 RNN으로부터 나온 LSTM (Long Short Term Memory network), GRU (Gated Recurrent Unit) 등은 MT (Machine Translation; 번역), Sentiment Analysis (감정 분석) 과 같은 NLP (Natural Language Processing) 태스크에 많이 사용된다.

Cons : 기본적인 RNN은 하나의 파라미터를 가지고 여러 시간대의 output과 input 사이의 관계를 표현하는데 RNN 하나만 가지고 관계를 표현하기에는 부족한 경우가 있다. 너무 많이 abstract 하는 경우가 있다.