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이 있다.
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 1주차에서는 P-Stage에 참여하면서 여기저기서 들었던 기법들에 대해 개념을 많이 알 수 있었다. 이번 U-Stage에서 소개된 여러 기법들을 실제로 구현해보면서 다음 P-Stage에서 잘 적용할 수 있으면 좋겠다.