본문 바로가기
반응형

기타 강의11

[머신러닝 모델 검증의 이해] 3. k-fold cross validation k-fold 교차검증은 아래 순서로 진행됩니다. 1. 데이터셋을 learning set과 test set으로 나눔 2. learning set 을 k개의 fold로 나눔 3. 첫번째 fold 를 validation set 으로 나머지 fold를 training set 으로 사용하여 모델을 학습하고 error를 계산함. 4. 두번째 fold 를 validation set 으로 나머지 fold를 training set 으로 사용하여 모델을 학습하고 error를 계산함. 5. 4번 과정을 나머지 fold에 대해 반복함 6. 각 fold에서 구해진 error 들의 평균을 계산함 7. learning set 전체를 학습시키고 test set으로 평가함 아마 그래서 어쩌라는건지라는 의문이 드는 분들이 계실겁니다. .. 2023. 11. 16.
[KL divergence 의 이해] 7. ELBO 도 무엇인지 알아보자 Variational Inference(VI) 에 ELBO 라는게 등장합니다. ELBO는 Variational 오토인코더의 loss function 으로 사용됩니다. ELBO는 KL divergence 를 이용하여 유도할 수 있습니다. VI 가 무엇인지 몰라도 ELBO를 이해할 수 있도록 설명해보겠습니다. 우리는 어떤 분포를 알고 싶은 상황입니다. X라는 데이터가 주어진 상황에서 Z의 분포를 알고 싶습니다. p(Z|X)를 구하고 싶은 것입니다. 그런데 p(Z|X)를 직접 구하기는 어려웠습니다. 한가지 아이디어를 생각해냈는데 q(Z|X) 라는 분포를 우리가 아는 어떤 분포(예를들면 정규분포)로 정의하고 p(Z|X)에 최대한 가깝게 최적화하는 것입니다. q(Z|X)와 p(Z|X)에 KL divergence .. 2023. 10. 25.
[베이즈 추론의 이해] 1. 베이즈 추론의 목적 베이즈 추론의 목적은 모수의 분포를 추론하는 것입니다. 모수를 $\theta$ 라고 놓으면, 모수의 확률분포인 $f_{\theta}(\theta)$를 찾는 방법이 베이즈추론입니다. 모수를 추론하기 위해 데이터가 필요합니다. 데이터는 모집단에서 추출된 표본입니다. 표본을 벡터를 $\vec{X}$라고 놓겠습니다. 어렵게 생각하지 않아도 됩니다. 표본의 원소를 벡터형태로 표현한 것 뿐입니다. $\vec{X}$가 따르는 확률분포를 $f_{X}(\vec{X})$ 라고 놓겠습니다. 이번시간에는 베이즈 추론의 절차를 간단히 설명하고, 다음시간 부터 수식을 이용해서 설명하겠습니다. 우리는 모수의 확률분포 $f_{\theta}(\theta)$를 알고 싶은 상황입니다. 뭔지 모르므로 일단 특정한 분포를 가정합니다. 베타(.. 2023. 10. 11.
[머신러닝 모델 검증의 이해] 2. train set 은 한번만 뽑으면 되나? 데이터를 train, validation, test 셋으로 나누고 모델을 만들었다고 합시다. 이 모델은 현재 뽑힌 validation 셋에 과적합된 모델일 것입니다. 데이터를 train,validation,test 를 랜덤하게 나누는 작업 자체를 반복해서 수행한다면 이러한 문제를 해결할 수 있습니다. 데이터를 train,validation,test로 처음 나눈 상태를 S1 이라고 놓고, S1에서 모델을 학습하고 성능을 평가합니다. 다시 랜덤하게 나누고 이 상태를 S2라고 놓고 같은 작업을 반복합니다. 이렇게 데이터 나누기를 m번 반복하면 S1부터 Sm까지 m개의 성능이 있을 것입니다. 이 성능들의 평균을 구하여 모델의 성능으로 사용하면 됩니다. 그런데 이 방법에는 문제가 있습니다. 랜덤하게 모델을 나눌 .. 2023. 10. 10.
[KL divergence 의 이해] 6. 그냥 크로스 엔트로피를 쓰면 되는 이유 지난시간에 KL divergence 는 항상 0보다 같거나 크다라는 것을 증명했습니다. KL divergence 는 아래와 같이 정의됩니다. $D_{KL}(p||q)=H[p,q]-H[p]$ H[p,q] 는 크로스엔트로피이고 H[p]는 엔트로피입니다. 이때 아래 부등식이 만족한다는 것을 증명했습니다. $D_{KL}(p||q)=H[p,q]-H[p]\geq 0$ 우리는 위 부등식을 통해 H[p,q]가 H[p]보다 항상 크다는 사실을 알 수 있습니다. H[p] 는 어떤 집단의 실제 분포의 엔트로피이므로 고정된 값입니다. 따라서 KL divergence 를 0으로 만드는 것은, H[p,q]을 최소화하는 것과 같습니다. KL divergence 를 사용하려면 H[p] 도 알아야 하는데 일반적으로는 알 수 없습니다... 2023. 10. 6.
[KL divergence 의 이해] 5. KL divergence 왜 항상 0보다 같거나 큰가 (증명) KL divergence 는 아래와 같이 정의됩니다. $D_{KL}(p||q)=H[p,q]-H[p]$ 크로스엔트로피와 엔트로피의 차이입니다. 수식을 자세히 쓰면 아래와 같습니다. $D_{KL}(p||q)=\int_{-\infty}^{\infty}p(x)\ln \frac{p(x)}{q(x)}dx$ 이번 시간에는 KL divergence가 항상 양수라는 것을 증명하겠습니다. 증명에는 아래 부등식이 사용됩니다. $\ln x \leq x-1$ $(x>0)$ 위 부등식을 먼저 증명하겠습니다. 위 식을 아래와 같이 변형합니다. $x \leq e^{x-1}$ 아래와 같이 이항합니다. $0\leq e^{x-1}-x$ 우변의 식을 f(x)라고 놓겠습니다 f(x)가 x가 양수인 영역에서 항상 0보다 크다는 것을 증명하면 .. 2023. 10. 6.
[KL divergence 의 이해] 4. 크로스 엔트로피와 KL divergence 어떤 집단의 실제 분포를 $p(x)$라고 놓겠습니다. 우리가 예측한 분포를 $q(x)$라고 놓겠습니다. 실제 분포 $p(x)$의 엔트로피는 아래 수식을 통해 구할 수 있습니다. $H[p]=-\int_{-\infty}^{\infty}p(x)\ln p(x)dx$ 위 식에서 $-\ln p(x)$는 x에 올 수 있는 값의 정보량입니다. 여기서 p(x)를 q(x)로 바꾸면 크로스 엔트로피가 됩니다. 아래와 같습니다. $H[p,q]=-\int_{-\infty}^{\infty}p(x)\ln q(x)dx$ 실제 분포의 정보량 대신 우리가 예측한 분포의 정보량을 넣은 것입니다. 만약 우리가 집단의 분포를 아주 잘 예측해서 p(x)와 q(x)가 거의 같다면, 크로스엔트로피와 엔트로피도 같을 것입니다. 여기서 우리는 예측한.. 2023. 10. 5.
[KL divergence 의 이해] 3. 엔트로피가 높은 확률분포란? 확률분포의 정보량을 엔트로피라고 한다는 것을 지난시간에 배웠습니다. 확률분포마다 엔트로피가 다를텐데요. 어떤 확률분포가 다른 확률분포 보다 엔트로피가 높다는 것은 무엇을 의미하는지 알아봅시다. 두 확률분포 $p_{x}(x)$ 와 $p_{y}(y)$ 가 있다고 합시다. 분포함수는 아래와 같이 정의됩니다. $p_{x}(x)=\left\{\begin{matrix} 0.5 & (x=1)\\ 0.5 & (x=2) \end{matrix}\right.$ $p_{y}(y)=\left\{\begin{matrix} 0.9 & (y=1)\\ 0.1 & (y=2) \end{matrix}\right.$ 각 확률분포의 엔트로피를 구해봅시다. 확률분포 $p_{x}(x)$의 정보량은 아래와 같이 구합니다. $H[X]=-0.5\ln .. 2023. 10. 5.
[KL divergence 의 이해] 2. 엔트로피 (확률분포의 정보량) 지난시간에는 확률변수 각 원소의 정보량을 구하는 방법을 알아보았습니다. 정보량은 놀라움의 정도를 나타내며, 발생확률이 낮을 수록 높은 정보량을 가졌습니다. 이번시간에는 확률분포의 정보량을 구하는 방법을 알아봅시다. 아래와 같은 확률분포가 있다고 합시다. $p(x)=\left\{\begin{matrix} 0.5 & (x=1) & \\ 0.4 & (x=2) & \\ 0.1 & (x=3) & \end{matrix}\right.$ 확률변수 원소의 정보량은 아래와 같이 계산되었습니다. $I(1)=\ln\frac{1}{0.5}=\ln2$ $I(2)=\ln\frac{1}{0.4}=\ln2.5$ $I(3)=\ln\frac{1}{0.1}=\ln10$ 위와 같은 확률분포의 정보량은 어떻게 정의하면 될까요? 우리가 이 확률.. 2023. 10. 5.
[KL divergence 의 이해] 1. 정보량 딥러닝에서 사용되는 KL divergence 를 이해하는 것이 목표입니다. KL divergence를 수학적으로 자세히 설명할 것이지만, 일단 의미만 먼저 이해하면 아래와 같습니다. "두 확률분포의 차이를 나타내주는 값이다." KL divergence 를 이해하려면 사전지식이 필요합니다. 정보량, 엔트로피, 크로스엔트로피입니다. 차례대로 설명하겠습니다. 확률분포를 다룰 때는 편의상 1차원만을 고려하겠습니다. 정보량이라고 하면 많은 양의 텍스트를 떠올리기 쉬운데 여기서 다룰 정보량은 정보이론이라는 학문에 등장하는 정보량입니다. 기존에 흔히 알던 개념이 아니므로 정보량의 정의가 무엇인지 먼저 알아봅시다. 정보이론에서 정보량은 '놀라움의 정도'를 말합니다. 여기서 놀라움은 이런 유형의 놀라움입니다. "아니 이.. 2023. 10. 4.
[머신러닝 모델 검증의 이해] 1. train, validation, test set 은 왜 나뉜걸까 머신러닝 모델을 학습시킬 때 데이터를 train, validation, test set으로 나눕니다. 왜 이렇게 나누는지 알아보겠습니다. 우리가 1000명의 혈액검사 데이터와 같은 사람의 A라는 질병 유무 데이터를 갖고 있다고 합시다. 이 데이터를 이용하여 질병 A를 진단하는 머신러닝 모델을 만들려고 합니다. 1000명의 데이터 전체를 사용하여 머신러닝 모델을 만들면, 우리가 만든 머신러닝모델이 정확한지 평가할 데이터가 없습니다. 모델을 둘로 나눠서 일부는 모델 학습에 사용하고 나머지는 모델 평가에 사용하기로 했습니다. 1000명 중 임의로 250명을 뽑아서 모델 평가에 사용할 것입니다. 이렇게 뽑힌 250명을 test set이라고 부르고, 나머지 750명을 train set 이라고 부르겠습니다. tra.. 2023. 9. 25.
반응형