9

이 질문은 AI와 ML의 2 개 프로젝트에서 작업하는 동안 내 마음에 들었습니다. 모델 (예 : Classification Neural Network, K-NN, .. 등)을 모델링하는 경우이 모델은 임의성을 포함하는 일부 기능을 사용합니다. 시드를 수정하지 않으면 동일한 교육 데이터에서 알고리즘을 실행할 때마다 다른 정확도 결과를 얻으려고합니다. 그러나, 만약 내가 그것을 수정하면 다른 설정은 더 나은 결과를 줄 수 있습니다.인공 지능과 기계 학습의 무작위성

이 모델의 정확도가 xx %라고 말할 수있을 정도의 정확도를 평균입니까?

잘 모르겠습니다.이 질문을하고/그런 토론을 열어 줄 적절한 곳이 있다면.

답변

4

자연스럽게 임의성 (예 : 임의의 숲)에 의존하는 모델과 공간 탐색의 일부로 임의성 만 사용하는 모델 (예 : 신경망 값 초기화)은 실제로 잘 정의 된, 결정론적이고 객관적인 기능.

첫 번째 경우에는 여러 개의 시드를 사용하여 평균 정확도 (표준)를보고해야합니다. 편차, 그리고 당신이 얻은 최소값. 이것을 재현 할 수있는 방법이 있다면 종종 좋기 때문에 고정 된 여러 종자를 사용하십시오.

두 번째 경우에는 최상의 교육 정확도를 제공하는 교육 자료가 아니더라도 교육 데이터를 통해 최상의 결과를 얻을 수 있습니다. 따라서 시간이 있다면 10 회 달리 말한 다음 최상의 훈련 오류 (또는 유효성 검증 오류, 결코 평가가 ,이 시험의 경우)로 평가하는 것이 좋습니다. 레벨을 올리고 여러 번 여러 번 실행하고 표준 편차를 얻을 수도 있습니다. 그러나 이것이 의미심장 한 것이라면 충분한 초기화 작업을 수행하지 않았거나 데이터에 적합한 모델을 사용하고 있지 않다는 것을 의미합니다.

2

나는 당신의 질문에서 얻은 답을 일반화한다. 정확도는 항상 다중 실행의 평균 정확도와 표준 편차라고 가정한다. 그래서 당신이 무작위 생성기에 다른 씨앗을 사용하는 정확성을 고려한다면 실제로 더 큰 범위의 입력을 고려하고 있지 않은 것입니까 (좋은 것임). 그러나 정확도를 고려하려면 표준 편차를 고려해야합니다. 아니면 내가 네 질문에 완전히 틀렸어?

6

간단한 대답입니다. 예, 통계를 사용하여 정확도를 표시합니다. 그러나 소수의 실행을 평균하는 것만으로는 충분하지 않습니다. 적어도 변동성에 대한 개념이 필요합니다. "70 %"라는 말은 "100 회 실행마다 70 % 정확"을 의미하는지, "100 % 정확하고 한번 정확한지 40 % 정확한지"를 아는 것이 중요합니다.

조금 놀아서 알고리즘을 작동 시키려한다면, 30 번 정도 실행하고 평균과 표준 편차를보고 하루를 호출하면됩니다. 다른 사람에게 그것이 효과가 있다는 것을 납득 시키려면,보다 가설적인 가설 테스트를하는 방법을 조사해야합니다.

2

확률 적 기법은 일반적으로 철저한 검색이 가능하지 않은 매우 큰 솔루션 공간을 검색하는 데 사용됩니다. 따라서 가능한 한 많은 분포로 많은 샘플 포인트를 반복하려고 시도하는 것은 거의 불가피합니다. 다른 곳에서 언급했듯이, 기본적인 통계 기술은 샘플이 공간 전체를 대표 할만큼 충분히 클 때를 결정하는 데 도움이 될 것입니다.

정확성을 테스트하려면 입력 패턴의 일부를 따로 설정하고 이러한 패턴에 대한 교육을 피하는 것이 좋습니다 (데이터 세트를 통해 학습 한 경우). 그런 다음이 집합을 사용하여 알고리즘이 기본 패턴을 올바르게 학습하고 있는지 또는 단순히 예제를 암기하고 있는지 테스트 할 수 있습니다.

생각해 볼 또 다른 사항은 난수 생성기의 임의성입니다. 표준 난수 생성기 (예 : rand ~ <stdlib.h>)는 많은 경우에 등급을 만들지 않으므로보다 강력한 알고리즘을 둘러보십시오.

-1

저는 cross-validation이 당신에게 물어볼 수있는 것으로 믿을 수 있습니다 : 평균화 된, 따라서보다 신뢰성있는 분류 성능 평가. 처음에는 데이터 세트를 바꾸는 것을 제외하고 임의성을 포함하지 않습니다. 변형은 여러 기차/테스트 스플릿을 선택하면 발생합니다.