반응형

정규분포의 확률밀도함수(Probability Density Function, PDF) 증명

 

0. 서론

확률밀도함수(PDF), 그 중에서도 정규분포함수가 왜 너무나도 당연하게 유도되는지를 증명해보려고 합니다.

신기하게도 하나하나 따라가다보면, 우리가 아는 그 유명한 종 모양 그래프가 나온답니다.

 

1. 정규분포의 함수 모양은 어떻게 생겼나?

아시는 분들은 대충 종 모양이라고 알고 계시겠고, 더욱 자세히 아시는 분들은 적어도 이 함수가 e의 지수함수꼴이라는 것은 알고계실겁니다.

그러나 그게 왜 그렇게 나오는지는 모르시는 경우가 많을 것이라 생각됩니다. 그럼 정말 '무지'에서 시작해서 이 그래프를 찾아가보도록 하겠습니다.

 

2. 조건들을 확인하자

우리가 아는 정규분포의 pdf의 조건들은 다음과 같습니다.

  1. $ \int_{-\infty}^\infty f(x) dx = 1 $ : 함수의 전체 넓이는 1(=전체 확률은 1)
  2. $ \int_{-\infty}^\infty x \cdot f(x) dx = \mu $ : 확률변수 x의 기댓값은 평균($ \mu $)
  3. $ \int_{-\infty}^\infty (x-\mu)^2 \cdot f(x) dx = \sigma^2 $ : 확률변수 x의 분산은 표준편차($ \sigma $)의 제곱
  4. $ \mu $를 기준으로 좌우 대칭
  5. 최대한 자연적인 분포(분포가 치우침이 없고 편향되지 않음)

이 조건들을 가지고 바로 함수의 모양을 찾아볼까요?

 

3. 최대한 자연적이다?

최대한 자연스러운 분포란 무엇일까요?

예를 들어, 동전을 던진다고 가정해봅시다.

가장 자연스러운 상황은 앞면이 나올 확률이 0.5, 뒷면도 0.5인 경우입니다.
왜냐하면 결과를 전혀 예측할 수 없기 때문이죠. (어느 쪽이 나올지 도무지 알 수 없음)

반면, 만약 앞면이 나올 확률이 0.99, 뒷면은 0.01이라면 어떨까요?
이건 거의 항상 앞면이 나오는 인위적인 상황으로, 결과를 예측하기 매우 쉽습니다.
더 이상 ‘무작위’라기보다는 ‘조작된’ 느낌이 들죠.

이처럼 우리가 말하는 ‘자연스러운 분포’
결과를 예측하기 가장 어려운 상태,
불확실성이 최대인 상태라고 할 수 있습니다.

그런데 생각해봅시다.

앞면이 나왔을 때 더 놀라운 경우는 어느 쪽일까요?

  • 확률이 0.5인 공정한 동전?
  • 아니면 0.99로 앞면이 나오는 조작된 동전?

당연히 전자입니다.

공정한 동전에서는 앞면과 뒷면이 동일한 가능성을 가지기 때문에,
결과가 나왔을 때 우리는 순간적으로 “아! 앞면이 나왔네!” 하고 반응하게 되죠.
반대로 조작된 동전에서는 앞면이 나와도 별로 새로울 것이 없습니다.
애초에 그럴 거라 거의 확신하고 있었으니까요.

이런 “놀라움의 크기”를 다른 말로 표현하면,
우리가 그 순간 “새롭게 알게 된 정보의 양”,
정보량이라고 할 수 있습니다.

정리해보면 이렇게 연결됩니다:

불확실성이 크다 = 예측이 어렵다 = 놀라움이 크다 = 정보량이 크다

그리고 정보이론에서는 이것을 '엔트로피(entropy)'라고 부릅니다. 정보량이 크면 엔트로피가 큽니다.

[엔트로피의 원래 의미에서도 무질서도가 증가하는게 엔트로피가 크다고 하잖아요? 무질서할수록 우리가 알아야할 정보량은 커집니다.]

 

자, 그럼 정리되었습니다. 정규분포의 pdf는 엔트로피가 최대가 되어야 합니다.

 

 

4. 엔트로피는 어떻게 정의되는가

엔트로피는 샤논 엔트로피 공식(Shannon entropy formula)으로 구할 수 있습니다.

