CNN(Convolutional Nerual Network) : 합성곱 신경망
앞서 본 classic한 NN(fully connected netowrk)에서는 한 뉴런이 전 layer의 모든 neuron과 연결되어있다.
CNN에서는 이전 layer의 일부 neuron과만 연결되어 있는 부분이 존재한다.
이런 연산 과정은 filter와 pooling을 통해 구현하는데, 이것은 조금 더 뒤에서 확인하자.
CNN은 이미지, 영상, 음성처럼 데이터량이 많고, locality가 있는 분야에 주로 사용된다.
이러한 분야의 데이터는 classic한 NN을 이용할 경우 몇 가지 문제가 생긴다.
1) 연산량이 너무 많다
2) 데이터가 조금만 변경되어도 다른 것으로 인식해버린다.
이미지를 예를 들어 생각해보자. A가 쓰인 이미지가 있을 때, 글자의 크기가 커져도, 글자가 회전되어도 모두 A로 인식되어야한다.
fully connected network에서는 모든 경우에 대해 데이터를 만들고 학습을 해야한다. 따라서 많은 데이터가 필요하고, 그에 따라 연산량과 학습시간이 증가했다.
CNN 구조. 연산 과정
이런 한계를 극복하기 위해, 데이터에서 먼저 특징을 추출하고
그 다음에 fully connnected layer를 이용한다.
Convolution(filter)
Pooling
출처 및 참고 자료 :
https://adeshpande3.github.io/A-Beginner%27s-Guide-To-Understanding-Convolutional-Neural-Networks/
https://deepestdocs.readthedocs.io/en/latest/004_deep_learning_part_2/0043/
'Machine Learning > 이론 정리' 카테고리의 다른 글
3-4. Neural Network 연산 - Backpropagation(역전파) (0) | 2020.02.14 |
---|---|
3-3. Neural Network 연산 - feedforward, loss function (0) | 2020.02.14 |
3-2. Neural Network(인공 신경망) 의 구조, activation function(활성함수) (0) | 2020.02.12 |
3-1. neural network(인공 신경망)의 기본 개념 (0) | 2020.02.11 |
2. 인공지능(artificial intelligence) vs. 머신러닝(machine learning) vs vs. 인공 신경망(neural network) 비교 (0) | 2020.02.11 |