Week9 - Day 3~4 Review


3~4일간 한 일

  • 심화 과제 2, 3 완료
  • 9강 Multi Modal 완료
  • mmdetection 시험 기동
    • mlflow
    • fp16 - 실패

2. 피어세션에서 한 것

  • Controllable GAN & Conditional GAN
    • Controllable GAN
      • Noise 컨트롤을 해서 원하는 Generate Image를 생성
      • Entangle한 latent noise의 vector공간을 펴서 원하는 이미지를 유도
      • 따로 GAN의 구조를 바꾸지 않아도 기능의 장착이 가능하다
    • Conditional GAN
      • Conditional Input을 집어넣어서 원하는 Category의 Data를 생성
      • Category 자체가 바뀌기 때문에 Controllable 보다 큰 변화를 줄 수 있다
      • 학습을 시킬때 Conditional Input과 함께 학습을 시켜야 한다
  • 피어세션에서 한 질문

3. 하루 느낀점

  • 심화 과제한다고 시간이 너무 많이 지나갔다
    • 과제코드가 이상하게 많이 꼬여있었다…..
  • 할게 진짜 많은데 시간이 너무 부족하다

4. 미세 꿀팁

  • torch.sort는 output으로 2개를 지정하면 value값과 indice 값을 같이 준다

Week9 - Day 2 Review


1. 오늘 한 일

  • 이고잉님 Github 특강
  • CV Wiki AlexNet 작성
  • Kaggle 스터디 발표 준비

2. 하루 느낀점

  • CLI가 친숙해서 GUI를 이용한 Git관리는 오히려 낯설었다
  • 하루종일 Git만 한다고 정리는 생각보다 많이 하지 못했다

3. 미세한 꿀팁

  • git checkout 명령어는 branch가 우선순위를 가진다
    • 같은 이름의 commit과 branch가 존재 할 때 branch에 head가 간다

Week9 - Day 1 Review


오늘 한 일

  • Instance Segmentaion 강의 및 퀴즈 완료
  • Conditional GAN 강의 및 퀴즈 완료
  • 기본과제 4번 CGAN 완료

2. 피어세션에서 한 것

  • 질문 정리 링크
  • receptive field 에 관한 추가 정리
    • Pooling Layer는 receptive field를 키워준다?
      • Atrous convolution와 비슷한 개념
      • 한번에 더 큰 영역을 볼 수 있다고 생각할 수 있음

3. 하루 느낀점

  • P-Stage가 1주일 남은 시점에서 정리를 빠르게 끝내고 싶은데 할게 너무 많다
  • 나의 삶의 지도 작성을 하면서 오랜만에 다시 나에 대해서 생각해본 날 이었다

Week8 - Day 5 Review


1. 오늘 한것

  • 정리 마무리

2. 피어세션에서 한 것

  • 팀 공통 정리 문서 만들기!

3. 주말 할 일

  • CNN Viz 정리 마무리
  • 다다음주 P-Stage를 대비하여 필요한 지식을 미리 찾아두고 공부해두기
  • Kaggle 스터디 발표준비

4. 하루 느낀점

  • CV wiki를 작성하기로 했는데 잘 되었으면 좋겠다
  • 그리고 꼭 CV에 국한된 것이 아니라 부캠 전체 공유하는 위키 만드는것도 한번 고려를 해보려고 한다
  • 같이 위키만들 사람 구하려면 기초부터 조금 잘 만들어두어야 겠다

5. 미세 팁

  • 오늘은 없습니다

reference

Week8 - Day 1~4 Review


1. 1~4일간 한 것

  • CV 트랙 강의 수강 완료
  • 과제 완료
  • 추천 시스템 청강 준비

2. 피어세션에서 한 것

  • receptive field 에 관한 정리
    • Convolution Layer에서 한번에 받을 수 있는 영역의 크기
    • 이 영역이 클수록 한번에 볼 수 있는 정보의 크기 또한 커진다
      • 성능의 향상
  • 과제 리뷰
    • 1번과제 Resnet 34 scratch 구현에서의 의문점에 관하여 토론
      • ReLU의 적용 시점에 따라서 성능이 갈리지 않나?
    • 가이드라인 코드에서는 ReLU를 Skip Connection과 합치기 전에 각각 적용함
    • 직접 만든 코드에서는 ReLU를 합친 output에 적용하였다
    • 성능은 직접만든 코드쪽이 월등하게 높은것으로 나타났다

3. 주말 할 일

  • 다다음주 P-Stage를 대비하여 필요한 지식을 미리 찾아두고 공부해두기
  • Kaggle 스터디 발표준비

4. 하루 느낀점

  • 팀원이 바뀌고 새로 그라운드 룰부터 많은것을 정하기위해 정말 많이 이야기했다
  • 아직 바뀐지 얼마 지나지 않아서 조금은 어색한 느낌이 있다
  • 금방 좋아지겠지

5. 미세한 팁

Week7 Review


P-Stage 회고

