Convolutional Neural Network

1. Deep Neural Network

  • Deep Learning이라는 것은 사실 Deep Neural Network를 의미
    feed-forward network에서 hidden layer가 2개 이상이면 ‘deep’하다고 말함
    (Deep Learning 이미 몇 십년 전에 기본적인 연구가 끝난 분야임)
  • Multilayer perceptrons and backpropagation ( Rumelhart et al., 1986 )
    Convolutional network ( LeCun, 1989 )
  • 그런데 Deep Learning 은 2000년도 중반이 지나고나서야 주목을 받기 시작함
  • 과거 Deep Learning은 3 가지 이유로 사기꾼 취급을 받았었음
  • Learning을 deep하게될 경우 발생하는 overfitting에 대한 문제
    network 의 한계에 대한 문제
    어마어마한 computation cost에 대한 문제
  • 하지만  최근 overfitting에 대한 많은 연구가 진행되었으며(2007~2008) network가 deep할 수록 성능이 좋아진다는 것이 밝혀졌고, 과거보다 하드웨어의 스펙이 압도적으로 발전했을 뿐더러 GPU에 대한 이해도가 높아지면서 computation power가 압도적으로 증가하였음
  • 또한 다른 방법론들에 비해 deep learning 기반의 방법론들이 압도적인 분야가 있음
    대표적인 분야들 중 computer vison임

2. Covolutional Neural Network

  •  위에서 언급한 Deep Learning의 첫번째문제

    Learning을 deep하게될 경우 발생하는 overfitting에 대한 문제
    -overfitting은 주어진 데이터의 양에 비해 모델의 complexity가 높으면 발생
    -network가 deep할 수 록 complexity는 exponential하게 증가하게 됨

  • Convolutional Neural Network(CNN)은 모델의 complexity를 줄이는 것으로 overfitting문제를 해결
  • 각각의 layer가 feature를 생성해내고, 이 feature들이 계층적으로 샇이면서 더 높은 layer로 갈수록 더 좋은 feature를 만들어 냄
  • feature를 뽑아내는 대신, 데이터에서부터 가장 좋은 최종 feature를 만들도록 학습시킴
    cnn3

 

댓글 남기기