이 책을 공부하기 전, 만약 확률 통계를 배우지 않았다면 먼저 공부를 하고 오시길.
예시로 다항식 곡선 피팅 문제를 들었다.
실수값의 입력 변수 x를 관찰하고 이 값을 바탕으로 실수값의 타깃 변수인 t를 예측하려 한다.
우리 목표는 새로운 입력 변수 에 대한 타깃 변수 를 예측하는 것이다.
곡선을 피팅하는데 있어 다음과 같은 다항식을 활용한다.
식 (1.1)
다항함수 y(x,w)는 x에 대해 비선형이지만 계수 w에 대해서는 선형이다.
표적값들의 값과 함수값 y(x,w)와의 오차를 측정하는 오차함수를 정의한다.
각각의 데이터 포인트 Xn에 대해서 예측치 y(Xn,w)와 표적값 사이의 오차를 제곱하여 합산한다.
이 오차함수를 최소화하는 w는 유일한 를 가진다.
훈련집합과 시험 집합 각각에 대해서 의 잔차를 계산해보자.
이때 평균 제곱근 오차를 사용하는 것이 편리하다.

위 그림에서 확인하듯 삼차 다항식을 사용한 경우 제일 잘 표현한 것을 알 수 있고, M=9 인 경우 훈련데이터에는 모두 적합하지만 오히려 심하게 진동하는 것을 알 수 있다. 이를 과적합이라고 한다.
평균 제곱근 오차를 사용하여 그래프를 그리면 다음과 같다.

차수가 증가함에 따라 오차가 줄어드는 양상이지만 M=9인 경우 오히려 오차가 증가했음을 알 수 있다.
패턴인식 분야에서는 '불확실성'이 존재한다.
노이즈 또는 데이터 집합 수가 제한되어 있다는 한계 때문이다.
확률론은 '불확실성'을 계량화하고 조작하기 위한 토대를 마련한다.
기본적인 곱의 법칙, 합의 법칙, 결합 확률 (joint probability), 주변 확률 (marginal probability), 조건부 확률의 개념은 넘어가도록 하자.
중요한 것은 확률 변수(B)와 확률 변수(r)가 가지는 값을 구별하는 것이다.
우리는 B가 r값을 취할 경우 p(B=r)라고 적는다.
또한 확률 변수 분포를 표현할 때는 p(B), 특정 값에서의 분포를 표현할 때는 p(r)으로 적는다.
조건부 확률 p(Y|X)는 'X가 주어졌을 때, Y의 확률'이라고 읽는다.
연속적인 변수에서의 확률을 다뤄보자.
확률 밀도의 정의가 무엇일까?
만약 실수 변수 x가 구간 안의 값을 가지고 그 변수의 확률이 로 주어진다면 p(x)를 x의 확률 밀도라고 한다.
만약 (a, b)구간 사이의 확률을 나타낸다면
로 나타낼 수 있다. (아이고 수식 작성하는거 너무 힘들다...)
아무튼 a, b가 각각 음의 무한대, 양의 무한대라면 값이 1이된다.
a가 음의 무한대가 되면 누적 분포 함수이다.
x가 이산 변수일 경우는 확률 질량 함수라고 한다.
어떤 함수 f(x)의 평균값은 f(x)의 기대값이라고 한다.
이산 분포의 경우는 1.33 연속 변수의 경우는 1.34로 구할 수 있다.

