우수한 소프트웨어 엔지니어링 프로젝트는
테스트할 수 있습니다. 마찬가지로
ML 모델을 사용하여 예측의 정확성을 판단합니다.
학습, 검증, 테스트 세트
이러한 예가 아닌 다른 예 집합을 사용하여 모델을 테스트해야 합니다.
사용됩니다. 실습에서 다룰 내용은
조금 후
다양한 예제를 테스트해 보는 것이 테스트보다 모델의 적합성을 더 효과적으로 증명할 수 있습니다.
적용할 수 있습니다.
이러한 다양한 예는 어디서 구할 수 있나요? 전통적으로 머신러닝에서는
원래 데이터 세트를 분할하여 이러한 다양한 예를 얻습니다. 이
따라서 원래 데이터 세트를 다음과 같은 두 개의 하위 집합으로 분할해야 한다고 가정합니다.
<ph type="x-smartling-placeholder"></ph>
그림 8. 최적의 분할이 아닙니다.
연습문제: 직관력 확인하기
학습 세트로 학습하고 테스트 세트로 평가한다고 가정해 보겠습니다.
여러 라운드에 걸쳐 진행됩니다 라운드마다 테스트 세트 결과를 사용하여
초매개변수 및 특성 세트를 업데이트하는 방법을 알아봅니다. CANNOT TRANSLATE
이 접근 방식에 문제가 있나요? 답변을 하나만 선택하세요.
이 절차를 여러 차례 수행하면 모델이
테스트 세트의 특성에 암시적으로 맞추는 것입니다.
예. 같은 테스트 세트를 더 자주 사용할수록
모델이 테스트 세트에 밀접하게 맞을 가능성이 높습니다.
'시험을 가르치는' 선생님처럼 모델이 실수로
테스트 세트에 적합하지만
실제 데이터에 맞게 조정하는 것입니다.
이 접근 방식은 괜찮습니다. 결국 여러분은
평가하도록 할 수 있습니다.
사실, 여기 미묘한 문제가 있습니다. 잠재적인 문제,
점차 잘못될 수 있습니다
이 접근 방식은 계산상으로 비효율적입니다. 변경 안함
초매개변수 또는 특성 세트를 평가하게 됩니다.
테스트를 자주 수행하면 비용이 많이 들지만 매우 중요합니다. 그러나
테스트는 추가 학습보다 훨씬 저렴합니다. 최적화 중
초매개변수와 특성 세트의 성능을
극적으로 개선할 수 있어
항상 시간과 컴퓨팅 리소스를
이 작업을 할 수 있습니다.
데이터 세트를 두 세트로 나누는 것도 좋은 생각이지만
더 나은 접근 방식은 데이터 세트를 세개의 하위 집합으로 나누는 것입니다.
학습 세트와 테스트 세트 외에도 세 번째 하위 집합은 다음과 같습니다.
<ph type="x-smartling-placeholder"></ph>
그림 9. 훨씬 더 나은 분할입니다.
검증세트를 사용하여 학습 세트의 결과를 평가합니다.
검증세트를 반복해서 사용한 결과 모델이
좋은 예측을 하려면 테스트 세트를 사용하여 모델을 재확인하세요.
다음 그림은 이 워크플로를 보여줍니다.
그림에서 '모델 조정' 모델에 대한 모든 것을 조정하는 것을 뜻합니다
즉, 학습률 변경에서부터 데이터 입력에 이르기까지
처음부터 완전히 새로운 모델을 설계하는 것에 이르기까지 다양합니다.
이 워크플로가 끝나면 테스트 세트에서 가장 우수한 성능을 보이는 모델을 선택합니다.
그림 10. 개발 및 테스트에 적합한 워크플로
를 통해 개인정보처리방침을 정의할 수 있습니다.
그림 10에 표시된 워크플로는 최적이지만 이 워크플로를 사용하더라도
테스트 세트와 검증 세트가 여전히 '마모'되고 있음 반복적으로 사용할 수 있습니다
다시 말해, 동일한 데이터를 더 많이 사용하여
초매개변수 설정이나 기타 모델 개선이 이루어지지 않을수록 신뢰도가 낮아집니다.
모델이 새로운 데이터에 대해 잘 예측할 수 있습니다.
따라서 더 많은 데이터를 수집하여 보고서를 '새로고침'하는 것이 테스트
각각 검증세트와
검증세트가 있습니다 새로 시작하는 것은 좋은 초기화입니다.
연습문제: 직관력 확인하기
데이터 세트의 모든 예를 셔플하고
섞인 예시를 학습, 검증, 테스트로 섞었습니다.
있습니다. 하지만 테스트 세트의 손실 값이
상당히 낮습니다
알게 될 수 있습니다 무엇이 잘못되었을까요?
테스트 세트에 있는 예시의 대부분이 예시와 중복됨
학습 세트에 있습니다.
예. 많은 중복 데이터가 있는 데이터 세트에서
예로 들 수 있습니다 Google 뉴스에서 중복 예시를 삭제하는 것이 좋습니다.
테스트할 수 있습니다.
학습과 테스트는 비확정적입니다. 때때로, 우연히
테스트 손실이 매우 낮습니다. 테스트를 다시 실행하여
표시됩니다.
손실은 실행할 때마다 조금씩 다르지만, 변하지 않으므로
정말 멋집니다.
우연히 테스트 세트에는
확인할 수 있습니다
예시가 적절히 섞여 있었기 때문에 그럴 가능성은 거의 없습니다.
테스트 세트 관련 추가 문제
이전 질문에서 알 수 있듯이 중복 예는 모델 평가에 영향을 줄 수 있습니다.
데이터 세트를 학습, 검증, 테스트 세트로 분할한 후
검증 세트 또는 테스트 세트에서
예로 들 수 있습니다. 모델의 유일한 공정한 테스트는
중복이 아닌 새로운 예시를 제공합니다
예를 들어,
제목, 이메일 본문, 발신자의 이메일 주소를 기능으로 제공합니다.
데이터를 80:20 비율로 학습 세트와 테스트 세트로 나누었다고 가정해 보겠습니다.
학습 후 모델은 학습 세트와 학습 세트 모두에서 99% 의 정밀도를 달성합니다.
테스트 세트에 적용할 수 있습니다. 테스트 세트의 정밀도가 낮을 것으로 예상할 수 있으므로
데이터를 다시 살펴보면서 테스트에 포함된 많은 예시가
학습 세트의 예시와 중복됩니다. 문제는
입력한 내용에서 동일한 스팸 이메일에 대한 중복 항목을 정리하지 않음
데이터베이스의 데이터를
저장해야 합니다 실수로
테스트할 수 있습니다.
요약하면 좋은 테스트 세트나 검증 세트는
다음을 기준으로 합니다.
통계적으로 유의미한 테스트 결과를 도출할 만큼 커야 합니다.
전체 데이터 세트의 대표자입니다. 다시 말해
학습 세트와 특성이 다른 테스트 세트를 생성하는 것입니다.
모델이 접하게 될 실제 데이터의 표현
비즈니스 목적의 일부로 사용할 수 있습니다.
학습 세트에 중복된 예가 없습니다.
연습문제: 이해도 확인
고정된 개수의 예가 있는 단일 데이터 세트가 있을 때
다음 중 올바른 설명은 무엇인가요?
모델 테스트에 사용되는 모든 예시가 하나 줄어듦
중요한 부분입니다.
예를 학습/테스트/검증 세트로 나누는 것은 제로섬 게임입니다.
이는 가장 중요한 절충점입니다.
테스트 세트에 있는 예시의 수는 다음보다 커야 합니다.
검증 세트에 포함된 예의 개수입니다.
이론적으로 검증 세트와 테스트 테스트에
거의 비슷합니다.
테스트 세트에 있는 예시의 수는 다음보다 커야 합니다.
검증 세트 또는 학습 세트의 예시 개수
학습 세트에 포함된 예시의 수는 일반적으로
검증 세트 또는 테스트 세트에 포함된 예의 개수 하지만
다른 세트에 대한 비율 요구사항은 없습니다.
테스트 세트에 테스트를 수행하기에 충분한 예시가 있다고 가정해 보겠습니다.
통계적으로 유의미한 테스트입니다. 또한
테스트 세트는 손실이 적습니다 그러나 모델은
현실 세계에서는 엉망진창이 될 거예요 어떻게 해야 할까요?
원본 데이터 세트가 실제 데이터와 어떻게 다른지 판단합니다.
예. 최고의 데이터 세트도 실제 데이터의 스냅샷일 뿐입니다.
기본
정답
시간이 지남에 따라 변화하는 경향이 있습니다 테스트 세트가
충분히 좋은 모델 품질을 제안할 수 있을 만큼
데이터 세트가 실제 데이터와
충분히 일치하지 않을 가능성이 높습니다
새 데이터 세트에 대해 재학습하고 다시 테스트해야 할 수도 있습니다.
동일한 테스트 세트에서 다시 테스트합니다. 테스트 결과는
이상치였습니다.
다시 테스트하면 약간 다른 결과가 나올 수 있지만
이 전술은 그다지 유용하지 않을 것입니다.