머신러닝을 위한 Bayes 정리에 대한 간략한 소개
Bayes 정리는 조건부 확률을 계산하는 원칙적인 방법을 제공합니다.
직관이 종종 실패하는 사건의 조건부 확률을 쉽게 계산하는 데 사용할 수 있지만 믿을 수 없을 정도로 간단한 계산입니다.
확률 분야에서 강력한 도구이지만 Bayes 정리는 머신러닝 분야에서도 널리 사용됩니다. 모델을 훈련 데이터 세트에 맞추기 위한 확률 프레임워크(줄여서 최대 사후 또는 MAP라고 함)에서의 사용과 Bayes 최적 분류기 및 Naive Bayes와 같은 분류 예측 모델링 문제에 대한 모델 개발에 사용됩니다.
이 게시물에서는 조건부 확률을 계산하기 위한 Bayes 정리와 머신러닝에서 사용되는 방법을 알아봅니다.
이 게시물을 읽은 후 다음을 알게 될 것입니다.
- Bayes 정리란 무엇이며 실제 시나리오에서 계산을 수행하는 방법.
- Bayes 정리 계산의 용어가 의미하는 것과 그 이면의 직관.
- Bayes 정리가 분류기, 최적화 및 인과 모델에서 어떻게 사용되는지에 대한 예입니다.
개요
이 자습서는 다음과 같이 6부로 구성되어 있습니다.
- 조건부 확률의 Bayes 정리
- 정리에서 용어 이름 지정
Bayes 정리 계산을 위한 작업 예제
- 진단 테스트 시나리오
- 수동 계산
- 파이썬 코드 계산
- 이진 분류자 용어
- 모델링 가설을 위한 Bayes 정리
분류를 위한 Bayes 정리
- 나이브(Naive) Bayes 분류기
- Bayes 최적 분류기
- 머신러닝에서 Bayes 정리의 더 많은 사용
- 베이지안 최적화
- 베이지안 신념 네트워크
조건부 확률의 Bayes 정리
Bayes 정리를 살펴보기 전에 주변 확률, 결합 확률 및 조건부 확률을 검토해 보겠습니다.
주변 확률은 다른 확률 변수에 관계없는 사건의 확률이라는 것을 상기하십시오. 랜덤 변수가 독립적이면 사건의 직접 확률이고, 그렇지 않으면 변수가 다른 변수에 종속된 경우 주변 확률은 합계 규칙이라고 하는 종속 변수의 모든 결과에 대해 합산된 사건의 확률입니다.
- 주변 확률: 다른 확률 변수(예: P(A))의 결과에 관계없는 사건의 확률.
결합 확률은 두 개(또는 그 이상)의 동시 사건의 확률로, 종종 두 개의 종속 확률 변수(예: X 및 Y)에서 사건 A와 B로 설명됩니다. 결합 확률은 종종 결과로 요약됩니다 (예 : A 및 B).
- 결합 확률: 두 개(또는 그 이상)의 동시 사건의 확률(예: P(A 및 B) 또는 P(A, B).
조건부 확률은 다른 사건의 발생이 주어진 한 사건의 확률이며, 종종 두 개의 종속 확률 변수 (예 : X 및 Y)의 사건 A와 B로 설명됩니다.
- 조건부 확률: 다른 사건이 발생할 때 하나(또는 그 이상)의 사건이 발생할 확률(예: P(A 주어진 B) 또는 P(A | B).
결합 확률은 조건부 확률을 사용하여 계산할 수 있습니다. 예를 들어:
- P(A, B) = P(A | B) * P (B)
이를 제품 규칙이라고 합니다. 중요한 것은 결합 확률이 대칭이며, 이는 다음을 의미합니다.
- P (A, B) = P (B, A)
조건부 확률은 결합 확률을 사용하여 계산할 수 있습니다. 예를 들어:
- P(A | B) = P (A, B) / P (B)
조건부 확률은 대칭이 아닙니다. 예를 들어:
- P(A | B) != P(B | A)
우리는 이제 주변, 결합 및 조건부 확률로 속도를 내고 있습니다. 이러한 기본 사항에 대한 자세한 배경 지식을 보려면 다음 자습서를 참조하십시오.
조건부 확률을 계산하는 다른 방법
이제 조건부 확률을 계산하는 또 다른 방법이 있습니다.
구체적으로, 하나의 조건부 확률은 다른 조건부 확률을 사용하여 계산할 수 있습니다. 예를 들어:
- P(A| B) = P (B| A) * P (A) / P (B)
그 반대의 경우도 마찬가지입니다. 예를 들어:
- P(B| A) = P (A| B) * P (B) / P (A)
조건부 확률을 계산하는 이 대체 접근 방식은 결합 확률을 계산하기 어려운 경우(대부분의 경우) 또는 역방향 조건부 확률을 사용할 수 있거나 계산하기 쉬운 경우에 유용합니다.
조건부 확률에 대한 이 대체 계산은 Bayes 규칙 또는 Bayes 정리라고 하며, 이를 처음 설명한 것으로 알려진 Thomas Bayes 목사의 이름을 따서 명명되었습니다. Bayes의 정리 (아포스트로피 포함)라고 부르는 것이 문법적으로 정확하지만 단순화를 위해 아포스트로피를 생략하는 것이 일반적입니다.
- Bayes 정리: 결합 확률 없이 조건부 확률을 계산하는 원칙적인 방법.
분모에 직접 접근할 수 없는 경우가 종종 있습니다 (예 : P (B).
다른 방법으로 계산할 수 있습니다. 예를 들어:
- P (B) = P (B| A) * P (A) + P (B|A가 아님) * P (A가 아님)
이것은 아래에 설명된 P (B)의 대체 계산을 위해 사용할 수있는 Bayes 정리의 공식을 제공합니다.
- P(A| B) = P (B| A) * P (A) / P (B| A) * P (A) + P (B|A가 아님) * P (A가 아님)
또는 명확성을 위해 분모 주위에 대괄호가 있습니다.
- P(A| B) = P (B| A) * P (A) / (P (B| A) * P (A) + P (B |A가 아님) * P (A가 아님))
참고 : 분모는 단순히 위에서 제공한 확장입니다.
따라서 P (A)가 있으면 P (A가 아님)를 보수로 계산할 수 있습니다. 예를 들어:
- P (A가 아님) = 1 – P (A)
또한 P (B가 아님|A가 아님)가있는 경우 P (B|A가 아님)를 보수로 계산할 수 있습니다. 예를 들어:
- P (B|A가 아님) = 1 – P (B가 아님|A가 아님)
이제 Bayes 정리의 계산에 익숙해졌으므로 방정식에서 항의 의미를 자세히 살펴보겠습니다.
정리에서 용어 이름 지정
Bayes 정리 방정식의 항은 방정식이 사용되는 컨텍스트에 따라 이름이 지정됩니다.
이러한 다양한 관점에서 계산에 대해 생각하고 문제를 방정식에 매핑하는 데 도움이 될 수 있습니다.
첫째, 일반적으로 결과 P (A|B)는 사후확률이라고 하며 P (A)는 사전 확률이라고 합니다.
- P(A| B): 후방 확률.
- P (A) : 사전 확률.
때때로 P (B| A)를 발생가능성이라고 하고 P(B)를 증거라고 합니다.
- P(B| A): 가능성.
- P (B) : 증거.
이를 통해 Bayes 정리는 다음과 같이 요약할 수 있습니다.
- 사후 = 가능성 * 사전 / 증거
우리는 연기 및 화재 사건으로 이것을 분명히 할 수 있습니다.
연기가 있다는 점을 감안할 때 화재가 발생할 확률은 얼마입니까?
여기서 P (불)는 선행, P (연기| 불)은 가능성이고 P (연기)는 증거입니다.
- P(불| 연기) = P (연기| 화재) * P (화재) / P (연기)
비와 구름과 같은 상황을 상상할 수 있습니다.
이제 Bayes 정리와 항의 의미에 익숙해졌으므로 이를 계산할 수 있는 시나리오를 살펴보겠습니다.
Bayes 정리 계산을 위한 작업 예제
Bayes 정리는 계산을 보여주기 위해 실수가 있는 실제 작업 예제로 가장 잘 이해됩니다.
먼저 시나리오를 정의한 다음 수동 계산, Python의 계산 및 이진 분류 분야에서 익숙할 수 있는 용어를 사용한 계산을 통해 작업합니다.
- 진단 테스트 시나리오
- 수동 계산
- 파이썬 코드 계산
- 이진 분류자 용어
진단 테스트 시나리오
Bayes 정리의 이점에 대한 우수하고 널리 사용되는 예는 의료 진단 테스트 분석입니다.
시나리오: 암에 걸렸을 수도 있고 없을 수도 있는 인간 집단(암은 참 또는 False)과 암 감지에 대해 양성 또는 음성(테스트는 양성 또는 음성)을 반환하는 의료 테스트(예: 유방암 감지를 위한 유방 조영술)를 고려합니다.
문제: 무작위로 선택된 환자가 검사를 받았는데 양성으로 나오면 환자가 암에 걸릴 확률은 얼마입니까?
수동 계산
의료 진단 검사는 완벽하지 않습니다. 이것들은 오류가 있습니다.
때때로 환자는 암에 걸리지만 검사에서 암을 감지하지 못합니다. 암을 감지하는 검사의 이러한 기능을 민감도 또는 진양성률이라고 합니다.
이 경우 테스트에 대한 민감도 값을 고안합니다. 테스트는 양호하지만 훌륭하지는 않으며 실제 양성률 또는 민감도는 85%입니다. 즉, 암에 걸려 검사를받는 모든 사람들 중 85 %가 검사에서 긍정적인 결과를 얻습니다.
- P (테스트 = 양성 | 암=True) = 0.85
이 정보가 주어지면 우리의 직감은 환자가 암에 걸릴 확률이 85 %라고 제안합니다.
확률에 대한 우리의 직관은 잘못되었습니다.
확률을 해석 할 때 이러한 유형의 오류는 매우 일반적이어서 자체 이름이 있습니다. 이를 기준금리 오류라고 합니다.
이 이름은 사건의 확률을 추정하는 오류가 기본 비율을 무시하여 발생하기 때문입니다. 즉, 진단 테스트의 결과에 관계없이 무작위로 선택된 사람이 암에 걸릴 확률을 무시합니다.
이 경우 유방암의 확률이 낮다고 가정하고 5,000분의 1 또는 (0.0002) 0.02%의 인위적인 기본 요율 값을 사용할 수 있습니다.
- P (암 = True) = 0.02 %.
Bayes 정리를 사용하여 암 환자에게 양성 검사 결과가 주어질 확률을 정확하게 계산할 수 있습니다.
시나리오를 방정식에 매핑해 보겠습니다.
- P(A| B) = P (B| A) * P (A) / P (B)
- P(암=True| 테스트 = 양성) = P (테스트 = 양성| 암 = True) * P (암 = True) / P (검사 = 양성)
우리는 환자가 암에 걸렸다는 점을 감안할 때 검사가 양성일 확률이 85%라는 것을 알고 있으며 주어진 환자가 암에 걸릴 기본 비율 또는 사전 확률이 0.02%라는 것을 알고 있습니다. 다음 값을 연결할 수 있습니다.
- P(암=True| 테스트 = 양성) = 0.85 * 0.0002 / P (테스트 = 양성)
우리는 P (테스트 = 양성)를 모릅니다. 이것은 직접 주어지지 않습니다.
대신 다음을 사용하여 추정할 수 있습니다.
- P (B) = P (B| A) * P (A) + P (B|A가 아님) * P (A가 아님)
- P (테스트 = 양성) = P (테스트 = 양성| 암=True) * P(암=True) + P(검사=양성| 암=False) * P(암=False)
첫째, P(암=False)를 우리가 이미 알고 있는 P(암=True)의 보수로 계산할 수 있습니다.
- P (암 = False) = 1 – P (암 = True)
- = 1 – 0.0002
- = 0.9998
우리가 가진 것을 끼워 맞춰 봅시다 :
다음과 같이 알려진 값을 연결할 수 있습니다.
- P(테스트=양성) = 0.85 * 0.0002 + P(테스트=양성| 암=False) * 0.9998
우리는 여전히 암이 없는 경우 양성 검사 결과가 나올 확률을 모릅니다.
이를 위해서는 추가 정보가 필요합니다.
특히, 우리는 검사가 암에 걸리지 않은 사람들을 정확하게 식별하는 데 얼마나 좋은지 알아야합니다. 즉, 환자가 암에 걸리지 않았을 때 음성 결과(테스트=음성)를 테스트하는 것(Cancer=False)을 참 음성율 또는 특이도라고 합니다.
우리는 95 %의 인위적인 특이성 값을 사용할 것입니다.
- P(테스트=음수 | 암=False) = 0.95
이 마지막 정보를 사용하여 False 음성 비율의 보수로 False 양성 또는 False 경보 비율을 계산할 수 있습니다.
- P (테스트 = 양성| 암 = False) = 1 – P (테스트 = 음성 | 암=False)
- = 1 – 0.95
- = 0.05
이 오경보율을 다음과 같이 P(Test=Positive) 계산에 연결할 수 있습니다.
- P(검정=양수) = 0.85 * 0.0002 + 0.05 * 0.9998
- P(테스트=양수) = 0.00017 + 0.04999
- P(테스트=양성) = 0.05016
사람이 암에 걸렸는지 여부에 관계없이 검사에서 양성 결과를 반환할 확률은 약 5%입니다.
이제 Bayes 정리를 계산하고 무작위로 선택된 사람이 양성 검사 결과를 얻을 경우 암에 걸릴 확률을 추정하기에 충분한 정보가 있습니다.
- P(암=True| 테스트 = 양성) = P (테스트 = 양성| 암 = True) * P (암 = True) / P (검사 = 양성)
- P(암=True| 테스트=양성) = 0.85 * 0.0002 / 0.05016
- P(암=True| 테스트=양성) = 0.00017 / 0.05016
- P(암=True| 테스트=양성) = 0.003389154704944
계산에 따르면 환자가 이 검사로 암에 걸렸다는 사실을 알게 되었을 때 암에 걸릴 확률은 0.33 %에 불과합니다.
이것은 끔찍한 진단 테스트입니다!
이 예제에서는 조건부 확률을 계산할 때충분한 정보가 필요하다는 것도 보여 줍니다.
예를 들어, Bayes 정리에 사용된 값이 이미 있으면 직접 사용할 수 있습니다.
이것은 드문 경우이며 일반적으로 이 경우와 같이 필요한 비트를 계산하고 연결해야 합니다. 이 시나리오에서는 기본 비율, 민감도(또는 참 양성율) 및 특이도(또는 참 음성율)의 3가지 정보가 제공되었습니다.
- 민감도: 암 환자의 85%가 양성 검사 결과를 얻습니다.
- 기본 비율 : 0.02 %의 사람들이 암에 걸렸습니다.
- 특이성: 암이 없는 사람의 95%는 음성 검사 결과를 얻습니다.
우리는 P (Test = Positive)를 가지고 있지 않았지만 이미 사용 가능한 것을 고려하여 계산했습니다.
Bayes 정리를 통해 주어진 시나리오에 대해 훨씬 더 정확할 수 있다고 상상할 수 있습니다. 예를 들어, 환자(예: 나이)와 도메인(예: 연령대의 암 발생률)에 대한 더 많은 정보가 있으면 훨씬 더 정확한 확률 추정치를 제공할 수 있습니다.
그렇게 하려면 일거리가 꽤 많을 겁니다.
몇 줄의 Python 코드를 사용하여 이 정확한 시나리오를 계산하는 방법을 살펴보겠습니다.
파이썬 코드 계산
이 예제를 구체적으로 만들기 위해 Python에서 계산을 수행할 수 있습니다.
아래 예제는 vanilla Python (라이브러리 없음)에서 동일한 계산을 수행하므로 매개 변수를 사용하고 다른 시나리오를 테스트 할 수 있습니다.
예제를 실행하면 수동 계산과 일치하는 양성 결과가 반환된 경우 환자가 암에 걸릴 확률이 계산됩니다.
이것은 새로운 시나리오에 적응할 수있는 유용한 작은 스크립트입니다.
이제 이진 분류의 항을 사용하여 시나리오에 대한 Bayes 정리의 계산을 설명하는 것이 일반적입니다. 문제에 대해 생각하는 매우 직관적인 방법을 제공합니다. 다음 섹션에서는 이러한 용어를 검토하고 정리의 확률에 매핑되는 방법과 시나리오와 어떤 관련이 있는지 확인합니다.
이진 분류자 용어
암 검사 예를 이진(2등급) 분류의 일반적인 용어, 즉 특이성과 민감도의 개념이 어디에서 왔는지 생각하는 것이 도움이 될 수 있습니다.
개인적으로, 저는 이 용어들이 모든 것을 이해하는 데 도움이 된다는 것을 알고 있습니다.
먼저 오차행렬을 정의해 보겠습니다.
그런 다음 오차행렬에서 몇 가지 비율을 정의할 수 있습니다.
- 트루 포지티브 레이트 (TPR) = TP / (TP + FN)
- False 양성 비율 (FPR) = FP / (FP + TN)
- 진정한 음성 비율 (TNR) = TN / (TN + FP)
- False 음성 비율 (FNR) = FN / (FN + TP)
이러한 용어를 비율이라고 하지만 확률로 해석할 수도 있습니다.
또한 다음을 알아 차리는 것이 도움이 될 수 있습니다.
TPR + FNR = 1.0 또는 :
- FNR = 1.0 – TPR
- TPR = 1.0 – FNR
TNR + FPR = 1.0 또는 :
- TNR = 1.0 – FPR
- FPR = 1.0 – TNR
이전 섹션에서 참 음성 비율 또는 FPR = 1.0 – TNR의 보수가 주어지면 False 양성 비율을 계산했음을 상기하십시오.
이러한 요금 중 일부에는 다음과 같은 특별한 이름이 있습니다.
- 감도 = TPR
- 특이성 = TNR
이러한 비율을 Bayes 정리의 친숙한 용어에 매핑할 수 있습니다.
- P(B| A): 진양성률(TPR).
- P(B가 아님|A가 아님): 참 음률(TNR).
- P(B|아님): FPR(False 양성률).
- P (B가 아님| A): False 음성 비율(FNR).
또한 조건(클래스)과 처리(예측)에 대한 기본 비율을 Bayes 정리의 친숙한 용어로 매핑할 수 있습니다.
- P (A) : 양의 클래스 (PC)의 확률.
- P(A가 아님): 음수 클래스(NC)의 확률입니다.
- P (B) : 긍정적 인 예측 확률 (PP).
- P(B가 아님): 부정적인 예측의 확률(NP).
이제 다음 용어를 사용하는 Bayes 정리를 고려해 보겠습니다.
- P(A| B) = P (B| A) * P (A) / P (B)
- P(A| B) = (TPR * PC) / PP
P (B)를 계산할 수없는 경우가 많으므로 대안을 사용합니다.
- P (B) = P (B| A) * P (A) + P (B|A가 아님) * P (A가 아님)
- P (B) = TPR * PC + FPR * NC
이제 암 시나리오와 암 발견 테스트를 살펴보겠습니다.
클래스 또는 상태는 “암“이고 치료 또는 예측은 “테스트“입니다.
먼저 모든 요금을 검토해 보겠습니다.
- 참 양성률 (TPR) : 85 %
- False 양성 비율 (FPR) : 5 %
- 진정한 음성 비율 (TNR) : 95 %
- False 음성 비율 (FNR) : 15 %
기본 요금에 대해 알고 있는 사항도 검토해 보겠습니다.
- 포지티브 클래스 (PC) : 0.02 %
- 네거티브 클래스 (NC) : 99.98 %
- 긍정적 예측 (PP): 5.016%
- 부정적인 예측 (NP): 94.984%
상황을 연결하면 양성 검사 결과의 확률(양성 예측)을 암이 양성일 확률(참 양성률)에 암에 걸릴 기본 비율(양성 클래스)을 곱한 값, 양성 검사 결과에 암이 없는 경우의 확률(거짓 양성율)에 암에 걸리지 않을 확률(음성 클래스)을 더한 값으로 계산할 수 있습니다.
이러한 용어를 사용한 계산은 다음과 같습니다.
- P (B) = P (B| A) * P (A) + P (B|A가 아님) * P (A가 아님)
- P (B) = TPR * PC + FPR * NC
- P (B) = 85 % * 0.02 % + 5 % * 99.98 %
- P (B) = 5.016 %
그런 다음 시나리오에 대한 Bayes 정리, 즉 양성 검사 결과가 주어진 암의 확률(사후)은 암이 주어진 양성 검사 결과의 확률(참 양성률)에 암에 걸릴 확률(양성 등급 비율)을 곱한 값, 양성 검사 결과의 확률(양성 예측)로 나눈 값입니다.
이러한 용어를 사용한 계산은 다음과 같습니다.
- P(A| B) = P (B| A) * P (A) / P (B)
- P(A| B) = TPR * PC / PP
- P(A| B) = 85 % * 0.02 % / 5.016 %
- P(A| B) = 0.339%
이 경우 Bayes 정리로 계산하는 사후 확률은 오차행렬의 PPV (양의 예측 값)라고도 하는 정밀도와 동일합니다.
- PPV = TP / (TP + FP)
또는 분류자 용어로 명시되어 있습니다.
- P(A| B) = PPV
- PPV = TPR * PC / PP
그렇다면 왜 우리는 사후 확률을 계산하는 데 어려움을 겪습니까?
우리는 검사를 받았고 검사되지 않은 암이 있거나 없는 사람들의 인구에 대한 오차행렬이 없기 때문입니다. 대신, 우리가 가진 것은 인구와 테스트에 대한 몇 가지 사전 예측과 확률 뿐입니다.
이것은 실제로 계산을 사용하도록 선택할 수 있는 시기를 강조합니다.
특히, 관련된 사건에 대한 믿음이 있지만 실제 세계에서 예를 계산하여 계산을 수행 할 수 없는 경우입니다.
모델링 가설을 위한 Bayes 정리
Bayes 정리는 응용 머신러닝에 유용한 도구입니다.
데이터와 모델 간의 관계에 대해 생각하는 방법을 제공합니다.
머신러닝 알고리즘 또는 모델은 데이터의 구조화된 관계에 대해 생각하는 특정 방법입니다. 이러한 방식으로 모델은 입력(X)과 출력(y) 간의 관계와 같은 데이터의 관계에 대한 가설로 생각할 수 있습니다. 응용 머신러닝의 관행은 주어진 데이터 세트에 대한 다양한 가설 (모델)을 테스트하고 분석하는 것입니다.
모델을 가설로 생각하는 이 아이디어가 새로운 경우 주제에 대한이 자습서를 참조하십시오.
Bayes 정리는 데이터 (D)와 가설 (h) 간의 관계를 설명하는 확률 론적 모델을 제공합니다. 예를 들어:
- P(h| D) = P (D|h) * P (h) / P (D)
이를 분해하면 주어진 가설이 일부 관찰된 데이터가 주어지면 유지되거나 참일 확률은 주어진 가설을 관찰할 확률에 데이터에 관계없이 가설이 참일 확률을 곱한 값을 가설에 관계없이 데이터를 관찰할 확률로 나눈 값으로 계산할 수 있다고 말합니다.
Bayes 정리는 사전 확률, 가설이 주어진 다양한 데이터를 관찰할 확률 및 관찰된 데이터 자체를 기반으로 가설의 확률을 계산하는 방법을 제공합니다.
— 페이지 156, 머신러닝, 1997.
이 프레임워크에서 계산의 각 부분에는 특정 이름이 있습니다. 예를 들어:
- P(h| D): 가설의 사후 확률(계산하려는 것).
- P(h): 가설의 사전 확률.
이는 머신러닝 문제를 생각하고 모델링하는 데 유용한 프레임워크를 제공합니다.
가설에 대한 사전 도메인 지식이 있는 경우 이는 사전 확률에 포착됩니다. 그렇지 않으면 모든 가설이 동일한 사전 확률을 가질 수 있습니다.
데이터 P(D)를 관찰할 확률이 증가하면 데이터 P(h)가 주어졌을 때 가설이 성립할 확률이 감소합니다. 반대로, 가설 P(h)의 확률과 주어진 가설의 데이터를 관찰할 확률이 증가하면, 주어진 데이터 P(h)에서 가설의 확률이 증가합니다.
응용 머신러닝의 데이터 세트에서 서로 다른 모델을 테스트하는 개념은 각 가설(h1, h2, h3, … H)에서 관찰된 데이터가 주어지면 참입니다.
모델링에서 최대 사후 확률을 갖는 최적화 또는 가설을 찾는 것을 최대 사후 또는 줄여서 MAP라고합니다.
이러한 최대 확률 가설을 최대 사후 (MAP) 가설이라고 합니다. 각 후보 가설의 사후 확률을 계산하기 위해 Bayes 정리를 사용하여 MAP 가설을 결정할 수 있습니다.
— 페이지 157, 머신러닝, 1997.
이 프레임워크에서 데이터 (D)의 확률은 각 가설의 평가에 사용되므로 일정합니다. 따라서 계산에서 제거하여 다음과 같이 단순화된 정규화되지 않은 추정치를 제공할 수 있습니다.
- H P (h)의 최대 h| D) = P (D|h) * P (h)
테스트중인 가설에 대한 사전 정보가 없는 경우 균일한 확률을 할당할 수 있으며 이 항도 상수가 되며 계산에서 제거하여 다음을 제공 할 수 있습니다.
- H P (h)의 최대 h| D) = P (D|h)
즉, 목표는 관찰된 데이터를 가장 잘 설명하는 가설을 찾는 것입니다.
숫자 값을 예측하기 위한 선형 회귀 및 이진 분류를 위한 로지스틱 회귀와 같은 피팅 모델은 MAP 확률적 프레임워크에서 구성하고 해결할 수 있습니다. 이는 보다 일반적인 MLE(최대 발생가능성 추정) 프레임워크에 대한 대안을 제공합니다.
분류를 위한 Bayes 정리
분류는 주어진 입력 데이터 샘플에 레이블을 할당하는 것과 관련된 예측 모델링 문제입니다.
분류 예측 모델링의 문제는 다음과 같이 주어진 데이터 샘플이 주어진 클래스 레이블의 조건부 확률을 계산하는 것으로 구성될 수 있습니다.
- P (클래스 | 데이터) = (P (데이터 | 클래스) * P (클래스)) / P (데이터)
여기서 P(class|data)는 제공된 데이터가 주어진 클래스의 확률입니다.
이 계산은 문제의 각 클래스에 대해 수행될 수 있으며 가장 큰 확률이 할당된 클래스를 선택하여 입력 데이터에 할당할 수 있습니다.
실제로 분류를 위해 전체 Bayes 정리를 계산하는 것은 매우 어렵습니다.
클래스와 데이터에 대한 사전 예측은 데이터 세트가 더 광범위한 문제를 나타내는 적합성인 경우 학습 데이터 세트에서 쉽게 추정할 수 있습니다.
클래스 P(data|class)를 기반으로 한 관측치의 조건부 확률은 예제의 수가 매우 많지 않은 한(예: 가능한 모든 값 조합에 대한 확률 분포를 효과적으로 추정할 수 있을 만큼 충분히 크지 않는 한) 실현 가능하지 않습니다. 이것은 거의 사실이 아니며 도메인을 충분히 커버하지 못할 것입니다.
따라서 Bayes 정리의 직접 적용은 특히 변수 또는 기능 (n)의 수가 증가함에 따라 다루기 어려워집니다.
Naive Bayes 분류기
조건부 확률 분류 모델에 Bayes 정리를 사용하는 솔루션은 계산을 단순화하는 것입니다.
Bayes 정리는 각 입력 변수가 다른 모든 변수에 종속된다고 가정합니다. 이것은 계산의 복잡성의 원인입니다. 이 가정을 제거하고 각 입력 변수를 서로 독립적인 것으로 간주 할 수 있습니다.
이렇게 하면 모델이 종속 조건부 확률 모델에서 독립적인 조건부 확률 모델로 변경되고 계산이 크게 단순화됩니다.
즉, 각 입력 변수에 대해 P(data|class)를 개별적으로 계산하고 결과를 함께 곱합니다.
- P(클래스 | X1, X2, …, Xn) = P(X1|클래스) * P(X2|클래스) * … * P(Xn|클래스) * P(클래스) / P(데이터)
데이터를 관찰할 확률은 다음과 같이 모든 계산에 대해 상수이므로 삭제할 수도 있습니다.
- P(클래스 | X1, X2, …, Xn) = P(X1|클래스) * P(X2|클래스) * … * P(Xn|클래스) * P(클래스)
이러한 Bayes 정리의 단순화는 일반적이며 분류 예측 모델링 문제에 널리 사용되며 일반적으로 Naive Bayes라고 합니다.
“Naive“이라는 단어는 프랑스어이며 일반적으로 단순화를 위해 일반적으로 생략되는 “i” 위에 diaeresis(움라우트)가 있으며 “Bayes”는 Thomas Bayes 목사의 이름을 따서 대문자로 표시됩니다.
Python에서 Naive Bayes를 처음부터 구현하는 방법에 대한 자습서는 다음을 참조하십시오.
Bayes 최적 분류기
Bayes 최적 분류기는 학습 데이터 세트가 지정된 경우 새 예제에 대해 가장 유사한 예측을 수행하는 확률적 모델입니다.
이 모델은 Bayes 최적 학습기, Bayes 분류기, Bayes 최적 결정 경계 또는 Bayes 최적 판별 함수라고도 합니다.
- Bayes 분류자: 새 예제에 대해 가장 가능성이 높은 예측을 수행하는 확률적 모델입니다.
특히 Bayes 최적 분류기는 다음 질문에 답합니다.
학습 데이터가 주어지면 새 인스턴스의 가장 가능성 있는 분류는 무엇입니까?
이것은 가장 가능성있는 가설(모델)을 찾는 MAP 프레임 워크와 다릅니다. 대신, 우리는 특정 예측을 하는 데 관심이 있습니다.
아래 방정식은 주어진 가설 공간 (H)에 주어진 훈련 데이터 (D)가 주어진 새로운 인스턴스 (vi)에 대한 조건부 확률을 계산하는 방법을 보여줍니다.
- P(vj | D) = 합계 {h in H} P(vj | hi) * P(hi | D)
여기서 vj는 분류할 새로운 인스턴스이고, H는 인스턴스를 분류하기 위한 가설의 집합이고, hi는 주어진 가설이고, P(vj| hi)는주어진가설 hi에 대한 사후 확률이고, P(hi | D)는 데이터D가 주어진 가설 hi의 사후 확률입니다.
최대 확률로 결과를 선택하는 것은 Bayes 최적 분류의 예입니다.
이 방정식을 사용하여 예제를 분류하는 모든 모델은 Bayes 최적 분류자이며 다른 모델은 평균적으로 이 기술을 능가할 수 없습니다.
Bayes 분류자가 최적이므로 Bayes 오류는 발생할 수 있는 가능한 최소 오류입니다.
- Bayes 오류: 예측을 수행할 때 발생할 수 있는 가능한 최소 오류입니다.
이것은 이론적인 모델이지만 우리가 추구하고자 하는 이상으로 유지됩니다.
Naive Bayes 분류자는 몇 가지 단순화된 가정을 추가하고 Bayes 최적 분류자를 근사화하려고 시도하는 분류자의 예입니다.
베이지안 최적 분류자에 대한 자세한 내용은 자습서를 참조하세요.
머신러닝에서 Bayes 정리의 더 많은 사용
분류기 모델을 개발하는 것은 머신러닝의 Bayes 정리에서 가장 일반적인 응용 프로그램일 수 있습니다.
그럼에도 불구하고 다른 많은 응용 프로그램이 있습니다. 두 가지 중요한 예는 최적화 및 인과 관계 모델입니다.
베이지안 최적화
전역 최적화는 주어진 목적 함수의 최소 또는 최대 비용을 초래하는 입력값을 찾는 어려운 문제입니다.
일반적으로 목적 함수의 형식은 분석하기가 복잡하고 다루기 어려우며 종종 볼록하지 않고, 비선형이며, 고차원이고, 노이즈가 많고, 계산 비용이 많이 듭니다.
베이지안 최적화는 효율적이고 효과적인 전역 최적화 문제를 검색하도록 지시하는 Bayes 정리를 기반으로 하는 원칙적인 기술을 제공합니다. 대리 함수라고 하는 목적 함수의 확률적 모델을 구축한 다음 실제 목적 함수에 대한 평가를 위해 후보 샘플을 선택하기 전에 획득 함수로 효율적으로 검색합니다.
베이지안 최적화는 응용 머신러닝에서 검증 데이터 세트에서 성능이 좋은 특정 모델의 하이퍼파라미터를 조정하는 데 자주 사용됩니다.
베이지안 최적화를 처음부터 구현하는 방법을 포함하여 베이지안 최적화에 대한 자세한 내용은 자습서를 참조하십시오.
베이지안 신념 네트워크
확률론적 모델은 변수간의 관계를 정의하고 확률을 계산하는 데 사용할 수 있습니다.
완전 조건부 모델은 가능한 모든 경우를 다루기 위해 엄청난 양의 데이터가 필요할 수 있으며 확률은 실제로 계산하기 어려울 수 있습니다. 모든 확률 변수의 조건부 독립성과 같은 가정을 단순화하는 것은 Naive Bayes의 경우와 같이 효과적 일 수 있지만 크게 단순화하는 단계입니다.
대안은 확률 변수와 다른 모든 경우에 조건부 독립성 사이에 알려진 조건부 의존성을 보존하는 모델을 개발하는 것입니다. 베이지안 네트워크는 그래프 모델에서 방향이 지정된 간선을 사용하여 알려진 조건부 종속성을 명시적으로 캡처하는 확률적 그래픽 모델입니다. 누락된 모든 연결은 모델의 조건부 독립성을 정의합니다.
따라서 베이지안 네트워크는 도메인에 대한 확률 모델을 시각화하고, 확률 변수 간의 모든 관계를 검토하고, 사용 가능한 증거가 제공된 시나리오에 대한 인과 확률에 대한 추론에 유용한 도구를 제공합니다.
네트워크는 정의상 정확히 베이지안이 아니지만 확률 변수(노드)에 대한 확률 분포와 확률 변수(간선) 간의 관계가 모두 주관적으로 지정된다는 점을 감안할 때 모델은 복잡한 도메인에 대한 “믿음”을 포착하는 것으로 생각할 수 있습니다.
베이지안 신념 네트워크에 대한 자세한 내용은 다음 자습서를 참조하십시오.
추가 정보
이 섹션에 대해 더 자세히 알아보려는 경우 주제에 대한 더 많은 리소스를 제공합니다.
관련 튜토리얼
- 관절, 한계 및 조건부 확률에 대한 간략한 소개
- 머신러닝의 가설이란 무엇입니까?
- 파이썬에서 처음부터 Naive Bayes 분류자를 개발하는 방법
- 파이썬에서 처음부터 Naive Bayes 분류기
- 파이썬에서 베이지안 최적화를 처음부터 구현하는 방법
- 베이지안 신념 네트워크에 대한 부드러운 소개
책
- 패턴 인식 및 머신러닝, 2006.
- 머신러닝, 1997.
- 패턴 분류, 제 2 판, 2001.
- 머신러닝: 확률론적 관점, 2012.
기사
- 조건부 확률, 위키피디아.
- Bayes의 정리, 위키피디아.
- 최대 사후 추정, 위키피디아.
- False 긍정 및 False 부정, 위키피디아.
- 기준금리 오류, 위키피디아.
- 민감도와 특이성, 위키 백과.
- 혼란 매트릭스에서 혼란 제거, 2016.
요약
이 게시물에서는 조건부 확률을 계산하기 위한 Bayes 정리와 머신러닝에서 사용되는 방법을 알아보았습니다.
특히 다음 내용을 배웠습니다.
- Bayes 정리란 무엇이며 실제 시나리오에서 계산을 수행하는 방법.
- Bayes 정리 계산의 용어가 의미하는 것과 그 이면의 직관.
- Bayes 정리가 분류기, 최적화 및 인과 모델에서 어떻게 사용되는지에 대한 예입니다.