common.title
Cloud support

Nobisuke

Dekisugi

RAG


autoQAOA
RAG for dev
Fortune telling app
Annealing
DEEPSCORE
Translation

Overview
Service overview
Terms of service

Privacy policy

Contact
Research

Sign in
Sign up
common.title

確率密度関数についてちょっと調べてみた

Yuichiro Minato

2024/09/05 10:23

学習にはキリがないですね。量子コンピュータや生成AIを深く理解するためにはいろんな知らないことを学ばないとダメなようです。普段量子コンピュータを勉強しているときには確率分布が出ますが、値は量子ビットの0か1で決まるので、離散確率分布が利用されます。今回は値が連続する連続確率分布を確認してみます。

連続確率分布
https://ja.wikipedia.org/wiki/連続確率分布

離散確率分布においては確率変数Xにおいて、確率はP(X)で表されますが、連続量の場合には、P(X)は確率ではなく、確率密度関数と表現されるようです。

確率密度関数
https://ja.wikipedia.org/wiki/確率密度関数

確率を求めたい場合には、範囲を決めて積分をすれば良いようです。

\int_a^b f(x)\, dx

離散確率分布に対応して、連続確率分布でも全区間で積分すると1になるようです(わかりやすいです)。

\int_{-\infty}^{\infty} f(x)\, dx = 1

期待値(平均)も確率密度関数に確率変数をかけて全区間で積分すればOK

E[X] = \int_{-\infty}^{\infty} x f(x) \, dx

分散に関しても、

\text{Var}(X) = E[(X - \mu)^2] = \int_{-\infty}^{\infty} (x - \mu)^2 f(x) \, dx = E[X^2] - (E[X])^2 = \int_{-\infty}^{\infty} x^2 f(x)\, dx - \left( \int_{-\infty}^{\infty} x f(x)\, dx \right)^2

離散確率分布と基本は同じですが、区間を区切って積分しているのが特徴ですね。わかりやすいです。

ガウス分布

ということで、最終目標は拡散モデルという画像生成AIの理論を学びたいので、ガウス分布を見てみます。

正規分布
https://ja.wikipedia.org/wiki/正規分布

正規分布は、

f(x) = \frac{1}{\sqrt{2\pi\sigma^2}} \exp\left(-\frac{(x - \mu)^2}{2\sigma^2}\right)

どうやら平均と分散の値によって決まる関数のようです。ChatGPTに聞いてPythonで確認します。

import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import norm

# 平均と標準偏差
mu = 0  # 平均
sigma = 1  # 標準偏差

# x軸の値
x = np.linspace(-5, 5, 100)

# 正規分布の確率密度関数
pdf = norm.pdf(x, mu, sigma)

# グラフをプロット
plt.plot(x, pdf, 'b-', label="N(0, 1)")
plt.title("N(0, 1)")
plt.xlabel("x")
plt.legend()
plt.show()

image

名前は聞いたことあったけど、よくわからなかったのが確率密度関数ですが、値が連続なので密度として表現されているのかと思いました。少し賢くなりました。ディープラーニングや量子コンピュータやるだけなのに色々覚えないといけなくて辛いです。

© 2024, blueqat Inc. All rights reserved