신경망을 사용하여 임의의 분포에서 샘플링

1544 단어 Chainer기계 학습

소개



마지막 기사 에서 소개한 밀도 추정의 기법을 응용하여 데이터를 샘플링해 봅니다.
$F(x)=P(X\leq x)$ 를 학습시킨 모델을 바탕으로 이 역함수 $G(y)$ 를 비슷한 신경망으로 학습시킵니다.
$[0, 1]$의 균일 분포에서 얻은 $y$에 대해, $F(G(y))$가 y에 가까워지도록 오토엔코더적인 학습을 실시하면 됩니다. 손실 함수에는 베르누이 분포를 가정한 음의 로그 우도( chainer.functions.bernoulli_nll() )를 사용합니다.
학습 후, 샘플링을 실시하려면 $[0, 1]$의 균일 분포로부터 얻은 $y$로 $G(y)$를 계산하면 됩니다.

1차원 혼합 가우스 분포



오렌지색 실선이 학습 끝난 $P(X)$로 파란색 막대 그래프가 이번 샘플링 결과입니다.
$P(x)=0$ 부근과 $P(x)=1$ 부근에서는 잘 샘플을 얻을 수 없는 것 같습니다.


2차원 혼합 가우스 분포



왼쪽부터 순서대로, 원 데이터, $P(X)$의 학습 결과, 이번 수법에 의한 샘플링 결과입니다.
$P(X)$의 학습 결과에 그림자가 나타났습니다만, Min-Max Pooling이 나쁜 것을 하고 있는 것 같습니다. 이 풀링은 필요하지 않을 수 있습니다 (요구).


2차원 절단(?) 가우스 분포




$P(X)$의 히트 맵상에서는 잘 가고 있지 않은 것처럼 보였습니다만, 이번의 결과를 보면 의외로 형태는 잡히고 있는 것 같습니다.

좋은 웹페이지 즐겨찾기