3. 결정이론
확률론과 함께 결정이론을 사용하면 최적의 결정을 내릴 수 있다.
확률론으로 여러 확률들이 계산되었을 때, 어떻게 하면 최적의 결정을 내릴 수 있을까?
예시를 통해 결정론을 알아보자.
3.1 오분류 최소화
환자의 엑스레이 이미지 \(x\)를 암(\(C_1\))인지 아닌지(\(C_2\)) 두 클래스로 분류하는 상황을 가정한다.
이 때, 잘못된 분류를 줄이는게 목표라고 해보자. 그렇다면, 실수가 발생할 확률은 다음과 같다.
$$p_{error}=p(x\in R_1 , C_2)+p(x\in R_2, C_2) $$
$$ =\int_{R_1}^{}p(x,C_2)dx+\int_{R_2}^{}p(x,C_1)dx $$
여기서, \(R_1, R_2\)는 클래스의 결정구역이다.
위 식을 최소화시키려면, 두 적분함수 중 더 작은 값을 가진 클래스에 포함시키면 된다.
만약 \(p(x, C_1)>p(x, C_2) \) 라면, \(x\)를 \(C_1\)에 넣어야 한다.
3.2 기대손실 최소화
의학적 진단문제를 생각해보자. 암에 걸리지 않은 사람을 걸렸다고 판단하는 것보다,
암에 걸린 사람을 걸리지 않았다고 판단하는 것이 더 심각한 문제이다.
그렇다면, 암에 걸린 사람을 걸리지 않았다고 판단하는 것에 많은 가중치를 주면 된다.
이렇게 가중치를 준 후, 평균 손실을 최소화하는 방향을 생각해보자.
즉, 손실함수의 기댓값을 수식으로 표현하면,
$$ E[L]=\sum_{i}^{}\sum_{j}^{}\int_{R_j}^{}L_{ij}p(\textbf{x}, C_i)d\textbf{x} $$
이 때, 각각의 \(\textbf{x}\) 값은 결정구역 \(R_j\)중 하나에 독립적으로 포함되게 된다.
즉, 우리의 목표는 구역 (\R_j\)들을 잘 선택하여 기대손실을 최소화하는 것이다.
곱의 법칙에 의해, \(p(\textbf{x})\)를 제거하고 식을 정리하면, 각각의 \(\textbf{x}\)를
$$ \sum_{i}^{}L_{ij}p(C_i|\textbf{x}) $$
를 최소화하는 클래스 \(j\)에 배치하는 것이 된다.
3.3 거부 옵션
어떤 구역에서는 사후확률 \(p(C_k|x)\)중 가장 큰 것이 1보다 매우 작은 경우가 생긴다.
즉, 확률들이 모두 비슷한 값을 지닌 채로 엄청 작게 분포하는 경우 분류오차가 커질 수 있다.
그런 경우엔 임계치를 설정하여 결과를 거부하는 방식을 취할 수 있다. 예를 들어
의학 진단 시스템에선 확실한 사진은 자동화 시스템을 사용하고 다소 불확실한 사진만
의사가 직접 확인하는 게 더 정확할 수도 있다. 그래서 임계값을 적절히 설정하여,
가장 큰 확률 값이 \(\epsilon \) 보다 작다면, 입력값 \(x\) 를 거부할 수 있다.
3.4 결정
결정 문제를 푸는 2가지 방법을 소개한다.
[해결책 1]
각 클래스 \(C_k\)에 대해 \(p(x|C_k)\)를 구하고, \(p(C_k)\)도 따로 구한다.
그 후, 베이즈 정리로 각 클래스별 사후확률 \(p(C_k|x)\)를 구한다.
또한, 베이즈 정리의 분모 \(p(x)\)는 \(p(x)=\sum_{k}^{}p(x|C_k)p(C_k)\) 로 구해준다.
[해결책1의 장단점]
계산량이 엄청 많다. 하지만 많은 확률을 계산해놓았기 때문에 뽑을 수 있는 정보도 다양하다.
결합 분포 \(p(x, C_k)\)를 모델링하여 생성모델을 만들 수 있다. (베이지안 네트워크에서 공부함)
또한 \(p(x)\)까지 알 수 있으므로, 예측확률이 낮은 이상점 검출이 가능하다.
[해결책 2]
사후확률 \(p(C_k|x)\)를 직접 구하여 모델링한다. 이걸 판별모델이라 한다.
[해결책2의 장단점]
분류만이 목적인 경우 해결책1보다 훨씬 쉽다. 해결책 1,2는 서로 장단점이 상충되므로,
둘 다 잘 쓰인다.
4. 정보이론
변수 \(x\)의 정보량은 뭘 의미할까? 정보의 양은 놀라움의 정도로 볼 수 있다.
즉, 일어날 가능성이 높은 사건보다는 일어나기 어려운 사건이 일어났을 때 더 많은 정보를 얻게 된다.
따라서 정보량은 확률분포에 종속된다.
연관되지 않은 사건 \(x, y\)를 고려하자. 함께 일어났을 때 정보량은 두 정보량의 합이 된다.
즉, \(h(x, y)=h(x)+h(y)\)이다. 두 연관되지 않은 사건은 확률적으로 독립이므로,
\(p(x, y)=p(x)p(y)\)이다. 따라서 \(h(x)\)는 \(p(x)\)의 로그에 해당한다.
$$ h(x)=-\textup{log}_2p(x)$$
로 정의한다.
정보의 평균치는 기댓값이므로,
$$ \mathbf{H}(x)= -\sum_{x}^{}p(x)\textup{log}_2p(x)$$
이다. 이 값을 확률변수의 엔트로피라고 한다.
연속변수에 대한 미분 엔트로피는 다음과 같이 주어진다.
$$ \mathbf{H}(x)=-\int p(x)\textup{ln}p(x)dx $$
이제 결합분포 \(p(x, y)\)를 고려해보자. 만약 \(x\)값이 이미 알려져 있다면,
그에 해당하는 \(y\)값을 알기 위해 필요한 정보량은 \(-\textup{ln} p(y|x)\) 가 된다.
따라서 \(y\)를 특정하기 위해 추가로 필요한 정보량의 평균값은 다음과 같다.
$$ \mathbf{H}[y|x]=-\iint p(x, y)\textup{ln} p(y|x)dydx $$
엔트로피에 대한 간단한 정리를 유도해보자.
$$ \mathbf{H}[x, y]=-\iint_{}^{} p(x, y)\textup{ln} p(x, y)dydx $$
$$ = -\iint_{}^{} p(x, y)\textup{ln} (p(y|x)p(x))dydx $$
$$ =-\iint_{}^{} p(x, y)\textup{ln} p(y|x)dydx-\iint_{}^{} p(x, y)\textup{ln} p(x)dydx $$
$$ =-\iint_{}^{} p(x, y)\textup{ln} p(y|x)dydx-\int_{}^{} p(x)\textup{ln} p(x)dx $$
$$= \textbf{H}[y|x]+\textbf{H}[x] $$
가 성립한다. 따라서 \(\mathbf{H}[x, y]=\textbf{H}[y|x]+\textbf{H}[x] \) 이다.
마지막으로 상대적 엔트로피를 정의한다.
알려지지 않은 분포 \(p(x)\)를 고려해보자. 이 분포를 피팅하기 위해 모델을 만들어
분포 \(q(x)\)를 구했다고 하자. 그럼 추가정보량은 다음과 같이 주어진다.
$$ KL(p||q)=-\int p(x)\textup{ln}q(x)dx-(-\int p(x)\textup{ln}p(x)dx) $$
$$ = -\int p(x)\textup{ln}\frac{q(x)}{p(x)}dx$$
두 변수 \(x, y\)에 대해 두 변수가 얼마나 서로 독립적인지 알아보기 위해선
$$\textbf{I}[x, y]=KL(p(x,y)||p(x)p(y))$$
$$=-\iint_{}^{}p(x,y)\textup{ln}\frac{p(x)p(y)}{p(x, y)}dxdy$$
를 계산해주면 된다.
'CS > 머신러닝' 카테고리의 다른 글
[PRML] 기초이론정리1(확률론) (0) | 2023.07.02 |
---|---|
머신러닝 이상치 (outlier) 제거하기 (0) | 2023.02.18 |
XGBoost, LightGBM 사용과 하이퍼파라미터 (0) | 2023.02.11 |
머신러닝 자주 쓰이는 함수 정리 (1) | 2023.02.05 |
Feature Engineering 정리 1 (1) | 2023.01.27 |
댓글