[Week 7- Day 2] 회고
# 오늘 한 실험 기록
- 어제 구현해둔 K-fold CV로 기존에 잘 나온 모델을 구현하였다. (resnet18, vgg16_bn)
- 아침에는 hard voting ensemble fn 을 구현하여 공유하였다.
- random apply 하는 transform 들을 가지고 성능이 좋아지는 지 실험을 해보았다.
- 결국 또 다른 이미지가 주어지면 잘 예측하는 것이 목적이므로, 최대한 입력 데이터와 유사한 이미지들이 성능이 좋았다.
- distortion & blur를 주었을 때보다, CentorCrop 한 것이 더 좋았다.
- 불균형 데이터를 계속 뽑아줘야 하므로 좌우반전(horizontal flip)은 유지하였다.
- 멘토링을 하면서, 오늘 어떤 실험을 하였고 어떤 인사이트나 생각을 느꼈고, 앞으로 어떤 일을 할 것인지 말하는 것이 굉장히 많은 도움이 되었다. 덕분에 k-fold에서 batch_size를 얼만큼 늘릴 지 바로 결정할 수 있었다. 아침에는 내가 하고 있는 일에 대해 확신이 없어서 길을 잃었는데, 원래 정해진 답은 없고 data & task를 계속 살펴보는 게 답이라는 것을 깨달았다.
# 불균형 데이터 해결방안
-- imbalanced-learn의 OverSampler 클래스 이용
dataset에서 major하지 않은 data를 더 뽑는 것이 default고,
minor한 data만 뽑게 하는 등을 sampling_strategy 인수로 조정할 수 있다.
2. Over-sampling — Version 0.9.0
2.1.3. Ill-posed examples While the RandomOverSampler is over-sampling by duplicating some of the original samples of the minority class, SMOTE and ADASYN generate new samples in by interpolation. However, the samples used to interpolate/generate new synth
imbalanced-learn.org
-- sklean의 StratifiedKFold 클래스 이용
불균형 데이터가 있을 경우, k-fold cross validation 하면서 불균형한 클래스 데이터를 더 뽑는 방식이다.
sklearn.model_selection.StratifiedKFold
Examples using sklearn.model_selection.StratifiedKFold: Recursive feature elimination with cross-validation Recursive feature elimination with cross-validation, GMM covariances GMM covariances, Tes...
scikit-learn.org
## 피어 세션
미션 : hard voting fn 구현, ray-tune 해보고 공유
후자는 hyper-parameter 노가다 하는 게 생각보다 찾아보고, 결과를 기다리는 과정의 반복이라 지침이 있어서 사용하려는 것이다.
팀원들과 공유하면서 대회는 곧 끝나지만, 계속 실험할 수 있으니 만약 하게 되면 정리해서 공유하겠다고 하였다.
사실 오늘 아침까지 길을 잃었었던 것 같다. PCA나 k-fold가 생각보다 성능이 안나와서 이걸 괜히 했나 하는 생각에 빠졌기 때문이다.
하지만 1시에 멘토링 시간을 가지면서, "점수가 나오지 않는다면 뒤를 살펴보라"는 말을 듣고 다시 해보게 되었다.
그 전에 데일리 스크럼으로 hard voting fn를 구현하기로 하고, 멘토링 시간에 여태 실험한 것들을 공유하면서 batch_size를 256을 두고 하니 더 잘 되었다는 말을 듣고 한 것도 있다.
멘토링이 끝나고 lr을 조정하면서 다시 해보니 더 좋은 점수를 만날 수 있었다.
멘토링 시간에는 다음과 같은 피드백을 받았다.
- 대회를 진행하면서 협업할 때, 평가지표를 고정해두기
- 협업으로 소통 방식 익히기
- 논리를 세우고, 고찰하고, 많은 고민해보기
- 많은 것을 하는 것보다는, 고민 하나라도 푸는 데 초점을 맞추기
- data & task 특성을 계속 고민하기
여태 실험한 것들을 돌아보니, 너무 섵부르게 실험한 감이 없지 않아 있다. 빨리 무언가를 해야 한다는 생각이 들었던 것 같다.
하지만 계속 해왔던 얘기들이 model의 best parameter는 논문을 통해 만날 수 있다 였다.
말했듯이 어차피 여기 대회에서 한 data나 task만 할 수 있으니, 취업을 하고서도 계속 찾아나가는 연장선이라는 게 인상적이었다.
여태 더 많은 것을 알기 위해 집중하였지만, 실제로는 더 잘 살펴보고 적용하는 것을 많이 하는 게 좋겠다.
TMI 로 어디 취업 사이트에서 유형 테스트를 하길래 한 번 해보았는데, 거기서 받은 질문이 인상적이었다.
- 남들이 내가 한 일을 공유하였으면 한다. (y/n)
- 사명감을 가지고 일에 임한다. (y/n)
- 팀원의 꿈, 비전이 무엇인지 알고 있다. (y/n)
- 팀원과 비교를 함으로써, 더 잘하기 위해 노력한다. (y/n)
위 질문들이 인상적이었는데, 첫 번째 질문에서 어느 정도 동의한다는 것을 깨달았다.
그래서 함수도 만들어 공유하고, 프레임워크도 해보고 공유한다고 말을 했던 것 같다.
이런 나의 모습에 살짝 놀랐다.