About Me/AI Tech

[Week 7- Day 2] 회고

green_ne 2022. 3. 2. 22:07

# 오늘 한 실험 기록

  • 어제 구현해둔 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)

 

위 질문들이 인상적이었는데, 첫 번째 질문에서 어느 정도 동의한다는 것을 깨달았다.

그래서 함수도 만들어 공유하고, 프레임워크도 해보고 공유한다고 말을 했던 것 같다.

이런 나의 모습에 살짝 놀랐다. 

 

 

 

 

 

 

 

 

 

반응형