week4

MARK AN·2021년 8월 27일
0
post-custom-banner

학습정리

이미지분류

1, 2강 컴퍼티션 및 EDA

이미지분류 컴퍼티션이 어떤식으로 이루어지는지에 대해서 기본적으로 알게되었다. 그리고 어떤식으로 EDA를 통해서 모델 만들때 전략을 세우거나 할지에 대해서도 알아보았다.

3, 4강 데이터셋 및 데이터 생성

데이터셋을 어떻게 생성하고, 그것들을 어떤식으로 데이터로데에 태우는지 알아보았다. albumentation등의 데이터 augmentation을 사용해서 데이터의 양을 늘릴수 있는 방법에 대해서도 알아보았다.

5, 6강 모델

파이토치를 사용해서 어떻게 모델을 만들수 있으며, 아니면 이미 학습된 모델을 가져와서 사용하는 방법에 대해서 배웠다. fine-tuning, feature extraction등에 대해 배웠다.

7, 8강 훈련 및 예측

실질적으로 가장 중요한 부분이라고 할수있는 트레이닝 부분이 어떻게 동작하는지 세밀하게 배울수 있었다. 그리고 어떤식으로 로스값을을 생성할지에 대해서도 배웠다. 그외에 라벨스무딩 등의 다양한 기법에 대해서도 알아볼수 있었다.

9 ,10강 기타 팁 및 성능향상 기법

앙상블, stratified k-fold, 텐서보드, TTA, wandb등 여러가지에 대해서 알아보았다. 여러가지 방법으로 성능향상을 이루는것, 앙상블, 하이퍼파라미터 튜닝에 대해서도 보았고 그외에 다른 여러 도구들을 알아보았다.

피어세션

이번주는 컴퍼티션때문에 대체적으로 어떤식으로 모델을 설계하고, 어떻게 성능을 올릴지에 대해서 주로 얘기를 나누었다. 각자 서로 다른 방법으로 모델을 구성하였고, 새로운 아이디어들도 얻을수 있었다. 특히 우리팀의경우 모델을 여러개로 나누어서 훈련하는 기법을 많이 사용하고 있는것 같았다. 예를들어 남녀를 구분하는 모델, 나이를 구분하는 모델, 마스크 착용을 구분하는 모델, 이렇게 3개의 모델을 만들어서 하나의 이미지에서 각각 모델이 출력하는 값을 받아서 최종 클레스를 선정하는 식이다. 팀에 통계쪽에 식견이 있는 분들이 있으셔서 통계쪽으로 어떻게 모델을 통해 실험을 해야한다든지 여러가지 의견을 들을수 있었다.

과제

스페셜미션들이 있었지만 거의 대부분 제대로 한것은 없었다. 성능향상에만 올인하느라 거기까지 신경쓰기가 힘들었다. 성능향상을 위해 일단 적용해본것은 트렌스퍼 러닝으로 denseNet을 사용해하였다. 그러다 성능을 더 끌어올리고자 timm에서 가장 성능이 좋다고 나온 Noisy Student를 가져와서 사용했다. 그러나 그다지 성능이 많이 오르지는 않았다.
코드상에 버그가 상당부분 있어서 제대로된 자체 성능테스트가 잘 이루어지지 않은 부분이 크다. 그리고 augmentation을 상당히 많이 추가해서 그런지 train loss가 test loss 보다 계속 높게 나왔다. 아마 regularization을 너무 강하게 준것이 원인인것 같다.
지금은 마지막 dense layer만 학습된 모델의 백단의 뒷부분을 열어서 좀더 학습을 시켜보고 있다.

회고

이런 컴퍼티션 형태를 처음 접하기때문에 꽤나 재미가 있다. 특히 처음에 성능이 쑥하고 오를때 기분이 상당히 좋다. 그런데 하다보면 내 순위가 점점 뒤로 밀려나고 나보다 순위가 높은 사람의 수가 내 뒤에사람들의 수보다 점점 많아지니 많은 불안감이 오기도 한다.
특히 내가 몇시간동안 훈련시킨 모델이 성능이 오히려 더 떨어질때는 실망감이 상당히 크다. 아마 지금 훈련중인 모델이 성능이 안나면 상당히 실망할거 같다. 지금 훈련만 10시간 넘게 시키는 중이고 아마 내일 아침까지 돌아갈거 같은데.. 이런 모델이 성능이 더 나쁘다면.. 많이 힘들거다.
그래도 이 컴퍼티션에 몰입해서 하다보니 배운부분이 상당히 많다. 인터넷에서 성능향상을 위해서 여러가지 찾다보니 여러모로 배우는게 많다.
일단 주 목적은 배움에 있으니, 목표달성은 성공한셈이긴 하다.

profile
안녕하세요
post-custom-banner

0개의 댓글