Best Practices for Applying Deep Learning to Novel Application 정리
Phase 1: Getting prepared
딥러닝을 적용하는 것이 가치있는 일인지 생각해본다.
state-of-the-art의 퍼포먼스가 충분히 높다면 굳이 성능을 향상시키기 위해 딥러닝을 적용하는 것이 가치있는 일일지 고려해야 한다.
단순히 최신 기술이고, 방법론적으로 좋아보여서 딥러닝을 사용하게 되면 어려움에 직면할 수 있다.
그 다음은 성공적으로 구현했을 때 human level performance보다 잘 나오는지 예상해보아야 한다.
computer resource도 고려해야 하는데 이는 AWS 등으로 해결할 수 있으므로 큰 문제는 안된다.
evaluation metrics도 정의한다. 이는 loss function design으로 이어진다.
Phase 2: Preparing your data
training, test를 위한 충분한 양의 labeled data를 획득할 수 있는지도 고려해야 한다.
network의 parameter 수는 training data의 양과 관련있다.
training sample 수에 따라 architectural choice가 제한될 수 있다.
training data의 양이 너무 작다면 transfer learning과 domain adaptatino을 고려해야 한다.
비슷한 dataset을 다운로드해 pre-training하는 방법 / cut, tilt 등 Synthetic data를 만드는 방법도 고려해 볼 수 있다.
classification이라면 balanced class인지 (e.g. cats versus dogs) unbalanced class인지(e.g. cats versus all other mammals) 고려한다.
Phase 3: Find an analogy between your application and the closest deep learning applications
Phase 4: Create a simple baseline model
Phase 5: Create visualization and debugging tools
TensorBoard 등을 활용한다.
Phase 6: Fine tune your model
model 구현.
Phase 7: End-to-end training, ensembles and other complexities
'Machine Learning > Theses' 카테고리의 다른 글
A Multi-view Context-aware Approach to Android Malware Detection and Malicious Code Localization 정리 (0) | 2017.06.15 |
---|---|
Deep learning malware detection (0) | 2017.04.30 |
ILSVRC2016 Hikvision팀과 Trimps-Soushen팀의 기법 (0) | 2017.04.25 |
Learning Fine-grained Image Similarity with Deep Ranking 정리 (0) | 2017.04.25 |
CNN model과 다양한 분야에 딥러닝을 적용한 논문들 (0) | 2017.04.14 |