[부스트캠프 AI Tech 5기] Week 4 정리 및 회고

araseo·2023년 3월 31일
0
post-thumbnail

Week4 강의 요약

Image classification

VGGNet

  • 깊고, 단순한 구조임에도 좋은 성능 및 일반화 성능을 가지고 있는 모델

Data augmentation

  • Train dataset은 Real data의 분포를 완벽하게 표현할 수 없음
  • 주어진 데이터들을 일정 부분 변형한 데이터도 추가한다면 조금 더 Real data의 분포에 가까워질 수 있을 것임
  • ex) brightness, rotate, flip, crop, affinetransformation, cutmix etc

Transfer learning

  • 많은 양의 고품질 데이터셋을 구축하는 것은 매우 어려움
  • 비슷한 데이터셋의 경우 공통적인 특징을 가지고 있음
  • 따라서 이전에 '대량'의 '고품질' 데이터셋으로 학습한 모델을 가져와 해결하고자 하는 task에 맞게 적절히 변형 및 학습을 하면 task에 적합한 고성능의 모델을 쉽게 만들 수 있음

Approach 1

  • 마지막 레이어를 자르고, 적절한 크기의 fc layer(혹은 task에 맞는 layer)를 붙여주기
  • 새로 붙인 layer에 대해서만 학습을 진행

Approach 2

  • 마지막 레이어를 자르고, 적절한 크기의 fc layer(혹은 task에 맞는 layer)를 붙여주기
  • 새로 붙인 layer에는 high learning rate로, 가져온 layer 들에 대해서는 low learning rate로 학습을 진행

Semantic Segmentation

FCN

  • 최초의 semantic segmentation을 위한 end-to-end 모델
  • input과 동일한 size의 segmentation map을 출력
  • fc layer 대신 1x1 conv layer를 이용하였기에 임의의 size의 input을 넣을 수 있음
    • fc layer를 사용하는 경우 공간 정보를 상실하게 됨
    • 1x1 conv layer를 사용하는 경우 공간 정보를 유지할 수 있음, 각 픽셀마다의 class를 예측할 수 있게 됨
      • 예측한 score map이 low-resolution이라는 한계점이 존재
      • upsampling을 이용하여 score map을 키움으로써 해결해 볼 수 있음
        upsampling ex) Transposed convolution, Upsample and convolution
  • FCN에서는 score map을 확장하는데 skip connection을 이용
    • lower layers에서의 fine, detail, local한 정보와 higher layers에서의 coarse, semantic, global 정보를 결합

U-Net

  • FCN과 마찬가지로 fully convolutional networks임
  • FCN에서의 skip connections(element-wise add)와 비슷하게, dense map을 예측할 때 contracting path에서의 정보를 concat함
  • 보다 더 정확한 segmentation을 수행할 수 있음

DeepLab

  • Conditional Random Fields (CRFs)
    • input image에서 뽑은 경계를 이용하여 segmentation map의 경계를 정교하게 다듬어주는 post-processing 방법
  • Dilated convolution
    • kernel의 각 element마다 한 칸씩 띄어서 파라미터의 증가 없이도 기존의 convolution kernel보다 더 넓은 영역을 고려할 수 있게 한 방법
  • Depthwise separable convolution
    • 기존의 convolution 방법보다 parameter의 개수와 연산량을 크게 줄일 수 있는 convolution

Object Detection

Two-stage detector(R-CNN family)

R-CNN
  1. image로부터 region proprsal을 뽑기 (약 2k 개)
  2. CNN feature를 계산(이미 학습되어 있는 feature extractor를 사용)
  3. SVM을 이용하여 region classify
Fast-RCNN
  1. image로부터 Conv.feature map 뽑기
  2. ROI pooling을 이용하여 ROI feature 뽑기
  3. 각 ROI에 대하여 class 및 box를 예측
Faster-RCNN
  • R-CNN과 Fast R-CNN에서의 Resion proposal 부분을 neural net으로 만들어 end-to-end로 학습을 가능하게함

Single-stage detector

  • 정확도를 조금 포기하더라도, 속도를 확보해서 real time detection이 가능하도록 설계
YOLO
  • SxS Grid로 나누어 각 Grid에서 box를 특정할 수 있는 4개의 좌표값과 confidence score을 뽑음
SSD
  • CNN pyramidal feature hierarchy를 이용하여 box를 특정할 수 있는 4개의 좌표값과 confidence score을 뽑음
  • 다양한 feature map을 합쳐서 좌표값과 score을 뽑기 때문에 정확도 측면에서 YOLO보다 더 좋은 성능을 보임

Single-stage detector vs. Two-stage detector

  • Focal loss
    • 일반적인 영상에서 background 크기 > 실제 물제의 크기 : 일종의 class imbalance 문제라 볼 수 있음
    • Focal loss란 정답에 가까울수록 gradient가 적게 발생하도록 하고, 어렵고 잘못 판별된 예제들에 대해서는 gradient가 크게 발생할 수 있도록 한 loss임
  • RetinaNet
    • Feature Pyramid Networks(FPN) + class/box prediction branches
    • layer를 깊게 쌓으면 속도가 조금 느리게 되어다로 조금 더 좋은 성능을 보일 수 있음

마스터 클래스 - 안수빈 마스터(서울대 HCI Lab 석사 졸업, 해시드 Data Analyst)

  • export를 support하고, beginner를 끌어줄 수 있는 지속 가능한 개발자가 되자.
  • 내 분야에서 실력도 갖추고, 함께 하고 싶은 개발자가 되자.
  • 프로그래머와 분석가에게 최고로 필요한 언어는 자Python/C++/Java가 아닌 "영어"이다.

한 주 요약

이번 주에는 지난주에 이어 Data viz와 함께 Computer vision에 대해 다룬 강의들을 들을 수 있었습니다. 특히 Computer vision의 기초를 다뤄주신 오태현 교수님께서 수많은 양의 내용들에서 굵직한 부분들을 뽑아 자세히 알려주셔서 Computer vision에 대해 보다 큰 시야로 바라볼 수 있게 된 것 같습니다.
그리고 이번 주의 마지막 피어세션에는, Computer vision 강의 내용들을 바탕으로 팀원 분들과 함께 질문을 주고받는 시간을 가졌습니다. 질문을 정리하면서 어떤 부분이 중요한 부분인지에 대해 고민을 해볼 수 있었고, 질문에 대한 대답을 하며 어떤 부분을 제대로 알고 있는지 혹은 더 공부를 해야 하는지에 대해서 파악할 수 있었기에 정말 유익한 시간이었던 것 같습니다!
벌써 내일이면 4월이라는게 정말 신기합니다...! 매일매일 목표를 세우고 이루어 나가고 있는 것이 제 입으로 말하는 게 조금 부끄럽지만,, 정말 뿌듯하고 하루하루 성장해나가는 느낌이 듭니다!
이번 한주도 수고했으니, 주말은 꽃도 구경하며 재충전하는 시간을 가져야겠습니다☺️🌸

profile
AI를 공부하고 있는 학생입니다:)

0개의 댓글