1. P Stage 동안 진행 한 일

  • Pytorch Lightning을 이용한 베이스 라인 코드를 작성하였다. Yaml파일을 이용하여 빠르게 Hyperparameter와 모델을 수정 할 수 있도록 코드를 설계했고, 이 코드를 바탕으로 팀에서 많은 실험을 할 수 있었다.
  • 하나의 Task를 분리하는 가설을 세우고 검증하였다. 마스크, 성별, 나이 3가지를 한 모델로 판단하는 것보다 3개의 모델로 3가지를 따로 판단하는 것이 더 학습시키기 용이하다고 생각하였다. 동일 모델 동일 Hyperparameter를 가지고 Target Label만 바꿔서 학습을 시켰을 때 약 0.01의 스코어 상승이 있었다.
  • Soft Voting 구현을 하였다. 최종 제출을 앞두고 Soft Voting 을 구현하여 0.015정도의 스코어 상승을 실현했다.
  • Gradient Cam Module을 코드에 사용할 수 있게 적용하였다. 이를 통하여 일부 모델이 예측할 때 강한 옷의 무늬나 배경이 영향을 준다는것을 확인하였다.
  • 베이스라인 코드에 Layer Freeze 기능 추가. 학습이 진행되면서 Loss값이 증가하는것을 확인하고 이를 방지하기 위해 특정 Epoch가 지나면 자동으로 Layer를 Freeze 하도록 코드를 수정하였다.

2. 한계 및 아쉬웠던 점

  • 시간상의 제약으로 여러가지 실험을 진행하지 못한 가설들이 여러가지 있어서 많이 아쉬웠다
    • mean variance loss를 이용한 Regression Model로 나이 예측
    • 추가적인 데이터 전처리 (배경 제거, 학습시킨 모델을 이용한 이상치 제거)
  • SOLID 원칙을 일부 지키지 않아 코드의 재사용성이 조금 떨어져서 기능을 추가할 때 고쳐야할 코드가 많아지고 이때문에 시간이 더 소요되었다
  • 협업 툴을 사용하긴 했으나 제대로 활용되지 않아서 아쉬웠다.

3. 다음 프로젝트 위해 해보고 싶은 것

  • 여유를 가지고 프로젝트에 임하기 위해서 자신만의 유연한 베이스라인 코드를 완성시키고 싶다
  • 협업 툴 사용이 미숙하여 체계적으로 협업을 진행하지 못한것에 대해서 아쉬움이 남아 미리 팀 룰을 정하고 체계적으로 역할을 분담하여 진행해보자 한다

4. 느낀점

  • 2주동안 진행되었던 P-Stage가 끝나고 기존 팀원들과 흩어지고 새로운 팀으로 이동하게 되었는데 아쉽기도 하면서 기대되기도 한다.
  • 급하게 하다보니 시간이 많이 부족했었다. 아직 Pythonic하지 못한 듯 하다. 더 노력해야지

Week6 - Day5 Review


1. 오늘 한 것

  • P-Stage
    • ipynb파일로 구현한 Baseline Code를 분리 및 모듈화
    • GradCam이 코드에 적용되도록 구현

2. 피어세션에서 한 것

  • mask RCNN 논문 리뷰

3. 주말 할 일

  • 베이스라인 코드를 가지고 가설검증(주말내에 끝내기)
  • 실험 정리

4. 하루 느낀점

  • 하루종일 코드만 보고있어서 조금 지친 하루가 된것 같다
  • level2에서 같이 팀을 하자고 연락이 온 캠퍼들과 이야기를 나누었는데 긴장되어 보였다

5. 미세한 팁

  • pyyaml로 yaml파일을 불러올때 1e5같은 형식의 수치는 str형으로 받아온다
  • 이때 float형으로 받고 싶으면 1.0e5같이 쓰면 된다
  • Linear scaling role
    • 배치사이즈와 비례해서 lr을 움직여야 한다

Week6 - Day4 Review


1. 오늘 한 것

  • P-Stage
    • Baseline code 추가수정
    • Grad cam 코드 구현

2. 피어세션에서 한 것

  • P-Stage
    • 팀원들에게 Baseline코드 설명

3. 내일 할 일

  • ipynb 파일을 Python IDE로 변환

4. 하루 느낀점

  • 하루종일 코드만 보고있어서 조금 지친 하루가 된것 같다
  • level2에서 같이 팀을 하자고 연락이 온 캠퍼들과 이야기를 나누었는데 긴장되어 보였다

Week6 - Day3 Review


1. 오늘 한 것

  • P-Stage
    • 기존의 CV score와 LB score간의 차이가 큰점을 해결하기 위해 베이스라인 코드를 수정하였다
  • Kaggle Study
    • House Price Dataset에 관한 EDA 발표
      • 화장실에 대한 고찰
      • Data Descript.txt를 읽고 데이터에 대한 고찰

2. 피어세션에서 한 것

  • P-Stage
    • 팀원들과 여러가지 가설을 세워보았다
    • Data Agument를 위한 Transform 선택
    • Face Crop
    • Model Design

3. 내일 할 일

  • 가설 검증을 위한 코드 제작

4. 하루 느낀점

  • House price 데이터가 column이 많아서 다시 봐도 헛갈린다
  • 스터디를 마치고 김태진 마스터님이 좋은 말씀을 많이 해주셨다
    • 역시 즐겁게 해야 오래 할 수 있다

Week6 - Day1 Review


1. 오늘 한 것

  • 강의
    • 1~6강
  • P-Stage
    • EDA
    • Dataset 코드 작성
    • Solution에 필요한 논문탐색

2. 피어세션에서 한 것

  • P-Stage가 시작해서 팀원들과 어떤방식으로 진행해야할지 대해서 의논하였다

3. 내일 할 일

  • Pytorch Lightning base코드 작성
  • 일부 모델 구성 생각

4. 하루 느낀점

  • 드디어 P-Stage가 시작하였다. 열심히 진행해서 좋은 결과를 내면 좋겠다.