[boostcourse] 머신러닝을 위한 파이썬 - 3주차

3주차 - 선형회귀
1. Cost Function - 비용함수
2. Gradient Descent - 경사하강법
1) Full-batch Gradient Descent
- 장단점
- 업데이트 감소 > 계산상 효율적(속도) 가능
- 안정적인 Cost 함수 수렴
- 지역 최적화 가능
- 메모리 문제 (ex - 30억개의 데이터를 한번에?)
- 대규모 dataset > 모델/파라메터 업데이트가 느려짐
3. Stochastic Gradient Descent - 확률적 경사하강법
1) Stochasitc Gradient Descent
-
개념
- 원래 의미는 dataset에서 random하게 training sample을 뽑은 후 학습할 때 사용함
- Data를 넣기 전에 Shuffle
-
장단점
- 빈번한 업데이트 모델 성능 및 개선 속도 확인 가능
- 일부 문제에 대해 더 빨리 수렴
- 지역 최적화 회피
- 대용량 데이터시 시간이 오래걸림
- 더 이상 cost가 줄어들지 않는 시점의 발견이 어려움
2) Epoch & Batch size
- 전체 데이터가 Training 데이터에 들어갈 때 카운팅
- Full-batch를 n번 실행하면 n epoch
- Batch-size 한번에 학습되는 데이터의 개수
- 총 5,120개의 Training data에 512 batch-size면 몇 번 학습을 해야 1 epoch이 되는가?
4. SGD 실행중 issues
1) Overfitting
-
개념
- 학습데이터에 과다 최적화가 되어 새로운 데이터에서의 예측이 떨어지는 경우
-
해결방법
- 더 많은 데이터를 활용한다.
- Feature의 갯수를 줄인다.
- 적절한 Parameter를 선정한다.
- Regularization
2) 종료설정