Command Palette
Search for a command to run...
학술 연구를 어디서부터 시작해야 할지 모르겠습니까? 논문을 우회 없이 출판할 수 있도록 피해야 할 27가지 머신 러닝 함정

본 기사는 WeChat 공식 계정 HyperAI에 처음 게시되었습니다.
내용을 한눈에 보기:머신 러닝을 처음 접하고 앞으로 이 분야에서 학술 연구를 수행하고 싶다면, 여러분에게 꼭 맞는 "함정 회피 가이드"를 놓치지 마세요.
키워드:머신러닝 연구 표준 학술 연구
머신러닝 분야의 초보자가 함정을 피하고 순조롭게 논문을 발표하려면 어떻게 해야 할까요?
스코틀랜드 Heriot-Watt 대학 수학 및 컴퓨터 과학부의 Michael A. Lones 부교수는 2021년에 논문을 발표했습니다. "머신 러닝 함정을 피하는 방법: 학계 연구자를 위한 가이드"이에 대해서는 자세히 논의합니다.
전체 논문(V2)을 읽어보세요:

본 논문에서 저자는 학문적 연구의 관점에서 출발하여, 본인의 과학적 연구 경험과 교육 경험을 결합하고, 머신 러닝 기술을 사용하는 전체적인 연관성을 포함시켰습니다.자주 발생하여 특별한 주의가 필요함 5 주요 문제와 그에 따른 해결책을 제시합니다.
적용 대상:
ML 분야에 비교적 새롭게 입문한 학생이나 학자이며 기본적인 ML 지식만 가지고 있는 학생이나 학자
친절한 팁:이 글은 학계에서 공통적으로 관심을 갖는 문제, 예를 들어 논문을 성공적으로 출판하기 위해 모델을 엄격하게 평가하고 비교하는 방법에 초점을 맞춥니다.
다음으로, ML 모델 학습의 전체 프로세스를 단계별로 살펴보겠습니다.
1단계: 모델을 생성하기 전
많은 학생은 처음부터 모델을 훈련하고 평가하는 데 급급하여, 더 중요한 "숙제"를 무시하는 경우가 많습니다.이러한 "숙제"에는 다음이 포함됩니다.
* 이 프로젝트의 목표는 무엇인가요?
* 이 목표를 달성하려면 어떤 종류의 데이터가 필요합니까?
* 데이터에 제한이 있나요? 그렇다면 어떻게 문제를 해결할 수 있을까?
* 이 분야의 R&D 진행 상황은 어떠한가? 그리고 무엇을 했는가?
이러한 예비 작업이 제대로 이루어지지 않고, 모델을 실행하기 위해 성급히 달려간다면, 결국 모델이 예상한 결론을 증명하지 못하고, 과학 연구 작업이 출판되지 않을 가능성이 큽니다.
1.1 데이터 이해 및 분석
데이터 출처가 신뢰할 수 있고, 데이터 수집 방법이 과학적이며, 데이터 품질이 높아 논문 출판에 큰 도움이 될 것입니다. 여기서 다음 사항을 주의하는 것이 중요합니다.널리 사용되는 데이터 세트가 반드시 좋은 품질은 아니지만, 쉽게 접근할 수 있기 때문에 좋은 품질일 수도 있습니다.데이터를 선택하기 전에 데이터 제한을 제거하기 위해 탐색적 데이터 분석을 수행합니다.
1.2 모든 데이터를 보지 말고 시작하기 전에 테스트 데이터를 분리하세요.
테스트 세트에서 학습 과정으로 정보가 유출되는 것은 머신 러닝 모델이 일반화에 실패하는 일반적인 이유입니다.이를 위해 데이터 탐색 분석 단계에서는 의도적이든 의도치 않든 모델의 일반화를 제한하는 검증할 수 없는 가정을 하지 않도록 테스트 데이터를 너무 주의 깊게 보지 마세요.
친절한 팁:가정을 하는 것은 괜찮지만, 이러한 가정은 모델 학습에만 적용해야지 테스트에는 적용하면 안 됩니다.
1.3 충분한 데이터 준비
데이터가 부족하면 모델의 일반화와 다양성이 떨어질 수 있으며, 이는 데이터 세트의 신호 대 잡음비(SNR)에 따라 달라집니다. 머신러닝 연구 분야에서흔한 문제 중 하나는 데이터 볼륨이 부족하다는 것입니다. 이 경우 교차 검증, 데이터 강화 및 기타 기술을 통해 기존 데이터의 가용성을 개선할 수 있습니다.
1.4 해당 분야 전문가에게 적극적으로 조언을 구하십시오.
해당 분야의 전문가들은 풍부한 과학적 연구 경험을 가지고 있습니다.이는 해결해야 할 문제를 파악하고, 가장 적합한 기능 세트와 머신 러닝 모델을 찾아내고, 연구 결과를 발표하는 데 도움이 될 수 있습니다.절반의 노력으로 두 배의 결과를 얻을 수 있습니다.
1.5 문헌 조사를 잘 하세요
학문적 진전은 반복적인 과정이며, 각 연구는 다음 연구를 위한 지침이 되는 정보를 제공합니다.이전 연구를 무시하면 귀중한 정보를 놓칠 가능성이 큽니다.논문을 쓸 때 왜 같은 주제를 연구하는지, 왜 기존 결과에 기반한 연구를 시작하지 않는지 설명하려고 고심하는 대신, 작업을 시작하기 전에 문헌 검토를 하는 것이 좋습니다.
1.6 모델 배포를 미리 고려하세요
학문 연구의 궁극적인 목표가 실제 세계에 배포할 수 있는 머신 러닝 모델을 만드는 것이라면,가능한 한 일찍 배포 문제를 고려해야 합니다.예를 들어, 환경적 제약이 모델 복잡성에 미치는 영향, 시간 제한이 있는지, 소프트웨어 시스템과의 통합 방법 등이 있습니다.
2단계: 안정적으로 모델 만들기
데이터를 올바르게 사용하고 신중하게 생각한 모델 선택을 하기 위해서는 체계적인 방식으로 모델을 만드는 것이 중요합니다.
2.1 테스트 데이터는 모델 학습에 사용할 수 없습니다.
테스트 데이터가 모델의 구성, 학습 또는 선택에 포함되면 데이터의 신뢰성과 다용성에 큰 영향을 미칩니다. 이는 공개된 머신 러닝 모델이 실제 데이터에 적용되지 않는 일반적인 이유이기도 합니다.
❎ 오류 예시(피해야 할 오류):
* 데이터 준비 중에 변수 스케일링을 위해 전체 데이터 세트의 변수 평균 및 범위 정보를 사용합니다(올바른 접근 방식은 훈련 데이터에서만 이를 수행하는 것입니다)
* 데이터 분할 전에 기능 선택을 수행합니다.
* 동일한 테스트 데이터를 사용하여 여러 모델의 일반화 가능성을 평가합니다.
* 테스트 데이터를 분할하기 전에 데이터 증강을 적용합니다.
위의 문제를 피하기 위해서는가장 좋은 방법은 프로젝트를 시작하기 전에 데이터 하위 집합을 나누는 것입니다.그리고 프로젝트가 끝나면 이 독립적인 테스트 세트만을 사용하여 단일 모델의 일반화를 테스트합니다.
친절한 팁:시계열 데이터는 특별히 주의해서 처리해야 합니다. 데이터를 무작위로 분할하면 누출과 과적합이 쉽게 발생할 수 있기 때문입니다.
2.2 다양한 모델을 시도해보세요
세상에는 보편적인 머신러닝 모델은 없습니다. 우리의 연구 목표는 특정 문제에 적합한 머신 러닝 모델을 찾는 것입니다. Python, R, Julia 등과 같은 최신 머신 러닝 라이브러리코드를 약간만 변경하면 여러 모델을 시도해 보고 가장 효과적인 모델을 찾을 수 있습니다.
친절한 팁:
* 부적절한 모델을 사용하지 말고 테스트 세트 대신 검증 세트를 사용하여 모델을 평가하십시오.
* 모델을 비교할 때 모델의 하이퍼파라미터를 최적화하고 여러 번 평가를 수행하며, 결과를 게시할 때 여러 비교를 수정합니다.
2.3 부적절한 모델을 사용하지 마십시오
최신 머신 러닝 라이브러리는 머신 러닝을 구현하기 위한 임계값을 낮추었지만, 범주형 특성에 적합한 모델을 숫자형 특성이 포함된 데이터 세트에 적용하거나 회귀 모델을 사용해야 할 때 분류 모델을 사용하는 등 부적절한 모델을 선택하기 쉽게 만들기도 합니다.모델을 선택할 때는 사용 사례에 최대한 적합한 모델을 선택하도록 하세요.
2.4 딥러닝은 때때로 최적의 솔루션이 아닙니다.
일부 작업에서는 딥 신경망(DNN)이 좋은 성능을 보이지만,하지만 DNN이 모든 문제에 적합하다는 것은 아닙니다.특히 데이터가 제한적이거나 기본 패턴이 매우 단순하거나 모델을 해석할 수 있어야 하는 경우 DNN은 랜덤 포레스트나 SVM과 같은 일부 구식 머신 러닝 모델만큼 좋은 성능을 발휘하지 못할 수 있습니다.
2.5 모델 하이퍼파라미터 최적화
하이퍼매개변수는 모델의 성능에 큰 영향을 미치며 종종 특정 데이터 세트에 맞게 조정되어야 합니다. 목적 없이 테스트하는 것은 올바른 하이퍼매개변수를 찾는 가장 좋은 방법이 아닐 수 있습니다.랜덤 탐색, 그리드 탐색 등의 하이퍼파라미터 최적화 전략을 사용하는 것이 좋습니다.
친절한 팁:하이퍼파라미터의 수가 많거나 학습 비용이 높은 모델의 경우 이러한 전략은 적용할 수 없습니다. AutoML 및 데이터 마이닝 파이프라인과 같은 기술을 사용하면 모델 선택과 하이퍼파라미터를 최적화할 수 있습니다.
2.6 하이퍼파라미터를 최적화하고 기능을 선택할 때는 특히 주의하세요.
하이퍼파라미터 최적화와 특징 선택은 모델 학습의 일부입니다. 모델 학습이 시작되기 전에 전체 데이터 세트에 대해 기능 선택을 수행하지 마세요. 그렇게 하면 테스트 세트의 정보가 학습 과정으로 유출됩니다. 모델의 하이퍼파라미터 또는 기능을 최적화합니다.모델을 학습하는 데 사용한 것과 정확히 동일한 데이터를 사용하는 것이 가장 좋으며, 일반적인 기법은 중첩 교차 검증(이중 교차 검증이라고도 함)입니다.
3단계: 모델을 견고하게 평가
부적절한 모델 평가는 매우 흔하며 학술 연구의 진전을 방해합니다. 그러므로,실험에서 데이터를 어떻게 사용할지, 모델의 실제 성능을 어떻게 측정할지, 어떻게 보고할지 신중하게 고려해야 합니다.
3.1 적절한 테스트 모음을 사용하세요
테스트 세트를 사용하여 머신 러닝 모델의 일반화 가능성을 측정하고 테스트 세트의 데이터가 적절한지 확인하세요.테스트 세트는 훈련 세트와 겹치지 않아야 하며 더 넓은 범위의 조건을 포괄해야 합니다. 예를 들어, 어떤 물체의 사진 데이터 세트의 경우, 훈련 세트와 테스트 세트가 모두 화창한 날 야외에서 수집된 경우, 테스트 세트는 더 광범위한 기상 조건을 포착하지 못하므로 독립적이지 않습니다.
3.2 데이터 분할 전에 데이터 증강을 수행하지 마십시오.
데이터 증강은 데이터 세트의 균형을 맞추고 머신 러닝 모델의 일반성과 견고성을 개선하는 데 도움이 됩니다.과도한 적합을 방지하기 위해 데이터 증가는 훈련 세트에만 적용해야 하며 테스트 세트에는 적용해서는 안 됩니다.
3.3 검증 세트 사용
모델 성능을 측정하기 위해 별도의 검증 세트가 사용되는데, 여기에는 학습에 직접 사용되지는 않지만 학습을 안내하는 데 사용되는 샘플 세트가 포함됩니다. 검증 세트의 또 다른 장점은 조기에 중단할 수 있다는 것입니다.
3.4 모델을 여러 번 평가합니다.
모델에 대한 단일 평가는 신뢰할 수 없습니다.모델의 실제 성능을 과소평가하거나 과대평가할 수 있습니다.이를 위해서는 모델을 여러 번 평가해야 하는데, 이는 일반적으로 훈련 데이터의 다른 하위 집합을 사용하여 모델을 여러 번 훈련하는 것을 포함합니다. 교차 검증은 10겹 교차 검증을 비롯하여 다양한 유형에서 특히 인기 있는 방법입니다.
친절한 팁:여러 평가의 평균과 표준 편차를 보고하는 동안, 통계적 검정을 사용하여 모델을 나중에 비교할 수 있도록 단일 점수를 보관하는 것이 좋습니다.
3.5 최종 모델 인스턴스를 평가하기 위해 일부 데이터를 예약합니다.
모델 인스턴스의 일반화 가능성을 안정적으로 평가하는 가장 좋은 방법은 다음과 같습니다.아니면 다른 테스트 세트를 사용하는 게 어떨까요?따라서 데이터 양이 충분히 많다면 일부 데이터를 예약해두고 최종 선택된 모델 인스턴스에 대한 편향되지 않은 평가를 수행하는 것이 좋습니다.
3.6 불균형 데이터 세트에 정확도를 사용하지 마십시오.
머신 러닝 모델을 평가할 때 지표를 선택할 때는 주의하세요. 예를 들어, 분류 모델에 가장 일반적으로 사용되는 지표는 정확도인데, 이는 데이터 세트가 균형 잡힌 경우(각 범주가 데이터 세트에서 비슷한 수의 샘플 대표를 갖는 경우)에 효과적입니다. 그러나 데이터 세트가 불균형할 경우 정확도는 매우 오해의 소지가 있는 지표가 될 수 있습니다.
이 경우에는,F1 점수, 코헨의 카파 계수(κ), 매튜스 상관 계수(MCC)와 같이 학급 규모 불균형에 민감하지 않은 지표를 사용하는 것이 더 좋습니다.
4단계: 모델 공정 비교
모델을 비교하는 것은 학술 연구에 있어 기본이지만, 부당한 방식으로 비교를 해서 발표한다면 다른 연구자들을 오도하게 될 것입니다. 그래서,동일한 조건에서 다양한 모델을 평가하고 통계적 검정을 적절히 사용해야 합니다.
4.1 모델의 경우 숫자가 높을수록 성능이 좋습니다.
논문에는 종종 이런 진술이 등장합니다. "이전 연구의 정확도는 94%였고, 이 모델의 정확도는 95%만큼 높으므로 더 좋습니다." 다양한 이유가 이를 나타냅니다.숫자가 높을수록 더 나은 모델이 되는 것은 아닙니다.모델이 동일한 데이터 세트의 다른 파티션에서 훈련되거나 평가되는 경우 성능 차이가 작을 수 있습니다. 완전히 다른 데이터 세트를 사용하는 경우 성능 차이가 엄청날 수 있습니다. 동일한 양의 하이퍼파라미터 최적화를 수행하지 않는 것도 모델 성능에 차이를 가져올 수 있습니다.
따라서 두 모델의 성능을 과학적으로 비교하기 위해서는모델은 동일한 수준으로 최적화되어야 하며, 여러 번 평가되어야 하며, 통계적 테스트를 통해 성능 차이가 유의미한지 확인해야 합니다.
4.2 통계적 검정을 사용한 모델 비교
두 모델 간의 성능 차이를 비교하려면 통계적 검정을 사용하는 것이 좋습니다. 대체로 머신 러닝 모델을 비교하는 테스트는 두 가지 범주로 나뉩니다.첫 번째 카테고리는 유사한 모델 인스턴스를 비교하는 데 사용됩니다.예를 들어, 두 개의 훈련된 의사결정 트리를 비교할 때 McNemar 테스트를 사용할 수 있습니다.두 번째 범주는 보다 일반적인 모델 비교에 적합합니다.예를 들어, 어느 의사결정 트리나 신경망이 더 적합한지 비교할 때 Mann-Whitney U 테스트를 사용합니다.
4.3 다중 비교에 대한 수정
통계적 검정을 사용하여 두 개 이상의 모델을 비교하는 것은 다소 복잡합니다. 다중 쌍별 검정은 검정 세트를 여러 번 사용하는 것과 유사하며, 이로 인해 유의성에 대한 지나치게 낙관적인 해석이 나올 수 있습니다.
이 문제를 해결하려면 본페로니 보정과 같은 다중 검정 보정을 사용하는 것이 좋습니다.
4.4 커뮤니티 벤치마크를 너무 믿지 마세요
특정 분야의 문제에 대해 많은 사람은 새로운 머신 러닝 모델의 성능을 평가하기 위해 벤치마크 데이터 세트를 선택합니다. 모든 사람이 동일한 데이터를 사용하여 모델을 훈련하고 테스트하기 때문에 비교가 더 직관적일 것입니다. 이 접근 방식에는 몇 가지 큰 단점이 있습니다.
첫째, 테스트 세트에 대한 접근이 무제한이라면 다른 사람들이 이를 훈련 과정의 일부로 사용하지 않았을 것이라는 보장이 없으므로 결과에 대한 지나친 낙관론이 생길 수 있습니다. 게다가 데이터를 사용하는 각 사람이 테스트 세트를 한 번만 사용했더라도 전체적으로는 커뮤니티에서 테스트 세트가 여러 번 사용되었을 수 있으며, 이는 모델의 과적합으로 이어질 수도 있습니다.이를 위해 벤치마크 데이터 세트의 결과는 신중하게 해석해야 하며 성능 개선에 대한 합리적인 판단을 내려야 합니다.
5단계: 결과 보고
학술 연구는 지식 증진에 기여해야 합니다.이를 위해서는 연구 작업의 전반적인 상태를 보고해야 하며, 어떤 노력이 성공적이었는지, 어떤 노력이 실패했는지도 보고해야 합니다.머신 러닝은 종종 상충 관계를 수반하며, 한 모델이 모든 면에서 다른 모델보다 더 나은 경우는 드뭅니다. 따라서 결과를 보고할 때 이 점을 반영해야 합니다.
5.1 보고는 투명해야 합니다.
모든 연구 작업을 투명하게 공유하세요.이렇게 하면 다른 사람들이 실험을 반복하고 모델을 비교하기가 더 쉬워집니다. 실험 내용을 명확하게 문서화하고 깔끔한 코드를 작성하는 것은 자신과 다른 사람들에게 이롭습니다. 머신 러닝 커뮤니티는 실험의 재현성에 점점 더 집중하고 있으며, 작업 흐름에 대한 문서화가 부족하면 후속 출판물에 영향을 미칠 수 있습니다.
5.2 다양한 방법으로 성과 보고
모델 성능을 평가할 때,더욱 엄격한 접근 방식은 여러 데이터 세트를 사용하는 것입니다.이는 단일 데이터 세트와 관련된 결함을 극복하고 모델 성능에 대한 포괄적인 그림을 제공하는 데 도움이 될 수 있습니다. 각 데이터 세트에 대해 여러 가지 지표를 보고하는 것이 좋습니다. 지표마다 결과가 다르고 작업의 투명성이 높아질 수 있기 때문입니다.
5.3 데이터만 요약
다른 연구자들을 잘못된 길로 인도할 수 있는 잘못된 결론을 제시하지 마십시오. 일반적인 실수 중 하나는 모델을 훈련하고 평가하는 데 사용된 데이터로 뒷받침되지 않는 일반화를 게시하는 것입니다. 모델이 한 데이터 세트에서 좋은 성능을 보인다고 해서 반드시 다른 데이터 세트에서도 좋은 성능을 보인다는 것은 아닙니다. 다양한 데이터 세트를 사용하면 신뢰할 수 있는 통찰력을 얻을 수 있지만, 실험을 통해 연구하고 추론할 수 있는 것에는 항상 한계가 있습니다.결과를 과장하지 말고, 한계점을 인지하세요.
5.4 유의미한 차이점을 주의해서 보고하기
위에서 논의한 통계적 검정은 모델 간의 차이점을 검정하는 데 도움이 될 수 있습니다. 그러나 통계적 검정은 완벽하지 않으며 모델의 중요성을 과소평가하거나 과대평가하여 거짓 양성 또는 거짓 음성이 발생할 수 있습니다. 또한 점점 더 많은 통계학자가 신뢰 임계값 사용을 중단하고 p값을 직접 보고하여 모델의 유의성을 결정할 것을 주장합니다.
통계적 유의성 외에도 고려해야 할 또 다른 질문은 두 모델 간의 차이가 실제로 중요한지 여부입니다. 샘플이 충분하다면 실제 성과 차이가 미미하더라도 항상 유의미한 차이를 발견할 수 있기 때문입니다. 따라서 중요성을 판단할 때 효과 크기를 측정할 수 있습니다. 이러한 방법에는 코헨의 d 통계(더 일반적임), 콜모고로프/스미르노프(더 나은 효과, 권장) 등이 있습니다.
5.5 모델의 작동 원리에 초점을 맞추십시오
훈련된 모델에는 많은 유효한 정보가 포함되어 있습니다.그러나 많은 저자는 모델 원리를 설명하지 않고 단지 모델의 성과 지표만 보고합니다.연구의 목적은 다른 연구자들보다 약간 더 높은 정확도를 얻는 것이 아니라, 지식을 요약하여 연구 커뮤니티와 공유하고, 이를 통해 연구 결과의 출판 가능성을 높이는 것입니다. 예를 들어, 의사결정 트리와 같은 간단한 모델의 경우 모델 시각화를 제공합니다. 심층 신경망과 같은 복잡한 모델의 경우, XAI(설명 가능 인공지능) 기술을 사용하여 관련 정보를 추출하는 것을 고려하세요.
위의 내용은 "회피 가이드"의 전체 내용입니다. 머신 러닝을 처음 접하는 모든 학생이 이를 통해 배울 수 있기를 바랍니다.여러분 모두 이 보물책을 간직하고 자주 읽어 새로운 것을 배우세요. 그러면 연구 방향을 쉽게 찾고, 좋은 주제를 선택하고, 가능한 한 빨리 논문을 출판할 수 있을 거예요!
좋은 소식 기대합니다~
참조 링크:[머신러닝 함정을 피하는 방법: 학계 연구자를 위한 가이드]
-- 위에--