정보이론에서 샤논이라는 분이 엔트로피(불확실성)을 정량적으로 측정하기 위해 제안한 공식이죠.

수식을 보면

$ H(X) = - \sum p_i \log_b p_i $

이와 같습니다.

여기서 b가 2이면 bit로 나오고, e이면 nat, 10이면 hartley라고 하는데, 10은 거의 안쓰니까 크게 신경 안쓰셔도 됩니다.

p는 확률이죠.

이 수식은 정보이론에서 파생되었기 때문에 bit로 계산되는 이산적 공식이지만, 이 개념을 이용해서 연속적으로도 활용할 수 있습니다.

또한 보통 연속적으로 사용할때는 b가 e인 nat(natural unit of information) 단위로 쓰이지만, 이 단위가 크게 중요한 부분은 아닙니다.

중요한건 이 공식으로 연속함수의 불확실성을 나타낼 것이라는 점입니다.

$ H[f] = - \int f(x) \ln f(x) dx $

이제 이 공식에서 f(x)가 가장 불확실함을 나타내는 함수를 찾으면 됩니다. 그렇다면 H[f] 즉, 함수 f의 엔트로피가 최대가 되면 되겠죠?

 

 

5. 값이 최대가 아니라, 함수가 최대라구요?

여기서 값이 최대인 것을 찾는 방법이 미분법이라고 한다면, 함수가 최대인 것을 찾는 방법은 변분법이라고 불립니다.

그러면 바로 H[f]를 바로 변분법을 쓰면 될까요?

아니겠죠..? 위에서 조건들이 엄청 많았는데 그것들을 무시하고 찾으면 안되는 거잖아요?

그렇다면 위의 조건들을 어떻게 반영할 것이냐.. 하면 여기서 라그랑주 승수법이라는것이 나옵니다.

어떤 함수에 대해서 각 조건들에 라그랑주 승수를 곱해서 원 함수에서 더하거나 빼서 그 함수를 조건짓는 겁니다.

그렇게 해서 중간에 나오는 식을 '라그랑지안'이라고 부릅니다.

그렇다면 H[f]에서 각 조건들을 빼주면 되겠죠?

$ \mathcal{L} = - \int f(x) \ln f(x) dx - \lambda_0 ( \int f(x) dx -1 ) - \lambda_1 ( \int x \cdot f(x) dx - \mu ) - \lambda_2 ( \int (x-\mu)^2 \cdot f(x) dx - \sigma^2 ) $

이렇게 정리될겁니다.

그리고 여기에서 변분법을 적용하여(함수로 미분하는 겁니다) 이 값이 0인 점을 찾으면 미분처럼 극값을 주는 함수를 찾을 수 있습니다.

$ \frac{\delta \mathcal{L}}{\delta f(x)} = - (1 + \ln f(x)) - \lambda_0 - \lambda_1 \cdot x - \lambda_2 \cdot (x-\mu)^2 = 0 $

으로 나올테고, 이를 정리하면

$ \ln f(x) = -1 - \lambda_0 - \lambda_1 \cdot x - \lambda_2 \cdot (x-\mu)^2 $

이 되고, 이를 다시 f(x)로 표현하면

$ f(x) = e^{-1 - \lambda_0 - \lambda_1 \cdot x - \lambda_2 \cdot (x-\mu)^2} $

$ f(x) = Ae^{- \lambda_1 \cdot x - \lambda_2 \cdot (x-\mu)^2} $

이렇게 정리할 수 있습니다.

그리고 여기서 '함수는 평균을 기준으로 좌우 대칭이다'라는 조건에 의해 $ \lambda_1 $은 0이 되어야만 합니다. x가 살아있으면 이 함수는 좌우 대칭이 깨지기 때문이죠. 따라서 다시 써보면

$ f(x) = Ae^{- \lambda_2 \cdot (x-\mu)^2} $

이렇게 정리가 됩니다.

그리고 이것을 통해서 정말 신기하게도, 이 함수의 '개형'을 알게 되었습니다.

그러면 이제 $ \lambda_2 $와 A만 알면 완벽한 정규분포식을 알 수 있겠군요!?

 

 

6. $ \lambda_2 $와 A 찾으러 떠나세~