다변수 함수의 기대값을 구하는 경우에는 어떤 변수에 대해 평균을 내야하는 지 지정하여 계산한다.
위 식은 함수 f(x,y)의 평균값을 x 분포에 대해 구하라는 의미이다. 결과적으로는 에 대한 함수가 나올 것이다.
조건부 기댓값도 생각할 수 있다.
이는 관측값에서 평균을 뺀 값을 제곱하고 이의 기대값을 구하는 것이다.
관측값에서 평균을 뺀값 = 편차
분산 = 편차의 제곱의 합 / 총 변량의 개수 이기 때문이다.
공분산은 x값과 y값이 얼마나 함께 같이 변동하는 가에 대한 지표이다.
x,y가 서로 독립이라면 공분산값은 0이 된다.
이 식을 전개하면
베이지안 확률은 불확실성을 정량화하는데 사용된다.
D 를 관측한 후에 w에 대한 불확실성을 사후 확률 라 하자.
로 나타낼 수 있다.
여기서 값 는 가능도함수라고 불린다. 가능도 함수는 각각의 다른 매개변수 벡터 w에 대해 관측된 데이터 집합이 얼마나
그렇게 나타날 가능성이 있었는지'를 표현한다.
이다.
베이지한 확률은 빈도적 확률 관점, 베이지안 확률 관점에서 중요한 역할을 한다.
빈도적 확률 관점에서 널리 사용되는 추정값 중 하나는 최대가능도이다.
최대 가능도를 사용할 경우 w는 가능도 함수를 최대화하는 값으로 선택된다.
종종 음의 로그 가능도 함숫값을 오차함수라고도 하고 가능도의 최대값을 찾는 것이 오차를 최소화하는 것과 동일하다.
정규 분포라 불리는 가우시안 분포에 대해서도 살펴보자.
단일 실수 변수 x에 대해서 가우시안 분포는 다음과 같이 정의된다.

여기서 는 평균, 는 분산, 은 정밀도라고 한다.
가우시안 분포는 항상 0이상임을 알 수 있다.

그리고 정규화되어 있다는 것 또한 확인할 수 있다.
x의 평균값과 분산은 다음과 같이 계산할 수 있다.

다변량 가우시안 분포에 대해서는 2.3 절을 참고하란다.
관측된 데이터 을 살펴보자.
평균값과 분산을 가지는 가우시안 분포에서 관측값들을 독립적으로 추출한다고 가정하자.
같은 분포에서 독립적으로 추출된 데이터 포인트들을 독립적이고 동일하게 분포(i.i.d) 되었다고 한다. 앞에서 두 독립 사건의 결합 확률은 각 사건의 주변 확률의 곱이다.
즉 데이터 집합은 i.d.d이기 때문에 평균과 분산이 주어졌을 때 조건부 확률을 다음과 같이 적을 수 있다.
이 식은 가우시안 분포의 가능도 함수에 해당한다.

관측된 데이터를 바탕으로 확률 분포의 매개변수를 결정하는 표준적인 방법 중 하나는 가능도 함수를 최대화하는 매개변수를 찾는 것이다.
즉 가능도 함수를 최대화하는 방식으로 우리가 모르는 매개변수 , 를 찾아보자.
로그 함수를 취해서 수학적으로 계산이 편리하게 한다. 왜냐하면 곱해야하는 함수에 로그함수를 취하면 더하기로 바뀌기 때문이다.
그리고 로그를 취해서 각각의 합을 계산하면 작은 확률들을 여러 번 곱했을 때 발생할지도 모르는 언더플로우를 방지할 수 있다.
즉 로그함수를 취한 가능도 함수를 다음과 같이 적는다. (1.54)
그리고 미분을 통해 최대값을 구하여 u에 대한 최대 가능도해() 를 찾을 수 있다. (1.55)

이 공식은 바로 관찰된 값 {}들의 평균인 표본 평균이다.
동일한 방법으로 분산에 대한 최대 가능도 해를 찾을 수 있다.
이는 표본 평균에 대해 계산된 표본 분산이다. (1.56)
그럼 표본 평균의 평균은 무엇일까? 이다.
표본 분산의 평균은 무엇일까? 분산일까?
아니다.
분산은 (n-1)/n 만큼 과소평가하게 된다. (1.58)
그림 1.15를 참고하자.
a, b, c 는 표본 평균과 표본 분산을 각각 알 수 있다.
이 세개의 평균과 분산의 기대값을 구하면 평균은 모분산과 동일함을 알 수 있지만 분산은 모분산에 비해 좁은 종모양이라는 것을 알 수 있다. 즉 표본 평균의 분산이 모분산보다 과소평가됨을 알 수 있다.
분산 추정치는 비편향이다. (1.59)

