부스트캠프 AI Tech 4기 Week 4

Geonhee Sim·2022년 10월 14일
0
  • 피드백은 언제나 환영입니다!

학습 내용

4주차는 data augmentation, ResNet, semantic segmentation을 직접 구현해 보았다.

ResNet

Deep Residual Learning for Image Recognition

ResNet은 위의 residual mapping 이 핵심이다. 기존 네트워크인 H(x) 그대로보다 residual mapping 구조가 포함된 네트워크 F(x)+x 로 나타낸 것이 최적화하기 더 쉽다는 것이다. ResNet이론에 대해 배우고, 논문을 보면서 34-layer ResNet을 직접 구현해봤다. 아래 마지막 fc를 제외하고 convolution layer로만 구성된 34-layer plain에 residual mapping을 추가한 34-layer residual을 구현하는 것이 목표였다.

논문을 보면서 구현하다 느낀 점은,

  1. 논문 설명이 생각보다 친절하다는 것
    영어도 못하고😂 모델을 직접 작성하는 것에 익숙하지 않아서 힘들었지, 논문을 여러 번 읽으면서 느낀 점은 필요한 정보는 다 제공하고 있다는 것이었다. 구현에 필요한 정보를 다 확인하다보니 모델에 대한 이해도도 높아졌다. 왜 논문을 보면서 직접 모델을 구현해봐야 한다고 했는지 알 수 있었다.
  2. 인용된 논문도 살펴봐야 한다는 것
    논문에서 filter의 개수와 size는 알려주었지만, padding과 stride에 대한 정보를 찾을 수 없었다. 나는 내가 영어를 못해서 못 찾았다고 생각해서 구조에 대한 설명 부분을 몇 번이나 읽어보았는데, 끝내 알아낼 수가 없어서 화가 났었다. 그 때 불현듯 생각난 것이 34-layer plain은 VGG에서 '영감을 받은' 구조라는 것이었다. VGG 논문에서 위 파라미터들에 대한 값을 찾았을 때의 그 쾌감과 허탈함이란! 이전 논문을 인용하고 있다면 그 논문도 살펴 볼 것을 염두에 둬야 한다는 것을 깨달았다.

Semantic Segmentation

image classification은 이미지 한 장에 대해서라면, semantic segmentation은 한 픽셀에 대해 classification을 하는 것과 같다. Semantic segmentation을 수행하는 모델 중 FCN을 구현해보았다. 처음부터 구현하는 것은 아니고, 1) VGG backbone에 11 convolution layer 및 upsampling 추가, 2) VGG-11 classifier의 마지막 fc의 weights를 11 convolution의 weight에 적용 후 segmentation까지 수행해 보았다. 결과는 그리 잘 나오진 않았는데(마스크를가 아니라 이마에 히트맵이 나타난다던지..), 이는 마스크에 해당하는 픽셀별 ground truth가 안주어졌으며, 입력 이미지에 비해 16분의 1 사이즈의 feature map에서 예측을 진행하고 또한 단순히 bilinear interpolation만을 진행했기 때문이다.

피어세션

월요일은 휴일이었어서 화요일에 확률론과 알고리즘 두 개 스터디를 한 번에 진행했다. 확률론은 이제 한 번에 이해하기 어려운 내용들이 나타나기 시작했다... 몬티홀 문제는 여전히 신기했고 심슨 역설도 팀원들과 이야기 하면서 이해했다. 수학적 사고란 어떻게 잘 할 수 있는 것일까...
이번 주 피어세션은 과제와 강의 내용에 대한 질의응답 외에 프로젝트 아이디어에 대한 이야기도 나눴다. 팀원들과 이야기 나눈 것을 토대로 주말에 학습에 사용할만한 데이터와 모델, 그리고 혹시 더 디벨롭할 부분이 있을지 더 찾아볼 예정이다.

학습회고

논문 읽으면서 적힌 내용을 그대로 받아들여 코딩 한다는게 생각보다 힘들었다. 영어로 되어 있는 문장을 모국어로 알고 있는 용어, 지식으로 변환하는 것 자체도 힘들었고, 처음으로 모델을 직접 구현해보는 거라 간단한 코드지만 완성까지 오랜 시간이 걸렸다.
뒤쳐지지 않고 SOTA를 계속해서 따라가려면 논문에 익숙해져야 겠다고 생각했다.

profile
기록이란 걸 해보자

0개의 댓글