여기서 다시한번 정리해보죠. 정규분포함수의 pdf는 $ f(x) = Ae^{- \lambda_2 \cdot (x-\mu)^2} $입니다.

그렇다면,

조건1:

조건 $ \int_{-\infty}^\infty f(x) dx = 1 $에서, f(x)를 대입하면

$ \int_{-\infty}^\infty Ae^{- \lambda_2 \cdot (x-\mu)^2} dx =1  $

이렇게 정리가되고, 이것을 풀면 $ \lambda_2 $와 A를 구할 수 있겠네요.

일단, A는 상수계수이므로 적분기호 밖으로 뺄 수 있을테니, $ \lambda_2 $부터 구해보도록하죠.

$ A \int_{-\infty}^\infty e^{- \lambda_2 \cdot (x-\mu)^2} dx = 1 $

그러나 여기서 안타까운 상황에 직면합니다.

$ e^{x^2} $꼴의 적분은 자명한 원시함수가 없음이 밝혀져있죠.(리우빌의 정리(Liouville’s theorem on integration in finite terms)에 의해 증명됩니다.)

그러면 풀지 못하냐.. 하면 우리 엄청나신 가우스님께서 이걸 약간의 트릭으로 아주 멋지게 풀어내십니다.

일단 $ x-\mu $를 $ u $로 치환해줍니다.

$ \int _{-\infty}^\infty e^{-\lambda_2 u^2} du $

여기서 해를 $ I $라고 하면 식은 다시

$ I = \int _{-\infty}^\infty e^{-\lambda_2 u^2} du $

이렇게 쓸 수 있습니다.

그리고 여기서 양변을 제곱해줍니다.

적분 변수를 구분해주기위해 다른 문자인 x, y를 씁니다. 여기서 x는 위에서의 x와 상관이 없습니다.(잠깐 쓰고 사라질 친구들이라 그냥 x쓰겠습니다)

$ I^2 = \left( \int _{-\infty}^\infty e^{-\lambda_2 x^2} dx \right)\left( \int _{-\infty}^\infty e^{-\lambda_2 y^2} dy \right) $

적분을 합치고, 수식을 정리하면

$ I^2 = \iint _{\mathbb{R^2}} e^{-\lambda_2 (x^2+y^2)} dx dy $

여기서 $ \mathbb{R^2} $는 '실수*실수 모든 영역에서'라는 뜻으로 $ \int _{-\infty}^\infty\int _{-\infty}^\infty = \iint_{\mathbb{R^2}} $입니다.

여기서 $ x^2+y^2 = r^2 $이라는, 원의 방정식이자 극좌표 표기 형식으로 바꿔보면,

$ dx dy $의 경우 미소 면적을 뜻하는 것인데, 극좌표 형식에서는 미소한 $ \theta $에 대해 부채꼴의 호의 길이인 $ rd\theta $와 $ dr$의 곱으로 표현할 수 있으므로 둘이 치환되며,

구간의 경우 $ r $이 0부터 무한대까지, 그리고 $ \theta $가 0에서 $2\pi$까지면 실수영역에서 $ \mathbb{R^2} $를 커버하므로 이와같이 치환하면 수식은

$ I^2 = \int_{0}^{2\pi}\int _{0}^\infty e^{-\lambda_2 r^2} rdrd\theta $

이와같이 바뀝니다.

여기서 안쪽 적분인

$\int _{0}^\infty e^{-\lambda_2 r^2} rdr$

부터 적분하면, $ \lambda_2 r^2 = v $,  $ 2\lambda_2 rdr = dv \Leftrightarrow rdr = \frac{dv}{2\lambda_2} $로 치환하면

$\frac{1}{2\lambda_2}\int_0^\infty e^{-v} dv $

이렇게 변형이 되고, $ \int_0^\infty e^{-v} dv = 1 $이므로

안쪽적분은 $\frac{1}{2\lambda_2}$가 나옵니다.

이제 바깥쪽 적분으로 들어가면

$ \frac{1}{2\lambda_2} \int_0^{2\pi}d\theta $이므로

$ I^2 = \frac{2\pi}{2\lambda_2} $

$ I = \sqrt{\frac{\pi}{\lambda_2}} $

가 됩니다.

$ A \int_{-\infty}^\infty e^{- \lambda_2 \cdot (x-\mu)^2} dx = 1 $