중요한 핵심은 일단 1.59 의 n값이 무한대로 갈수록 0이 된다는 사실이다. 즉 데이터 포인트의 개수 N이 커질수록 최대 가능도 해에서의 편향치는 줄어든다는 소리이다.
앞 예시에서는 오차 최소화의 측면에서 살펴봤다.
여기서는 확률적 측면에서 살펴보자.
이는 베이지안 해결법을 도출하는데 도움이 된다.
우리는 확률 분포를 이용해서 타깃 변수의 값에 대한 불확실성을 표현할 것이다.
이를 위해서 주어진 x값에 대한 t값이 y(x,w)를 평균으로 가지는 가우시안 분포를 가진다고 가정하자.
여기서 는 분포의 표본의 역수이다.
이것을 그림으로 그려보자.

그림은 x에 대한 t값이 y(x,w)를 평균으로 가지는 가우시안 분포이다.
평균을 중심으로 종모양을 그리는 것을 알 수 있다.
가능도 함수를 구해보자.
다 곱해버리는 것이다.
로그를 취하면

최대 가능도 해 을 구해보자.
제곱합 오차 함수를 유도할 수 있다.
정밀도 매개변수 를 결정하는 데도 최대 가능도 방법을 사용할 수 있다.

매개변수를 구했다면 이를 바탕으로 새로운 변수 x에 대해 예측값을 구할 수 있다.
확률 모델을 사용하고 있기 때문에 예측값은 전과 같은 하나의 점 추정값이 아니고, t에 대한 예측 분포 로 표현된다.
매개 변수들을 맨 처음 식에 대입하자
베이지안 방식에 한발 더 다가가기 위해서는
다항 계수 w에 대한 사전 분포를 도입해야 한다.
다음 형태를 지닌 가우시안 분포를 사용해보자.

여기서 는 정밀도이고 M+1은 M차수 다항식 벡터 w의 원소의 개수이다. 와 같이 모델 매개변수의 분포를 제어하는 변수들을 초매개변수라고 한다.
우리는 이전에 배운 베이지안 정리에 따라 다음 식이 성립함을 알 수 있다.
이는 사후 분포는 사전 분포와 가능도 함수의 곱에 비례함을 의미한다.
즉 우리는 가장 가능성 높은 w를 찾아야 하고 이를 최대 사후 분포 테크닉이라 한다.
식 1.62와 1.65를 1.66에 대입하게 되면

이 식값의 최솟값을 찾는 것이 사후 확률의 최대값을 찾는 것이라 할 수 있고, 이는 정규화된 제곱합 오차함수를 최소화하는 것과 동일함을 확인할 수 있다.
너무 자세히 적게 되니까 이제부터 중요하다고 생각하는 부분만 적어야 겠다.
아직까지 우리는 w에 대한 예측 분포를 모른다. 점 추정을 하고 있기 때문이다.
이를 위해 모든 w값에 대해 적분을 시행한다.
예측 분포는 어떻게 구할까?
식(1.68)
여기서 는 매개변수들에 대한 사후 분포이다.
적분을 시행하면 예측분포는 가우시안 분포로 주어진다.
평균과 분산, 행렬 S는 다음처럼 주어진다.

중요한 것은 그림처럼 예측 분포 내에 t값이 대체적으로 잘 맞는다는 것이다.

어떤 모델을 선택하는 가에 따라 모델의 복잡도가 결정된다.
복잡한 모델을 구성하는 요소들은 다음과 같다.
훈련집합에서의 좋은 성능이 반드시 좋은 예측 성능을 보장하지 않는다.
이를 해결하기 위해 데이터를 나눠서 일부는 다양한 모델과 모델의 매개변수를 학습하고 나머지 데이터에는 모델과 매개변수를 비교/선택 하는 것이다.
이를 검증 집합이라고 한다.
하지만 검증 집합에서도 반복적으로 모델 디자인을 하면 또한 과적합 문제가 발생하기 때문에 시험집합을 통해 최종 성능을 판단할 수 있다.
하지만 데이터의 크기가 제한적이기 때문에 가능한 많은 데이터를 활용하는 것이 좋다.
교차 검증법을 통해 전체 데이터(S) 중 (S-1)/S 비율만큼 훈련에 사용하고, 모든 데이터를 다 활용하여 성능을 추정한다.

