17주차

J. Hwang·2024년 11월 30일
0

Boostcamp AI Tech

목록 보기
17/25

Day 1. Monday

✏️ 복습

👶 Mentoring

  • 둘째 주 대회 진행 상황 보고
  • 특정 모델이 뭘 잘하고 있고 뭘 못하고 있는지를 분석할 수 있어야 함. 클래스별 dice 점수를 확인해서 top 5, worst 5를 시각화 등을 이용해 자세히 분석하기.
  • 같은 모델 내에서 모델 사이즈가 다를 때는 성적이 어떻게 변화하는지 알아보는 것도 좋음
  • 아주 작은 점수 차이는 random seed만 바뀌어도 바뀔 수 있는 수치이다. 따라서 그 미세한 점수 차이를 맹신하기 보다는 여러 번 반복 실험을 통해 유의미한 차이가 있는지를 분석해야 한다.
  • Youden's J statistics
    • 이진 분류 문제에서 분류 성능을 평가하기 위한 metric
    • 민감도(질병이 있을 때 탐지율)와 특이도(질병이 없을 때 비탐지율)가 중요한 의료 AI 문제에서, 양쪽을 균형 있게 평가할 수 있는 척도로 활용
  • 손목 모델 개발할 때 1024 x 1024로 이미지 업샘플링을 하는 것도 좋은 방법
  • 보다 큰 크기로 resize할 때에 interpolation 방법이 바뀌면 성능이 많이 바뀔까? → dice score는 면적이 더 큰 영향을 미치기 때문에 interpolation 방법에 크게 영향을 받지는 않을 것이다. 다만 smooth한 interpolation이 더 좋을 듯.
  • wrist bone augmentation 등에 대해 논문을 먼저 검색해서 공부한 다음에 실험하자!!

🙌🏻 Peer Session

  • 손목 모델 관련 논의
    • pisiform을 잘 못 잡고, Hamate를 너무 크게 잡고, 3개 이상 겹치는 뼈를 잘 잡지 못함
    • 손목 모델 Dice score 다시 확인하기
      model.py에서 classes를 손목 8개만 남겨둬야 한다!!
  • 추후 실험 계획
    • 윤곽을 살려서 학습시키면 끝쪽 손가락 뼈를 잘 잡을 것
    • 이미지 사이즈 → 1536 x 1536 으로 학습 시도
    • IoU 최적의 threshold 조절
    • wandb 실험 내용과 시각화를 한 탭에서 동시에 볼 수 있도록 코드 수정
  • 앙상블 리스트
  • DeepLabV3+ encoder 다양하게 해서 실험할 필요성
  • UpperNet (encoder=hornet) 실험 중
  • UNet++ (encoder=maxvit)은 생각보다 성능이 좋지 않음
  • 모델 탐색하기
  • TTA

📋 Memo

살짝 길을 잃은 느낌이다. 분명 뭔가 열심히는 했는데 커다란 성과는 없고, 새로운 도전을 하자니 벌써 대회 마감날은 다가오고, 지금 하고 있는 것에서 엄청난 향상을 기대하기는 어렵고...그래도 각자 맡은 일을 열심히 하는 팀원들이 있다는 것에 감사하고 힘내야겠다. 다음 프로젝트에서도 의욕을 잃지 않고 열심히 할 수 있도록!!


Day 2. Tuesday

✏️ 복습

🙌🏻 Peer Session

  • 손목 모델 UNet++ 이외의 다른 모델로도 학습시켜 보기 → DeepLabV3+?
  • threhold 실험 결과
  • 2048 x 2048로 학습시킨 모델은 성능이 오르지 않아 stop
  • SAM 모델 학습 실패 중 → SAM에서 encoder 달리 해서 실험해보기
  • DeepLabV3(encoder=ResNet101)도 성능 그닥
  • UperHRNet 학습 추세 이상함 → 왜 그럴까?
  • 추후 계획 : 손목 모델 실험에 주력하고 내일부터는 앙상블 실험!

Day 3. Wednesday

✏️ 복습