여기에서 적분부분이 $ I $이므로, $ A\sqrt{\frac{\pi}{\lambda_2}} = 1 $

$ A = \sqrt{\frac{\lambda_2}{\pi}} $

 

조건2:

여기서 저희는 분산조건도 만족시켜야 합니다.

$ \int_{-\infty}^\infty (x-\mu)^2 \cdot f(x) dx = \sigma^2 $

f(x)에 $ Ae^{- \lambda_2 \cdot (x-\mu)^2} $대입하고, 마찬가지로 $ x-\mu $를 $u$로 치환하면

$ \int_{-\infty}^\infty u^2 \cdot Ae^{- \lambda_2 \cdot u^2} du = \sigma^2 $

여기서 A를 적분 밖으로 빼면

$ A \int_{-\infty}^\infty u^2 \cdot e^{- \lambda_2 \cdot u^2} du = \sigma^2 $

요런식이 나오는데, 여기서 부분적분해야하나?라는 생각이 들수도 있지만, 아주 멋있는 해법이 있습니다.

아까

$ I = \int _{-\infty}^\infty e^{-\lambda_2 u^2} du = \sqrt{\frac{\pi}{\lambda_2}} $

였죠?

이걸 바로 $ \lambda_2 $로 미분해줍니다.

$ \frac{dI}{d\lambda_2} = \frac{d}{d\lambda_2}\int _{-\infty}^\infty e^{-\lambda_2 u^2} du = \int _{-\infty}^\infty \frac{d}{d\lambda_2}e^{-\lambda_2 u^2} du = \int_{-\infty}^\infty (-u^2) \cdot e^{- \lambda_2 \cdot u^2} du $

따라서

$ \int_{-\infty}^\infty u^2 \cdot e^{- \lambda_2 \cdot u^2} du = -\frac{d}{d\lambda_2}\sqrt{\frac{\pi}{\lambda_2}} $

$ = -\sqrt{\pi} \frac{d}{d\lambda_2} \lambda_2^{-\frac{1}{2}} $

$ = -\sqrt{\pi} (-\frac{1}{2}) \lambda_2^{-\frac{3}{2}} $

$ = \frac{1}{2}\sqrt{\frac{\pi}{\lambda_2^3}} $

$ = \frac{1}{2\lambda_2}\sqrt{\frac{\pi}{\lambda_2}} $

다시정리하면,

$ A \frac{1}{2\lambda_2}\sqrt{\frac{\pi}{\lambda_2}} = \sigma^2 $

위에서 $ A = \sqrt{\frac{\lambda_2}{\pi}} $이었으므로

$ \sqrt{\frac{\lambda_2}{\pi}} \frac{1}{2\lambda_2}\sqrt{\frac{\pi}{\lambda_2}} = \sigma^2 $

$ \frac{1}{2\lambda_2} = \sigma^2 $

$ \lambda_2 = \frac{1}{2\sigma^2} $

이렇게 $ \lambda_2 $가 구해지고, A는

$ A = \sqrt{\frac{\lambda_2}{\pi}} $

이므로 여기에 대입하면

$ A = \sqrt{\frac{1}{2\pi\sigma^2}} $

$ = \frac{1}{\sqrt{2\pi\sigma^2}} $

 

 

7. 결론

따라서 유도된 정규분포 pdf는

$ f(x) = \frac{1}{\sqrt{2\pi\sigma^2}}e^{- \frac{(x-\mu)^2}{2\sigma^2}} $

이와 같습니다.

 

완전 무에서부터 조건들만 가지고 정규분포 pdf가 증명되는게 너무 신기하지 않나요?

반응형
반응형

오늘의 포스팅은 암호로 보호된 (복사 금지 된) pdf 해결 방법이다.


TIPS에 적는 것이니 만큼, 블로그 노출도는 낮겠지만, 가장 간단한 플레인 텍스트로 작성하겠다.


1) smallpdf.com

pdf 암호 해제 사이트

인터넷에서 찾아보면 가장 사람들이 많이 찾는 사이트이다.

장점 : 인터넷 상에서 사용 가능

단점 : 한시간에 2개 밖에 작업 불가, 암호 해제 속도 느림


2) allinpdf.com

pdf 암호 해제 사이트