빨간색 칸은 남겨두는 집합으로, 빨간색 칸을 제외한 하얀칸으로 모델을 학습시키고 빨간칸으로 성능을 평가한다. 총 4번을 시행하여 평균을 내어 성능 점수를 도출한다.
이러한 교차 검증법의 단점은 s의 크기가 거질 수록 모델 시행 횟수도 증가하기 때문에 계산이 복잡할 경우 시간과 비용이 커진다.
고차원 공간을 다루는 것은 꽤나 중요하다.
우리는 그림 1.19의 x점을 빨간색이라고 해야할 까? 아니면 빨간색이라 해야할까?
이에 대한 클래스를 어떻게 나누면 좋을까?

일단 칸을 나누고 제일 많은 점을 해당 시험 포인트의 클래스로 지정할 수 있다.

그런데 이는 2차원일 경우에만 가능하다.
3차원도 가능하지만 우리는 4,5,,, 등등의 고차원인 경우에는 위 접근법을 사용할 수 없음을 알 수 있다.
M차 다항식의 경우 계수의 숫자는 에 비례하여 증가한다.
구의 부피를 예시로 들어 차원이 커질 수록 구의 부피의 대부분은 얇은 껍질에 존재함을 알 수 있다.
필자는 고차원 입력값에 대해 사용할 수 있는 패턴인식 테크닉을 찾아내는 것이 불가능하다고 말하지 않는다.
불확실성이 존재하는 상황에서 의사 결정을 내려야 하는 경우가 많기에 이때 결정 이론을 함께 사용하면 최적의 의사 결정을 내릴 수 있게 된다.
결합 확률 분포 p(x,t) 는 전체 불확실성을 요약해서 나타내 줄 것이며 주어진 훈련 집합 데이터에서 p(x,t)를 찾아내는 것이 추론이다.
결합 확률 분포는 가장 완전하고 확률적인 설명을 알려주지만 최종적으로 결정을 해야하며 해당 결정이 최적이길 바라야 한다.
예를 들어 환자의 엑스레이 이미지를 바탕으로 환자가 암에 걸렸는지 안 걸렸는지 판단하는 진단 제가 있다 하자.
입력 벡터 x : 이미지 픽셀 강도 집합
t: 환자가 암에 걸렸는지 아닌지 나타내는 출력 변수
클래스 C1: 암이 있다고 판단.
클래스 C2: 암이 없다고 판단.
t=0 -> C1
t=1 -> C2
베이지안 정리를 통해
로 나타낸다.
예를들어 p(C1)은 엑스레이 이미지를 확인하기 전에 알 수 있는 환자가 암에 걸렸을 확률.
p(C1|x)는 엑스레이에 포함된 정보를 베이지안 정리를 이용하여 포함시킨 후에 알 수 있는 환자가 암에 걸렸을 확률.
결정이 최적이길 바랄 때의 의사 결정 기준에 대해 알아보자.
우리 목표가 단순히 잘못된 분류 결과의 숫자를 줄이는 것이라 하자.
각각의 x를 가능한 클래스들 중 하나에 분류해야한다.
입력공간을 결정 구역으로 불리는 들로 나누게 된다.
그리고 구역들 사이의 경계는 결정 경계 or 결정 표면이라 한다.
우리는 잘못된 분류를 '실수'라 할 것이다.
여기서 실수인 경우는 C1에 속한 변수 x가 C2에 포함되는 경우나 그 반대의 경우에 '실수'가 나타난다.

실수를 최소화하기 위해서는
각각의 x를 사후확률 가 최대가 되는 클래스에 포함시키면 된다.

