2022.12.17 - [IT/AI] - 이제는 꼭 알아야 할 AI 응용 사이트
서론
오버핏은 기계 학습의 가장 좌절스러운 문제일 수 있습니다. 이 기사에서 우리는 그것이 무엇인지, 어떻게 그것을 발견하는지, 그리고 가장 중요한 것은 어떻게 그것이 일어나지 않도록 하는지 볼 것입니다.
무엇이 과적합인가?
과적합이라는 단어는 교육 데이터를 너무 잘 모형화하는 모형을 나타냅니다. 이 모형은 데이터의 일반 분포를 학습하는 대신 모든 데이터 점에 대해 기대되는 출력을 학습합니다.
이것은 공식을 아는 대신 수학 퀴즈에 대한 답을 암기하는 것과 같다. 이 때문에 모델을 일반화할 수 없습니다. 익숙한 지역에 있는 한 모든 것이 좋지만, 밖으로 나가자마자 길을 잃는다.
이 작은 녀석은 곱셈을 할 줄 모르는 것 같군요. 그는 자신이 이미 본 질문에 대한 대답만 기억한다.
어려운 점은 교육 데이터에 오류가 매우 작기 때문에 언뜻 보기엔 모형이 잘 작동하는 것처럼 보일 수 있다는 것입니다. 그러나 새 데이터 점을 예측하도록 요청하면 즉시 실패합니다.
과적합 감지 방법
위에서 설명한 것처럼 과적합은 모형을 일반화하지 못하는 것이 특징입니다. 이 기능을 테스트하기 위해 간단한 방법은 데이터 집합을 교육 세트와 테스트 세트 두 부분으로 나누는 것입니다. 모형을 선택할 때 데이터 집합을 세 개로 분할해야 할 수 있습니다. 여기서 이유를 설명합니다.
교육 세트는 사용 가능한 데이터의 약 80%를 나타내며, 모델을 교육하는 데 사용됩니다(그렇지 않습니까?).
테스트 세트는 데이터 집합의 나머지 20%로 구성되며, 이전에는 보지 못했던 데이터에 대한 모형의 정확도를 테스트하는 데 사용됩니다.
이러한 분할을 통해 각 세트의 모델 성능을 점검하여 교육 프로세스가 어떻게 진행되고 있는지 파악하고 교육 프로세스가 발생할 때 오버핏을 찾아낼 수 있습니다. 다음 표에서는 여러 가지 사례를 보여 줍니다.
Overfitting can be seen as the difference between the training and testing error.
참고: 이 기술이 작동하려면 두 부품이 모두 데이터를 대표하는지 확인해야 합니다. 분할하기 전에 데이터 집합의 순서를 섞는 것이 좋습니다.
과적합은 여러분의 희망을 잔인하게 짓밟기 직전에 올리기 때문에 상당히 실망스러울 수 있습니다. 다행히도, 이런 일이 일어나지 않도록 하기 위한 몇 가지 요령이 있습니다.
과적합을 방지하는 방법 - 모델 및 데이터
첫째, 솔루션을 찾기 위해 시스템의 구성 요소를 살펴볼 수 있습니다. 즉, 사용 중인 데이터나 모델을 변경할 수 있습니다.
추가 데이터 수집
모형은 너무 많은 정보만 저장할 수 있습니다. 즉, 더 많은 교육 데이터를 제공할수록 과적합 가능성이 적다는 의미입니다. 그 이유는 데이터를 추가하면 모형에서 모든 표본을 과대 적합시킬 수 없게 되고 모형을 일반화하여 진행해야 하기 때문입니다.
더 많은 데이터가 모델의 정확도를 높이는 동시에 과적합 가능성을 줄이기 때문에 더 많은 예제(샘플)를 수집하는 것이 모든 데이터 과학 과제의 첫 번째 단계가 되어야 합니다.
The more data you get, the less likely the model is to overfit.
데이터 확대 및 노이즈
더 많은 데이터를 수집하는 것은 지루하고 비용이 많이 드는 과정입니다. 이렇게 할 수 없는 경우 데이터가 더 다양한 것처럼 나타나도록 해야 합니다. 이렇게 하려면 표본이 모형에 의해 처리될 때마다 이전 시간과는 약간 달라지도록 데이터 확대 기술을 사용합니다. 이렇게 하면 각 표본에 대한 모수를 모형에서 학습하기가 더 어려워집니다.
Each iteration sees as different variation of the original sample.
또 다른 좋은 방법은 소음을 추가하는 것입니다.
입력 내용: 이는 데이터 증강과 동일한 목적을 제공하지만, 모델이 야생에서 직면할 수 있는 자연적 동요에 견실하게 만드는 데에도 도움이 될 것입니다.
출력 대상: 다시 말하지만, 이것은 훈련을 더 다양화 시킬 것입니다.
참고: 두 경우 모두 노이즈의 크기가 너무 크지 않은지 확인해야 합니다. 그렇지 않으면 각각 입력 정보를 노이즈에 넣거나 출력을 부정확하게 만들 수 있습니다. 둘 다 훈련 과정을 방해할 것입니다.
모델 단순화
현재 보유한 모든 데이터에도 불구하고 모델이 교육 데이터 세트를 초과 달성할 수 있다면, 모델이 너무 강력할 수 있습니다. 그런 다음 모형의 복잡성을 줄일 수 있습니다.
앞에서 설명한 대로, 모형은 그 만큼의 데이터만 적합시킬 수 있습니다. 그 복잡성을 점진적으로 줄임으로써, 무작위 포리스트의 추정기 수, 신경 네트워크의 매개 변수 수 등. — 모델을 너무 단순하게 만들면 안 되지만 데이터로부터 배울 수 있을 만큼 충분히 복잡해집니다. 그러기 위해서는 모델 복잡성에 따라 두 데이터 세트의 오류를 보는 것이 편리합니다.
또한 모델을 더 가볍고, 더 빨리 훈련하고, 더 빨리 달릴 수 있다는 장점이 있습니다.
On the left, the model is too simple. On the right it overfits.
과적합을 방지하는 방법 - 교육 프로세스
두 번째 가능성으로 인해 교육 수행 방법이 변경될 수 있습니다. 여기에는 손실 함수 또는 훈련 중에 모델이 작동하는 방식을 변경하는 것도 포함됩니다.
조기 종료
대부분의 경우, 모형이 데이터의 올바른 분포를 학습하는 것으로 시작되고, 어느 시점에서 데이터가 과대 적합되기 시작합니다. 이러한 이동이 발생하는 순간을 식별하면 과적합이 발생하기 전에 학습 프로세스를 중지할 수 있습니다. 이전과 마찬가지로, 이는 시간 경과에 따른 교육 오류를 살펴봄으로써 이루어집니다.
When the testing error starts to increase, it’s time to stop!
과적합을 방지하는 방법 — 정규화
정규화는 과적합을 줄이기 위해 모델의 학습을 제약하는 과정이다. 그것은 많은 다른 형태를 취할 수 있고, 우리는 그것들 중 몇 가지를 볼 것입니다.
L1 및 L2 정규화
정규화의 가장 강력하고 잘 알려진 기법 중 하나는 손실 함수에 페널티를 추가하는 것이다. 가장 일반적인 것은 L1 및 L2입니다.
L1 패널티는 가중치의 절대값을 최소화하는 것을 목표로 합니다.
L2 패널티는 가중치의 제곱을 최소화하는 것을 목표로 합니다.
이 벌칙으로, 모델은 더 이상 임의로 크기를 조정할 수 없기 때문에 중량을 절충해야 합니다. 따라서 모델이 보다 일반적이므로 과적합에 대처할 수 있습니다.
L1 패널티는 형상 선택을 강제한다는 이점이 추가되는데, 이는 덜 유용한 파라미터 0으로 설정하는 경향이 있다는 것을 의미한다. 이를 통해 데이터셋에서 가장 관련성이 높은 기능을 식별할 수 있습니다. 단점은 종종 L2 패널티만큼 계산 효율이 높지 않다는 것입니다.
무게 행렬은 다음과 같습니다. L1 행렬이 많은 0으로 희박하고, L2 행렬이 약간 더 작은 가중치를 갖는 방법에 유의하십시오.
또 다른 가능성은 훈련 중 매개변수에 노이즈를 추가하여 일반화에 도움이 됩니다.
딥러닝: 중퇴 및 드롭커넥트
이 매우 효과적인 기술은 딥러닝에 특화되어 있는데, 이는 신경망이 한 계층에서 다음 계층으로 정보를 처리한다는 사실에 의존하기 때문이다. 이 아이디어는 훈련 중에 뉴런(드롭아웃) 또는 연결(드롭커넥트) 중 하나를 임의로 비활성화하는 것입니다.
이것은 네트워크가 더 이상 특정한 특징들을 추출하기 위해 특정 뉴런이나 연결에 의존할 수 없기 때문에 네트워크가 중복되게 만든다. 일단 훈련이 끝나면, 모든 뉴런과 연결이 복원됩니다. 이 기법은 일반화를 선호하는 앙상블 접근방식을 갖는 것과 어느 정도 동등하므로 과적합을 줄이는 것으로 나타났습니다.
결론
여러분도 알다시피, 데이터 과학자가 직면해야 하는 주요 문제 중 하나는 과적합입니다. 그것을 멈추는 방법을 모른다면 그것은 정말 고통스러울 수 있습니다. 이 기사에서 제시된 기술을 통해, 여러분은 이제 여러분의 모델이 학습 과정을 속이는 것을 막을 수 있고, 여러분이 받을 만한 결과를 얻을 수 있어야 합니다!
본 내용은 아래의 자료를 번역한 내용입니다.
Memorizing is not learning! — 6 tricks to prevent overfitting in machine learning. | Hacker Noon
Introduction Overfitting may be the most frustrating issue of Machine Learning. In this article, we’re going to see what it is , how to spot it , and most importantly how to prevent it from happening . What is overfitting? The word overfitting refers to a model that models the training data too well...
hackernoon.com
이제 새로운 세상으로 접어들고 있습니다. 이 물결에서 밀리지 않고 잘 전진하시기를 바랍니다.
2022.12.17 - [IT/AI] - 이제는 꼭 알아야 할 AI 응용 사이트
2022.12.17 - [IT/AI] - AI를 공부할 때 알아야 할 5가지 핵심
나날이 발전하시기를 기원합니다.
텐서플로 허브(TensorFlow Hub) 와 전이학습(Transfer Learning) (0) | 2021.05.15 |
---|---|
시각화로 컨볼루션 네트워크 이해 (0) | 2021.05.15 |
컨볼루션 신경망(CNN)을 위한 포괄적인 가이드 (0) | 2021.05.06 |
딥러닝 스터디 사이트 (0) | 2021.01.24 |
딥러닝(Deep Learning) 사이트 (0) | 2021.01.24 |