Boostcamper's 주간정리(5)

최현진·2021년 9월 10일
0

boostcamp

목록 보기
16/20

2021/09/10

강의 복습 내용

앞으로 배울 내용들

  • Computer vision: 인간의 다양한 감각중 가장 중요한 감각인 시각을 인공지능 기술로 구현하면 넓은 분야의 task를 수행 가능

  • Fundamental image tasks: Classification, Segmentation, Object detection and segmentation, Panoptic segmentation

  • Data augmentation: Computer Vision 인공지능 개발에 사용하는 데이터는 결국 사람이 찍은 이미지 데이터이며 이는 편향될 수 밖에 없고 현실 세계 전체를 반영하는데 한계가 있다. 조금이라도 현실세계를 반영하기 위해 다양한 전처리를 적용할 수 있다. (Flip, Rotate, Color, Affine,...)

  • Knowledge distillation: 이미 많은 이미지 데이터를 학습한 거대한 모델이 Teacher가 되어 Student 모델이 새로운 데이터를 학습하는데 있어 도움을 줄 수 있고 결과적으로 성능이 좋고 가벼운 모델을 만들 수 있다.

  • Multi-modal learning: 시각적 데이터 이외 text, sound, 3D 정보를 동시에 학습할 수 있는 방법

  • Neural network analysis by visualization: 모델이 학습하는 과정을 시각적으로 나타내는 기술로 그 예로는 모델이 이미지 어느 부분을 중점적으로 바라보고 분류하는지 관찰할 수 있는 CAM이 있다.

CV 분야를 발전시킨 모델

  • AlexNet: 간단한 CNN architecture
  • VGGNet: ReLU, 7x7 filter 등 이미지 모델의 기본 구조를 구성한 모델
  • GoogLeNet: ResNet과 마찬가지로 inception을 적용해 깊이가 깊은 모델을 설계할 수 있음
  • ResNet: residual block을 사용해 connect skip 적용하여 모델의 깊이를 더 깊게 설계할 수 있도록 발전시킨 모델
  • Beyond ResNet: DenseNet, EfficientNet, ...

효과적으로 학습을 하는 방법

  • Data augmentation: 사람이 찍은 이미지 데이터는 현실세계를 반영하는데 한계가 있는데 이를 조금이나마 해결하기 위해 이미지에 다양한 기법을 적용한다. (Rotate, Flip, Blur, Crop, CutMix,...)

  • Transfer learning: 많은 이미지 데이터를 학습한 모델을 불러와 새로운 데이터를 학습시키는 방법으로 새로운 데이터와 이미 학습한 데이터가 비슷한 도메인이라면 성능이 좋은 모델을 기대할 수 있다.

  • Knowledge distillation: 더 많은 데이터를 이미 학습한 (pre-trained) 모델이 Teacher 역할을 하고 Student 모델을 학습시키는 방법으로 새로운 데이터 X에 대해 두 모델이 output을 만들고 지식 증류에서 사용되는 Loss(KL div Loss)를 사용해 Student 모델만 학습하는 방법.

  • Pseudo-labeling: 라벨링이 된 데이터와 라벨링이 되지 않은 데이터 모두를 활용할 수 있는 방법으로 라벨링이 있는 데이터를 먼저 학습하고 라벨이 없는 데이터에 대해 예측해 라벨링을 수행한다. 이 데이터를 Pseudo-labeled dataset 이라 하며 모델은 다시한번 라벨링이된 데이터와 Pseudo labeled 데이터를 재학습 한다.

과제 수행 과정 / 결과물 정리

  • VGG Architecture 구현: 논문에서 소개하는 VGG-11 모델을 구현하였으며 torchvision 모듈에서 제공하는 pre-trained 모델과 결과를 비교해보면서 과제 수행, pre-trained 모델을 freeze 한 것과 fine-tuning 성능을 비교하였다.

  • Data Augmentation: Albumentation, torch, imgaug 에서 제공하는 다양한 전처리 기법을 적용해보고 데이터셋을 고려해 어떤 전처리 기법이 성능을 올릴 수 있는지 학습하였다.

  • Segmentation: Clssification 문제를 해결하기 위해 사용힌 VGG-11 모델을 이용해서 Segmentation 문제에 적용. CNN backbone을 통과시킨 후 1x1 Convolution의 특징을 이용해 공간 정보를 고려할 수 있도록 layer를 구성하고 classification 에서 사용했던 Fully Connected layer의 weight 값을 사용하도록 설계해 segmentation 문제에 적용하였다.

피어세션 정리

  • 새로운 피어들과 자기소개
  • 새로운 그라운드룰 정리
  • CV 강의 및 과제 수행 후 질문
  • 제출한 과제 코드 리뷰 및 질문

학습 회고

본격적으로 도메인별 학습이 진행되었다. CV 1주차에서는 P-Stage에 참여하면서 여기저기서 들었던 기법들에 대해 개념을 많이 알 수 있었다. 이번 U-Stage에서 소개된 여러 기법들을 실제로 구현해보면서 다음 P-Stage에서 잘 적용할 수 있으면 좋겠다.

profile
Boostcamper!

0개의 댓글