Advice for Applying ML/DL (1)
Training에서는 잘 되지만, Testing에서는 잘 작동하지 않는 경우가 많이 있다.
이런 경우에 Traditional Machine Learning과 Deep Learning 모두에 적용될 수 있는 몇 가지 해결방법이 있다. 이번 시간에는 그 해결방법에 대해 알아보자.
1. Evaluating a hypothesis
2. Model selection and training/validation/test sets
머신러닝에 대해 배울 때, 특정 모듈에 대해서 공부했었다. Evaluating a hypothesis는 여기서 어떤 모듈을 사용할지.. 라고 이해하자.
딥러닝 관점에서 생각해 볼 때는, Layer를 1단으로 설정할 지, 10단으로 설정할 지.. 몇 단으로 설정할지와 특정한 Activation Function은 어떤 함수를 가져다가 사용할 지... 를 결정하는 것이라고 이해할 수 있다.
Evalutating a hypothesis를 수행한 다음에는 Model selection and training/validation/test sets를 진행한다.
원래 학습을 진행할 때는 training과 testing으로 나눠서 진행했었다. 여기서는 validation이 추가됐는데, validation을 통해서 뭘 하고 싶은지 알아보자.
학습을 진행하고, 이제 필드에 가서 테스팅을 했는데 성능이 잘 나오지 않는다. 이 때 버그가 있다고 표현하는데, 우리는 디버깅을 통해 문제를 해결해야 한다.
머신러닝의 마지막 부분에서 Overfitting 문제를 해결하는 모듈을 학습한 적이 있다. 디버깅과 이 모듈은 비슷한 점이 많다. 그때 공부한 것을 디버깅과 비교해보자.
성능이 잘 안나온다면 그에 맞는 해결책을 제시해 줘야 한다.
1. 트레이닝 set를 더 집어넣는다.
2. feature를 좀 더 작게 한다.
3. feature를 좀 더 많이 넣는다.
4. 조합을 증가시킨다.
5. 람다값을 줄여본다.
6. 람다값을 늘려본다....
목표는 "적절한 데이터 set과 모델의 복잡도 정하기" 이다.
무조건 많이 학습한다고 해도 좋은게 아니다.
그렇다고 조금 학습하는것도 좋지 않다.
문제에 대해서 정확히 분석하고 위와 같은 여러 가지 해결책들 중에서 적절한 해결책을 골라야 한다.
어떤 모델을 적용해서 학습시켜야 하지?
Layer를 몇 단으로 설정하지?
어떤 함수를 사용하지?
위와 같은 부분들은 기계가 결정할 수 없고 사람이 결정해야 하는 부분이다.
즉, 학습에 의해서 결정되지 못하는 Parameter를 하이퍼 파라미터라고 한다.
기존에는 데이터를 학습 데이터와 평가 데이터로만 구분했었는데, 여기에 검증 데이터를 추가해서 학습을 진행한다.
기본적으로 학습데이터와 검증데이터는 모델을 build할 때 영향을 주고, build된 모델을 평가할 때는 평가 데이터를 사용한다.
train 은 딥러닝 모델 파라미터를 학습하고
validation은 hyperparameter를 결정하며
test는 성능을 평가한다.
이렇게 해서 학습을 진행시키면 좋지만, 실제 상황에 적용할 때는 데이터의 수가 충분하지 않을 경우도 있다.
충분하지 않은 데이터를 잘 조작해서 성능을 최대한 끌어올려야 하는데, 이 때 Cross Validation (CV) 방법을 사용한다.
데이터를 잘라낸 후 한 개의 데이터에 대해서만 성능 평가를 진행하도록 하고 나머지 데이터에 대해서는 학습을 진행시키는 방법이다.
부동산 크기를 바탕으로 가격을 예측하는 예시를 다시 생각해보자.
보통 6:2:2 로 데이터를 나누고 CV를 시행한다.
각 덩어리에 대한 Training error / CV error / Test error 이다.
Loss 함수를 공부할 때 많이 본 함수들이라 낯설지 않다.
정리해보면..
Training 데이터로 학습을 진행한 후 -> CV를 통해 Hyper parameter가 어떤 게 좋은지 결정하고 -> Testing을 진행한다.
이를 통해 학습을 진행했는데도 효과가 미미한 경우를 해결할 수 있다.
'Machine Learning > AI Introduction' 카테고리의 다른 글
Deep Learning - CNN (0) | 2021.12.05 |
---|---|
Advice for Applying ML/DL (2) (0) | 2021.12.04 |
Deep Learning (4) (0) | 2021.12.03 |
Deep Learning (3) (0) | 2021.11.18 |
Deep Learning - Backpropagation (0) | 2021.11.14 |
댓글
이 글 공유하기
다른 글
-
Deep Learning - CNN
Deep Learning - CNN
2021.12.05 -
Advice for Applying ML/DL (2)
Advice for Applying ML/DL (2)
2021.12.04 -
Deep Learning (4)
Deep Learning (4)
2021.12.03 -
Deep Learning (3)
Deep Learning (3)
2021.11.18