머신러닝에서 '학습을 시키는 것'
= 음성엔진을 만들기 위해서 '학습용 음성데이터로 학습시키는 것'
의 뜻은, 적절한 파라미터를 찾는 것으로 이해하면 됩니다!!
(즉, 컴퓨터는 0과 1의 숫자만 있기 때문에,
1. 이 음성데이터가
2. 이 음성데이터가 (파일이)
3. 이 음성데이터 파일이 (파일 속 숫자가)
4. 이 음성데이터 파일 속 숫자의 0과1의 조합이
다음과 같다! 라고 할 수 있습니다.
그러면,
다양한 데이터로 학습을 하는 목적은, 모든 데이터를 전부다 학습을 시킬 수는 없으니.
근사값을 바탕으로 찾게 되는데.. 이때, 오차가 적도록 하기위해서 학습을 시키는 것 이라고 볼 수 있습니다.
그러면, 데이터의 경우 Train / Validation / Test data 으로 나눠지게 되는데!!
쉽게 설명을 드리면
Train = 학습을 시키기 위한 데이터!!
Validation = 학습이 제대로 되었는지 확인해보기 위한 데이터
test = 최종 성능을 알기 위한 데이터
라고 보시면 됩니다!!
즉...
데이터가 한정적인 상황에서, 머신러닝을 이용해서 뭔가 모델을 만든다고 하면!!
바로!! 데이터가 '한정적'인 상황이죠??
그러니까, 일부는 학습을 하고, 일부는 테스트 목적으로 제대로 학습이 되었는지 검출하기 위한 작업이다. 라고 보시면 됩니다!!
그래서 위 세가지 데이터를 뽑을 때는!! 웬만해선 절대 특정한 조건이 있으면 안되고
가장 고르게 데이터를 각출해야 합니다!! (어떠한 조건이 있다면, 그 조건이 학습모델에(광범위) 신뢰를 해칠 수 있기 때문이죠)
----------------------------
아울러,
일반적으로는
Train : Validation : Test = 6 : 2 : 2 비율로 사용되고 있습니다!!
정리하자면
Train : Validation : Test 으로 나누는 이유는,
'한정적인 데이터'에서 모델학습을 위해서
제대로 학습이 되었는지 검증을 하기 위함이다.
제대로 학습이 되었는지는 왜 검증을 해야하는가??
학습 모델에 최종적인 이유가, 지금까지 학습된 데이터를 바탕으로 새로운 데이터에 대해서 판독을 할때
이 학습모델이 잘 되었는지 검증하기 위해서..!!
바로 검증을 해야하기 때문이죠!!
하하하 이해가 되셨으면 좋겠네요!