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하지 못한 듯 하다. 더 노력해야지