인터넷에서 두번째로 많이 나와 있는 사이트.

장점 : 인터넷 상에서 사용 가능

단점 : 암호 해제 속도 느림


3) 짜투리 패스워드 리커버리

파일에 걸린 암호 해제 프로그램

암호라는 것이 사용하는 키의 종류가 증가하면 할수록 기하급수적으로 가짓수가 늘어나니 어느정도 암호 추측이 가능한 경우에 사용

사용 방법은 암호 생성에 사용한 종류(숫자, 특수문자, 문자 등)와 암호 길이를 입력해주면 순식간에 찾아준다.

본인이 암호 입력하고 까먹었을 때 어느정도 경우의 수를 줄여서 찾아주는 것이 기본 모토이다.


4) 알pdf

이번에는 pdf 자체의 암호를 없애는 것이 아닌 pdf에서 복사 금지된(암호 걸리면 복사도 못하게 된다) 내용만 빼보는 방법이다.

특히 어차피 pdf 자체의 암호를 풀어도 그 내용을 가지고 다시 엑셀이나 문서로 만들어야 하는 경우에는 이것이 더 빠르다.

방법은 알pdf 다운 및 설치 -> 알pdf에서 pdf파일 열기 -> 상단 리본메뉴에서 '~로'라고 써있는 부분을 클릭하여 내보내기


5) Advanced pdf password recovery

패스워드 리커버리 프로그램의 일환

30일짜리 쉐어웨어 프로그램이고 정식으로는 돈 주고 써야하는 러시아 프로그램

인터넷에 잘 찾아보면 프리 프로그램이 있다.



반응형
반응형

요새 워낙에 문서 뷰어(.pdf, .hwp 등)들이 잘 발달되어있고, 말단기기들(태블릿 피씨 등)도 잘 발달되어 있고 해서, 개인적으로는 집에서 모든 문서를 없애는 방향으로 가고 있다.


그래서 집에 프린터를 없애 버렸는데(사실 복합기는 필요 없고, 프린터만 따로 있는거면 사겠는데, 요새 오히려 복합기가 훨씬 싸고, 단순 프린터가 가격이 훨씬 비싸다... 이 무슨...) 왕왕 프린트를 할 필요가 생긴다.


진짜로 물리적으로 프린트 할 일이 있으면, PC방에 가서 프린트하면 되는데(장당 말도 안되게 받기는 하는데, 프린터 유지비와 초기 구입비를 생각해보면 괜찮은 것 같다) 문제는 프린트 했다가 다시 스캔해야 하는 경우이다.


이 경우에 윈도우즈 자체에서 pdf로 저장하거나 xps로 저장하거나 one note로 보내는 등 여러가기 방법을 제공하는데, 문제는 우리나라 공공기관들이다.

(특히 민원24...)


우리나라 공공기관들은 이렇게 문서로 직접 저장하는 것을 막고 있고, 또한 문서로 직접저장 이외에도 공유프린터 등도 사용이 불가하다.(이 프린터들을 선택하면 출력 불가 프린터라고 나온다.)

[여러 대학에서 출력하는 것도 비슷할 것이다. 이번에 모교에서 출력해보았는데, xps는 에러가 났고, one note로 보내기도 에러가 났다. 결국 1000원을 그냥 버리게 되었다. 정말 진짜... 그냥 바로 spool로 갈 껄)


그래서 한동안 인터넷에서 돌아다녔던 것이 paperless프린터를 깔고, 통합 프린터 드라이버를 깔아서 두 개를 연동하여 출력을 통합 프린터 드라이버로 하면(이것은 출력가능이다) 여기서 자동으로 페이퍼리스 프린터로 넘겨주며, 자동으로 문서로 저장되는 시스템이다.


하지만


이 시스템을 사용해 보려고 정말 많은 노력을 해 보았는데, 모든 프로그램 설치가 그러하듯, 잘 안됐다.


한 몇시간 여기에 투자하고, '아 정말 답은 없는 건가'하고서 절망하고 있을 때, 그 설치한 통합 프린터 드라이버로 출력을 걸면, 컴퓨터 내에 spool파일이 생기는데, 이것을 빼내볼 수는 없을까 생각했는데... 있었다!!!


이제부터 그 방법을 설명한다.