🙌🏻 Peer Session

  • 각자 진행 상황
    • SAM 구현하다가 실패ㅠ
    • SAM을 baseline에 구현하려다 실패했지만 SAM 자체를 돌리는 것에는 성공해서 학습 중이지만 그다지 좋은 성능이 나오고 있지 않음ㅠ
    • 손목 모델에 지난 기수 1등 솔루션 적용 & 학습 + TTA 시도 → but 오히려 dice 감소ㅠ
    • TTA 시도 & UNet++ (encoder=efficientnetb7) 학습 시도
    • 2048 x 2048 학습 → but 3 epoch 남기고 원격 접속 끊어짐으로 인한 학습 중단ㅠ
    • 손목 모델 1024 x 1024 학습 중
  • 전 기수 Github 탐방하여 솔루션 탐색
  • 성능 향상이 더딘 이유 분석
    • 하이퍼 파라미터 튜닝을 하지 않아서
    • 스케줄러, learning rate 등의 옵션이 적절하지 않아서

📋 Memo

벌써 대회 마감 하루 전이다. 뭔가 새롭게 해보기에는 시간이 부족하고, 아무것도 안 하기에도 아까운 그런 애매한 시간...심지어 나는 1024x1024를 새롭게 돌려보는데 이미지 사이즈가 커서 학습 시간이 정말 오래 걸려서 그 동안은 할 것이 없었다. 그래도 이미지를 키웠으니 학습이 더 잘 되어서 97의 벽을 뛰어넘어보고 싶다....


Day 4. Thursday

✏️ 복습

🙌🏻 Peer Session

  • 마지막 모델 성능 향상 전략 : TTA + ensemble

📋 Memo

정말 진빠지는 하루였다. 아침에 학습이 완료되어서 그때부터 2048 x 2048로 좌표 되돌리는 방법 찾느라 점심도 못 먹고 계속 앞에 붙어 앉아서 코드 수정하고 돌리고, 피어 세션부터도 다들 마지막으로 어떤 코드 돌리고 어떤 파일 제출할지 대회 마감까지 붙어서 고군분투했다. 근데 그럼에도 불구하고 public score가 97을 넘지를 못했다. 단 하나만이 97을 간신히 넘겨서 꼴찌 탈출.... 정말 하루종일 밥도 못 먹고 씻지도 못한 채로 온 집중을 쏟아부어서 7시에 결과 확인하고 일정이 마무리되고 나서는 병이 났다. 머리도 아프고 소화도 안 되어서 늦은 저녁을 먹고는 토해버렸다... 힘들었긴 했지만 그래도 불태워 본 경험이 생겨서 좋기도 하다. 아직 할 것이 많이 남기는 했지만 꾸준히 처리해서 남은 캠프 일정도 잘 마무리할 수 있도록 조금만 쉬고 다시 불태울 준비를 해야겠다.


Day 5. Friday

✏️ 복습

🎁 Special peer session

  • 관심사 얘기 (천문학, 수영, ...)
  • 딥페이크 관련 기술
  • 경진대회 후기

🙌🏻 Peer Session

  • 팀 회고지 작성
  • wrap-up report 작성

📋 Memo

대회가 끝나서 일이 많지는 않았지만 일정이 많아 바쁜 하루였다. 스페셜 피어 세션 시간은 다른 트랙의 사람들과 만나서 얘기해봐서 더 신기하고 재미있었다. 물론 같은 트랙 내의 사람들이면 이번 대회 관련이라던지 비슷한 주제로 더 심도있게 얘기를 나눴을 수도 있지만, 그런 대화는 지난 스페셜 피어 세션들에서 잔뜩 했었고 이번 기회에 다른 트랙에서는 어떤 주제로 어떤 공부를 하는지 좀 신선한 얘기들을 들어볼 수 있어서 좋았다. 그러고 숨가쁘게 우리 피어 세션으로 돌아와서 팀 회고록이랑 wrap-up report를 작성했고, 다시 마스터 클래스로 가서 다른 팀의 솔루션을 들었다. 특히나 우리는 성능을 높이려고 아등바등 했는데도 성능이 좋지 않아서 다른 팀에서 어떻게 했는지 배울 수 있어서 유익했다. 창의적인 아이디어를 접목하고 꼼꼼하게 원리를 파악하며 실험해 나가는 모습에서 어떻게 좋은 성적을 얻었는지 배울 수 있었다. 비록 대회는 이번이 마지막이라 다시 대회에 도전해볼 수 없는 점은 아쉽지만 다음에 있을 프로젝트에서 더 잘할 수 있도록 더 보충하고 공부해야겠다.

profile
Let it code

0개의 댓글