코세라 강의노트 - Structuring Machine Learning Projects : dev/test 사이즈

2020. 11. 6. 18:59캐리의 데이터 세상/캐리의 데이터 공부 기록

반응형

현재 수강중인 코세라 딥러닝 특화과정 강의 내용 정리.

Andrew Ng 교수의 딥러닝 Specializations 강의는 총 5개 강좌로 이뤄져 있는데 현재 2개는 수료 후 Certificate를 받았고 나머지 3개를 한달 안에 완료하는 것이 목표. 인공지능 교육과정 6개월동안 머신러닝 - 딥러닝 기본 개념들은 훑었고, 직접 프로젝트도 진행하고는 있으나 짧은 기간 내에 개념과 코드까지 익숙해 지는건 솔직히 불가능이라 10월부터 코세라 강의를 병행하면서 진도에 맞춰 논문도 찾아보고 관련 영상도 쓱 보고 있는중. 

www.coursera.org/specializations/deep-learning

 

심층 학습

Learn Deep Learning from deeplearning.ai. If you want to break into Artificial intelligence (AI), this Specialization will help you. Deep Learning is one of the most highly sought after skills in tech. We will help you become good at Deep Learning.

www.coursera.org

실습 코드까지 다 다운받을 수는 있으나 매일마다 새롭게 마주하는 이론들과 코드들 덕분에 지나간 내용들을 다시 찾아보기 쉽지 않은 터라 그때그때 강의 내용들은 간략하게나마 블로그에 옮겨두려고 한다.

Chain of assumptions in ML

Fit training set well on cost function → Fit dev set well on cost function → Fit test set well on cost function  Performs well in real world

Train/dev/test distributions - Guideline

Choose a dev set and test set (same distribution) to reflect data you expect to get in the future and consider important to do well on

cat 분류의 dev/test set을 분포도가 다른 Regions 으로 나눈 안좋은 예. Random하게 dev/test/val set까지 셔플해야함. 

데이터 분할 예전 방식

7:3으로 Train, Test 나누거나 6:2:2로 Train, Dev, Test 데이터를 나누는 올드한 룰은 요즘은 통하지 않는다. 빅데이터 시대, 트렌드는 데이터 크기가 아주 큰 경우 training에 더 집중!100만건과 같이 데이터 크기가 아주 클 경우엔 train에 98프로를 넣고 D(Dev), T(Test) 1프로씩만 해도 10,000건씩이니 충분하다.

Rule of thumb is really to try to set the dev set to big enough for its purpose, which helps you evaluate different ideas and pick this up from AOP better. The purpose of test set is to help you evaluate your final cost buys. Just have to set test set big enough for that purpose and that could be much less than 30% of the data.

 

dev/test와 metrics 언제 수정해야 할까

퍼펙트한 평가 metrics과 dev set을 찾지 못했더라도,  일단 빨리 셋업해서 반복하는데 스피드업 하는게 중요. 일단 해보고 결과가 좋지 않으면 다른 아이디어를 내서 수정해 보는게 좋다. 정말 여러 케이스들을 보며 비추하는건 어떠한 evaluation metric과 dev set 셋업도 안하고 장시간 train만 시키면서 시간을 흘러 보내는건 알고리즘 성능 향상에 매우 비효율 적! 

 

모델성능 향상

모델 성능 향상시키기

-> Human-level의 성능과 approx bayes optimal error(best possible error) 어느 정도인지를 파악해서 그에 맞는 tactics을 써야함.   

1) Human-level - Training error 차이  Avoidable Bias에 포커스를 둔다면

- Train bigger model

- Train longer/better optimization algorithms (더 좋은 옵티마이저 쓰기. Momentum, RMSprop, Adam)

- NN architecture/hyperparameters search (RNN, CNN)

2) Training error - Dev error 차이를 Variance 에 포커스

- More data

- Regularization : L2, Dropout, data augmentation

- NN architecture/hyperparameters search

 

강의영상 링크

** 강의는 무료로도 시청 가능함!

반응형