그림 1.24 를 보면
빨강 + 초록 = C2에 속한 포인트들이 R1으로 잘못 분류된 경우
파랑 = C1에 속한 포인트들이 R2로 잘못 분류된 경우
이때 가 가 되면 빨강 오류 부분이 사라지게 된다.
우리가 암에 걸리지 않은 환자를 암에 걸렸다고 판단(A) 하는 경우과 암에 걸린 환자를 암에 걸리지 않았다고 판단(B) 하는 경우를 비교해보자.
B가 훨씬 더 심각한 실수임을 알 수 있다.
즉 같은 실수라도 B와 같은 실수를 줄이는 것이 중요하다.
즉 비용함수 또는 손실함수 등을 도입함으로 이러한 문제를 공식화할 수 있고, 이러한 함수를 최소화하는 것이 중요하다.
A의 경우 손실을 1, B의 경우 손실을 1000으로 나타내면 다음과 같이 행렬을 나타낼 수 있다.

손실 함수를 최소화하는 해가 최적해이다.
손실 함수 값은 알려지지 않은 실제 클래스 값을 알아야 계산이 가능하다.
우리는 결합 확률 분포를 통해 불확실성을 표현할 수 있고, 평균 손실을 최소화하는 것을 목표로 둘 수 있다.

이는 결국 이렇게 나타난다.

가끔 사후 확률이 가장 큰 값이 1보다 매우 작을 수 있다.
이 의미는 해당 구역이 어떤 클래스에 속할지 정하는 우리의 확신이 적다는 의미이다.
더 쉽게 말하면 이걸 어떤 클래스로 정해야할지 애매~~~ 하다는 의미이다.
즉 결정하기 힘들 때는 그냥 결정을 하지 말자.
예를 들어 기계가 쉽게 결정할 수 있는 부분은 기계한테 맡기고 기계가 판단하기 힘든 애매한 것들은 직접 사람이 판단하면 된다.
분류 문제를 두 단계로 나누면
로 나눌 수 있다.
결정 단계에서는 3가지 다른 방법이 있다.
각각의 방법에는 장단점이 있지만 사후 확률을 구하는 것이 중요한 이유는 다음과 같다.
지금까지는 분류 문제에 대해 다뤘다면 이제부터는 회귀 문제를 다뤄보자.
회귀 문제 결정 단계에서는 각각의 x에 대해 t의 추정값 y(x)를 선택해야한다.
손실을 라 하자.
평균 기대 손실은 다음과 같이 주어진다.
일반적으로
으로 주어지는 제곱 손실을 사용한다.
이 경우 기대 손실은 다음과 같다.
변분법을 하고 확률의 합과 곱의 법칙을 적용하면 다음을 얻을 수 있다.

최적의 해는 조건부 평균 이다.
책에서 결과적으로 손실함수를 얻게 된다.

첫째항의 의미
두번째항의 의미
그러면 정보량은 어떻게 수식으로 나타낼 수 있을까?
일단 x가 값을 학습하는데 있어 정보의 양은 '놀라움의 정도'이다.
가능성이 높은 사건이 일어났다는 사실보다 일어나기 매우 힘든 사건이 발생했을 때 더 많은 정보를 전달받게 된다.
지금부터 p(x)에 대해 단조 함수인 정보량을 표현하는 함수 h(x)에 대해 알아보자.
서로 연관 되어 있지 않은 사건 x,y를 고려하면 함께 일어났을 때 얻는 정보량은 각각이 따로 일어났을 때 얻는 정보량의 합이다.
h(x,y) = h(x) + h(y)
p(x,y) = p(x)p(y)
가 성립한다.
이 관계에서 h는 p의 로그 관계에 성립함을 알 수 있다.
음의 부호는 정보량은 음수가 될 수 없기 때문에 붙여졌다. (로그는 1이하에서 음수이기 때문)

그래프 그림은 위처럼 그려지고 x의 확률이 낮을 수록 얻는 정보량이 큰 것을 확인할 수 있다.
전송에 필요한 정보량의 평균치는 기대값을 구함으로 알 수 있다.
위 식이 확률 변수 x의 엔트로피이다.
이 책은 비트 전송을 예시로 엔트로피를 설명한다.
3비트의 길이의 메시지는 여덟 개의 값을 가질 수 있고 각각의 확률이 동일할 때보다 비균일할 때 엔트로피가 낮다.
N개의 동일한 물체가 몇 개의 통안에 담겨 있다고 가정하자.
이때 i번째 통안에 개의 물체가 담기도록 한다.
N개의 물체를 통에 나누어 담는 데는 총 N!개의 방법이 있다.
또한 i번째 통안에 물체를 정렬하는 데에는 n!이다.
즉 가짓수는 다음과 같다.
위 식을 다중도라고 한다.
여기서부터 엔트로피를 자연 로그를 사용하여 정의한다.
다중도에 로그취하고 상수(N)으로 나누자.

