[TensorFlow] Lab-07-3-1 application and tips 모두의 딥러닝 시즌 2 정리...
시즌2 강의가 부실하다고 판단되어 시즌 1 lec 07-2: Training/Testing 데이타 셋 강의 내용 추가 정리
목차
- Data sets
- Evaluation using training set?
- Training and Test sets
- Trainig / Validation / Testing
- Learning
- Online Learning vs Batch Learning
- Transfer Learning / Fine Tuning / Feature Extraction
- Efficient Models
- Sample Data
- Fashion MNIST / IMDB / CIFAR-100
Online vs Batch
Online Learning
온라인 학습에서는 데이터를 순차적으로 한 개씩 또는 미니배치(Mini-Batch)라 부르는 작은 묶음 단위로 주입하여 시스템을 훈련시킨다.
매 학습 단계가 빠르고 비용이 적게 들어 시스템은 데이터가 도착하는 대로 즉시 학습할 수 있다.
온라인 학습은 연속적으로 데이터를 받고 빠른 변화에 스스로 적응해야 하는 시스템에 적합하다.
컴퓨팅 자원이 제한된 경우에도 적합하다고 할 수 있다. 또한 학습이 끝난 데이터는 더 이상 필요하지 않으므로 버리면 된다.
온라인 학습 시스템에서 중요한 파라미터 중 하나는 변화하는 데이터에 얼마나 빠르게 적응할 것인가 이다.
이를 학습률(Learning Rate)이라고 한다. 학습률을 높게 하면 시스템이 데이터에 빠르게 적응하지만 예전 데이터를 금방 잊어버리게 된다..
반대로 학습률이 낮으면 시스템의 관성이 더 커져서 더 느리게 학습된다. 하지만 새로운 데이터에 있는 잡음이나 대표성 없는 데이터 포인트에 덜 민감해진다.
Online Learning 문제점
온라인 학습의 가장 큰 문제점은 시스템에 나쁜 데이터가 주입되었을 때 시스템 성능이 점진적으로 감소할 수 있다는 것입니다.
이러한 위험을 줄이기 위해서는 시스템을 면밀히 모니터링하고 성능 감소가 감지되면 즉각적으로 학습을 중지시키는 대처가 필요합니다.
Batch Learning
배치 학습에서는 시스템이 점진적으로 학습할 수 없다. 가용한 데이터를 모두 사용해 훈련시켜야 한다.
이러한 방식은 시간과 자원을 많이 소모하여 일반적으로 오프라인에서 가동된다
먼저 시스템을 훈련시키고 제품 시스템에 적용하면 더 이상의 학습 없이 실행된다.
즉, 학습한 것을 적용할 뿐이다. 이를 오프라인 학습(Offline Learning)이라고 한다.
배치 학습 시스템이 새로운 데이터에 대해 학습하려면 전체 데이터를 사용하여 시스템의 새로운 버전을 처음부터 다시 훈련시켜야 한다.
이후 이전 시스템을 중지시키고 새로운 시스템으로 교체해야 하는 경우가 발생한다.
이러한 방식은 간단하고 잘 작동하지만 전체 데이터 셋을 사용해 훈련하는데 몇 시간 혹은 몇 일이 소요될 수 있다.
또한, 전체 데이터 셋을 사용해 훈련하기 때문에 시스템 자원을 많이 소모한다. 자원이 제한된 시스템이 스스로 학습해야 할 때 많은 양의 훈련 데이터를 나르고 학습을 위해 자원을 사용하는 경우 문제를 발생시킬 수 있다.