Deep Learning/Computer Vision

W15 과제 1 : 전이학습을 활용한 영상 이미지 multi-class classification 과제

makeitworth 2021. 8. 16. 18:04

과제는 별 설명이 없었다. 

https://www.kaggle.com/c/diabetic-retinopathy-detection

 

Diabetic Retinopathy Detection | Kaggle

 

www.kaggle.com

이 데이터를 전이학습하여 좋은 결과를 내라는 것.

안저 영상 데이터이고, label은 0(정상)부터 4(아주 심각한 당뇨성 망막변증) 까지 multi class 였다.

 

비전 데이터 전이학습을 하는 것이 과제지만, 대부분의 시간을 데이터를 처리하는데 씨름하느라, 전이학습에서 많은 시도를 해보지 못했다.

데이터가 82g이고, 그렇게 큰 덕택에 분할 압축되어 있어서 이걸 다운받아서 풀고, 또 처리할 수 있는 환경을 만드느라 2~3일이 걸렸다.

 

gpu를 활용하지 못하는 로컬에서는 할 수 없었고, 구글 코랩은 드라이브 용량 압박을 처리해야했다.

또한 효율적으로 데이터를 분산처리 하지 못하면, 아무리 구글 코랩 프로+를 쓰고 있더라도, fit하는 동안 램 overload로 터져버리고 말았다.

 

결과적으로 전이학습 모델을 발달시켜서 좋은 예측률을 보이는 것에 노력을 들이지 못하게 되고 말았다.

 

어째튼 과제에 접근한 process와 소감을 정리하면,

 

1. y label의 불균형이 심하여 recall, precision문제를 일으킬 것으로 보고, 0(정상)인 데이터를 줄이는 방향으로 down sampling을 실시하였습니다.
2. data 양이 줄어들었기 때문에 ImageDataGenerator를 활용하여 데이터 증강을 하고, flow from directory를 활용하여 x_tain, y_train, x_val, y_val 데이터셋을 구축하였습니다.
3. 처음에 inceptionV3 모델을 활용하였으나 overfitting이 심하여 고민하다가 깊이가 더 얕은 VGG16net을 바탕으로 한 전이 모델을 만들어 학습하였습니다.
4. 그러나 전체적인 정확도가 잘 올라오지 않는 문제가 생겼고, 이를 잘 해결하지 못하였습니다.