그리고 스털링 근사식을 적용하자.

미시상태와 거시상태를 설명하는 그림을 확인하자.

각각의 통을 확률 변수 X의 상태 xi라고 해석하면
로 확률 변수 X의 엔트로피를 구할 수 있다.
엔트로피는 균일 분포에서 가장 크다.

이산 분포와 연속 분포의 엔트로피를 비교해보자.
(계속해서 공부한 내용을 붙이는 형식으로 블로그를 쓰는데 책에 없는 추가적인 내용을 덧붙이기 위함이다ㅠ. 글씨가 개발새발인건 인정하지만, 놀랍게도 최선을 다해 또박또박 쓰고 있다.)


그럼 연속 변수의 엔트로피에 대해 알아보자.
사실 연속 변수인 경우는 이산의 간격을 0으로 최대한 가까이 보내는 것이다.

이산 변수의 경우 확률 분포가 가장 고르게 나타날 때 엔트로피의 값이 가장 최대가 된다.
연속 변수의 경우는 어떨까?
결과적으로 모든 과정을 생략하면, 미분 엔트로피의 값을 최대화하는 분포는 가우시안 분포이다.
가우시안 분포에 대해 엔트로피를 구해보자.
미분 엔트로피는 이산 엔트로피와 다르게 음수의 값을 가진다.

조건부 엔트로피에 대해도 간략하게 보자.

그럼 엔트로피를 포함한 정보이론을 어떻게 패턴인식에 적용하는가?
일단 우리는 알려지지 않은 분포 p(x)를 고려하고 이를 피팅하기 위해 모델을 만든 후 분포 q(x)를 구했다고 하자.
q(x)를 사용해 x의 값을 수신자에게 전달했다고 하면 p가 아닌 q를 사용했기 때문에 우리는 추가 정보가 필요하다.

추가로 필요한 양을 KL이라 하자 이를 p와 q간의 상대 엔트로피 또는 쿨백 라이블러 발산이라 한다.
쿨백 라이플러 발산이 0일 때는 p(x) = q(x) 일때를 증명하자. (사실 직관적으로 생각할 때는 굳이 증명해야 하나 싶다. 너무 당연하기 때문)
아무튼 우선 볼록함수를 정의하는데 다음과 같이 정의할 수 있다.

사실 그 뒤로 수학적 귀납법 등등으로 여러 정의를 하지만 생략하고
결과적으로 q(x) = p(x)일 때 등식이 성립하고 p(x)와 q(x)가 얼마나 다른지의 척도로 쿨백 라이블러 발산을 사용한다는 것이다.
실제분포(p)에 대해 알고있을 때 가장 효율적인 압축이 가능하고 반대로 다른 분포를 바탕으로 모델링이 이루어 졌을 때 압축이 비교적 덜 효율적이다.
뇌피셜로 정리해서 말하자면 우리는 알려지지 않은 분포 p로 데이터가 만들어지는 상황이고 분포 q를 통해 p를 추정하고자 시도한다.
이때 쿨백 라이블러 발산을 최소화하는 방향으로 계산해야한다. -> 이는 가능도 함수를 최대화 하는 것과 동일하다.
두 변수 x,y의 결합 분포 p(x,y)에 대해 살펴보면
변수가 얼마나 독립적인지 쿨백 라이블러 발산을 이용해 알아볼 수 있다.

식 1.120 이를 상호 정보량이라 하며 서로 독립적일 때만 0이 됨을 알 수 있다.
또한 식 1.121의 관계를 가지게 되는데 y에 대해 알고 있을 때 x값에 대한 불확실성을 표현한 것이 상호 정보량이다.(반대도 가능)
덧붙이자면 y를 관찰한 후의 사후 분포를 통해 x에 대한 불확실성이 줄어드는 것이다.