윈도10 기준인데, 7도 다를 바 없는 것으로 보이는 바, 현재 있는 모든 윈도에서 사용 가능하다고 보인다.


1. 통합 프린터 드라이버를 깐다.(본인의 경우 hp 공식홈페이지에서 깔았다.) -> 이것을 깔면 장치 중에 'HP Universal Printing PS'라는 것이 생긴다.

2. 여러 인쇄가 필요한 경우로 가보자.(문서로 저장이 불가능한 경우 또는 공유프린터로 출력이 불가능한 경우. 가령 주민등록등본출력 등)

3. 일단 인쇄를 누르기 전에 'C:\Windows\System32\spool' 경로로 이동해준다. 여기서 우리가 앞으로 복사해야 할 폴더는 'PRINTERS' 폴더이다.

4. 인쇄 페이지에서 'HP Universal Printing PS'를 선택하고 출력을 눌러준다.

5. 처리가 완료됨과 동시에 띄워놓은 'C:\Windows\System32\spool'창에서 'PRINTERS' 폴더를 빠르게 복사하여(ctrl+c) 아무데나 붙여넣는다(ctrl+v). 여기서 '빠르게'하는 이유는, 어떤 상황에서는 spool파일이 오랫동안 남아있는데, 어떤 경우에서는 인쇄가 완료되자마자 사라지기 때문이다. (특히, 프린터가 응답없음이나, 인쇄를 취소하게 되면 무조건 적으로 삭제된다.)

6. 그렇게 복사한 'PRINTERS' 폴더안에 *.SPL 파일이 있으면 성공이다.

7. 이제 이 spool파일을 보기 위한 뷰어가 필요하다. 여기서 spool file을 뜯어볼 수 있는 방법은 보통 두가지다. 한가지는 뷰어를 이용하는 방법(이 안에도 요새 사용되는 뷰어가 2가지 있다), 두번째는 스풀 파일을 다시 프린트하여(새로운 프린터라 보면 된다.) pdf로 저장하는 방법(이것을 파일프린트라 한다.)

1) [뷰어] SPLview v1.0.2.3 (다운로드 링크 : http://www.lvbprint.de/html/splviewer1.html)

2) [뷰어] SplViewer v0.1 (다운로드 링크 : http://splviewer.sourceforge.net/)

3) [파일프린트] PrintFile (다운로드 링크 : https://lerup.com/printfile/)

개인적으로는 2번을 추천하는데, 그 이유는 파일프린트 방식은 뭔가 개인적으로 설정이 조금 힘들었다. 그리고 뷰어 방식 중에서 첫번째 SPLview는 개인적으로 파일이 안열렸다. 그래서 가장 단순하게 쓸 수 있는 SplViewer를 추천한다. (다만 에러가 나면 2->1->3 순으로 시도하면 그 중 하나는 될 것이다.)

이후의 단계는 2번을 기준으로 설명한다.

8. 파일을 설치하였으면 바탕화면에 바로가기가 생겼을수도, 안생겼을 수도 있다.(본인은 안생겼는데, 혹여나 생길수도 있다.) 바탕화면에 생겼으면 그것을 열어서 이용하면 되고, 생기지 않았으면 'C:\Program Files (x86)\SplViewer'로 들어가 준다.(혹시 32비트 컴퓨터는(x86) 그냥 Program Files (x86) 대신 Program Files로 들어가면 된다.

9. *.SPL파일을 'C:\Program Files (x86)\SplViewer' 폴더 안에있는 splviewer.exe에 드래그 앤 드롭하면(드래그 해서 splviewer.exe에 가져다 되면, 커서에 (+)가 추가된다.) 바로 이미지 미리보기 형태로 spool파일이 나타난다. 왼쪽 위에 '파일'을 눌러 '복사본 만들기'를 하고 원하는 위치에 저장하면 *.tiff방식으로 저장이 된다.

10. tiff파일을 pdf로 바꾸고 싶다면 (https://tiff2pdf.com/ko/) 사이트에서 변경이 가능하다.

11. tiff파일을 jpg로 바꾸고 싶다면 (https://tiff2jpg.com/ko/) 사이트에서 변경이 가능하다.


이 과정을 지나면 따라! 나에게 pdf 혹은 jpg파일이 내 컴퓨터로 출력되었다.

반응형

+ Recent posts