Deep Learning Applications

JOY JHJEONG·2021년 12월 11일
0

CNN(Convolutional Neural Network)

최근의 컴퓨터비전(Computer Vision, CV)은 대부분 convolution에 의존하고 있다. Weights를 공유하며, 특징을 추출하는 데 이만한 방법론을 찾기 어렵기 때문이다.

  • Fully connected layers 대신 Convolutional layers를 사용할 때 이점
    • 변수 공유(Parameter sharing)
      A feature detector (such as a vertical edge detector) that's useful in one part of the image is probably useful in another part of the image.
    • 희소 연결(Sparsity of connections)
      In each layer, each output value depends only on a small number of inputs.

  • 예시
    • 사물인식
      Object Detection (YOLO) + RCNN(Fast, Faster, MASK RCNN)
    • 포즈예측
      Pose Estimation (PoseNet)
    • 윤곽분류
      Instance Segmentation (Detectron)
      ...

  • Convolution
    컨벌루션을 적용하면 입력의 모양(shape)이 효과적으로 변환된다.
    • filter
      edge를 검출(dectection)하는 역할
      가중치(weights parameters)의 집합으로 이루어져 가장 작은 특징을 잡아내는 창

    • padding
      padding을 더해서 convolution 하면 output이 변화하지 않게 만들 수 있다. 즉, output이 input과 동일한 형태가 나올 수 있게 된다. (원래는 output size 감소)
    • stride
      Zeros(또는 다른 값)를 이미지의 외각(가장자리)에 배치하여 conv를 할 때 원래 이미지와 같은 데이터 수를 가지도록 도와준다. (Stride=1일 때)
      • filter를 한번에 얼만큼씩 이동시킬 것인지 결정하는 수
      • Stride를 이용한 Convolution의 경우는 pooling이 자동으로 되는 방식이다.

  • Pooling Layer
    pooling layer를 사용하여 피처맵의 차원 축소
    conv 적용 이후 레이어를 pooling하여 점점 더 작은 피처맵을 얻고, 이렇게 줄어든 피처들을 이용하여 ANN 형태의 신경망에 넣어 분류 또는 회귀 수행


  • CNN 분류기


  • 전이학습(Transfer Learning)

Reference


Segmentation & Object Recognition


AutoEncoder(AE)


GAN(Generative Adversarial Network)

profile
Data Scientist를 향한 공부 기록✏️

0개의 댓글