🏷️sec_random_variables
:numref:sec_prob
では、離散確率変数を扱う方法の基本を見ました。この場合は、可能な値の有限集合または整数のいずれかをとる確率変数を指します。このセクションでは、任意の実数値をとることができる確率変数である連続確率変数の理論を開発します。
連続確率変数は、離散確率変数よりもはるかに微妙なトピックです。技術的な飛躍は、数値リストの追加と関数の積分との間のジャンプに匹敵するということです。そのため、理論を発展させるには少し時間をかける必要があります。
To understand the additional technical challenges encountered when working with continuous random variables, let us perform a thought experiment. Suppose that we are throwing a dart at the dart board, and we want to know the probability that it hits exactly
To start with, we imagine measuring a single digit of accuracy, that is to say with bins for
However, when we look closer, this does not match our question! We wanted exact equality, whereas these bins hold all that fell between say
Undeterred, we continue further. We measure even more precisely, say
However, this does not solve anything! We have just pushed the issue down one digit further. Let us abstract a bit. Imagine we know the probability that the first
What this means is that in essence each additional digit of accuracy we require should decrease probability of matching by a factor of
The value
Notice that if we know the position accurate to
Let us take this one final step further. We have been thinking about the point
eq_pdf_deriv
Indeed, :eqref:eq_pdf_deriv
precisely defines the probability density function. It is a function
%matplotlib inline
from d2l import mxnet as d2l
from IPython import display
from mxnet import np, npx
npx.set_np()
# Plot the probability density function for some random variable
x = np.arange(-5, 5, 0.01)
p = 0.2*np.exp(-(x - 3)**2 / 2)/np.sqrt(2 * np.pi) + \
0.8*np.exp(-(x + 1)**2 / 2)/np.sqrt(2 * np.pi)
d2l.plot(x, p, 'x', 'Density')
#@tab pytorch
%matplotlib inline
from d2l import torch as d2l
from IPython import display
import torch
torch.pi = torch.acos(torch.zeros(1)).item() * 2 # Define pi in torch
# Plot the probability density function for some random variable
x = torch.arange(-5, 5, 0.01)
p = 0.2*torch.exp(-(x - 3)**2 / 2)/torch.sqrt(2 * torch.tensor(torch.pi)) + \
0.8*torch.exp(-(x + 1)**2 / 2)/torch.sqrt(2 * torch.tensor(torch.pi))
d2l.plot(x, p, 'x', 'Density')
#@tab tensorflow
%matplotlib inline
from d2l import tensorflow as d2l
from IPython import display
import tensorflow as tf
tf.pi = tf.acos(tf.zeros(1)).numpy() * 2 # Define pi in TensorFlow
# Plot the probability density function for some random variable
x = tf.range(-5, 5, 0.01)
p = 0.2*tf.exp(-(x - 3)**2 / 2)/tf.sqrt(2 * tf.constant(tf.pi)) + \
0.8*tf.exp(-(x + 1)**2 / 2)/tf.sqrt(2 * tf.constant(tf.pi))
d2l.plot(x, p, 'x', 'Density')
関数値が大きい位置は、乱数値が検出される可能性が高い領域を示します。低い部分は、ランダム値を見つける可能性が低い領域です。
これについてさらに調べてみましょう。確率変数$X$の確率密度関数が直感的に何であるかをすでに見てきました。つまり、密度関数は関数$p(x)$なので、
eq_pdf_def
しかし、これは$p(x)$の特性にとって何を意味するのでしょうか?
まず、確率が負になることはないので、$p(x) \ge 0$ も期待すべきです。
次に、$\mathbb{R}$ を eq_pdf_def
から、確率はおよそ
全部まとめるとそうなるはず
これは :numref:sec_integral_calculus
で説明した積分の近似に過ぎないので、次のように言えます。
実際、これをさらに掘り下げてみると、$a$、$b$ について、
これをコードで近似するには、以前と同じ離散近似法を使用します。この場合、青色の領域に落ちる確率を近似することができます。
# Approximate probability using numerical integration
epsilon = 0.01
x = np.arange(-5, 5, 0.01)
p = 0.2*np.exp(-(x - 3)**2 / 2) / np.sqrt(2 * np.pi) + \
0.8*np.exp(-(x + 1)**2 / 2) / np.sqrt(2 * np.pi)
d2l.set_figsize()
d2l.plt.plot(x, p, color='black')
d2l.plt.fill_between(x.tolist()[300:800], p.tolist()[300:800])
d2l.plt.show()
f'approximate Probability: {np.sum(epsilon*p[300:800])}'
#@tab pytorch
# Approximate probability using numerical integration
epsilon = 0.01
x = torch.arange(-5, 5, 0.01)
p = 0.2*torch.exp(-(x - 3)**2 / 2) / torch.sqrt(2 * torch.tensor(torch.pi)) +\
0.8*torch.exp(-(x + 1)**2 / 2) / torch.sqrt(2 * torch.tensor(torch.pi))
d2l.set_figsize()
d2l.plt.plot(x, p, color='black')
d2l.plt.fill_between(x.tolist()[300:800], p.tolist()[300:800])
d2l.plt.show()
f'approximate Probability: {torch.sum(epsilon*p[300:800])}'
#@tab tensorflow
# Approximate probability using numerical integration
epsilon = 0.01
x = tf.range(-5, 5, 0.01)
p = 0.2*tf.exp(-(x - 3)**2 / 2) / tf.sqrt(2 * tf.constant(tf.pi)) +\
0.8*tf.exp(-(x + 1)**2 / 2) / tf.sqrt(2 * tf.constant(tf.pi))
d2l.set_figsize()
d2l.plt.plot(x, p, color='black')
d2l.plt.fill_between(x.numpy().tolist()[300:800], p.numpy().tolist()[300:800])
d2l.plt.show()
f'approximate Probability: {tf.reduce_sum(epsilon*p[300:800])}'
これらの2つの特性は、可能な確率密度関数(または一般的に見られる略語にはp.d.f.)の空間を正確に表していることが分かります。それらは非負の関数
eq_pdf_int_one
積分を使用してこの関数を解釈し、確率変数が特定の区間にある確率を求めます。
eq_pdf_int_int
:numref:sec_distributions
ではいくつかの一般的なディストリビューションが見られますが、要約の作業を続けましょう。
前のセクションでは、p.dfの概念を見ました。実際には、これは連続確率変数を議論するためによく見られる方法ですが、重要な落とし穴が1つあります。それは、p.dfの値自体が確率ではなく、積分して生成しなければならない関数であるということです。確率。密度の長さが
特に、:eqref:eq_pdf_int_int
を使用して、密度が
いくつかの特性を観察してみましょう。
-
$F(x) \rightarrow 0$ は$x\rightarrow -\infty$ と表記されています。 -
$F(x) \rightarrow 1$ は$x\rightarrow \infty$ と表示されます。 -
$F(x)$ は減少しません ($y > x \implies F(y) \ge F(x)$)。 -
$X$ が連続確率変数の場合、$F(x)$ は連続 (ジャンプなし) です。
4 番目の箇条書きでは、$X$ が離散的である場合、つまり
この例では、c.d.f. を使用する利点の 1 つ、同じフレームワーク内で連続または離散の確率変数を処理する機能、または実際に 2 つの混合 (コインを投げる:ヘッドがダイスのロールを返す場合、尻尾がダーツの中心から投げられる距離を返す場合) を処理できることが分かります。ボード)。
確率変数
mean は確率変数の平均値をエンコードします。確率$p_i$の値
eq_exp_def
平均を解釈する必要があるのは(注意が必要ですが)、確率変数がどこに位置するのかを本質的に教えてくれるということです。
このセクション全体で検討する最小限の例として、$X$ を確率が eq_exp_def
を使用して計算できます。$a$ と
したがって、平均値は
これらは役に立つので、いくつかのプロパティをまとめましょう。
- 任意の確率変数
$X$ と数値$a$ と$b$ については、その$\mu_{aX+b} = a\mu_X + b$ があります。 - 2 つの確率変数
$X$ と$Y$ がある場合、$\mu_{X+Y} = \mu_X+\mu_Y$ になります。
平均は確率変数の平均動作を理解するのに役立ちますが、平均値では完全に直感的に理解することすらできません。1回の販売で$$10\ pm\
これにより、確率変数の分散が考慮されます。これは、確率変数が平均からどれだけ逸脱しているかを示す量的尺度です。$X - \mu_X$ という式を考えてみましょう。これは、確率変数の平均値からの偏差です。この値は正でも負でもかまいません。そのため、偏差の大きさを測定するために、何かを正にする必要があります。
特に、$(X-\mu_X)^2.$を見ています。この量の典型的な大きさを平均を取って見ると、分散に到達します。
eq_var_def
:eqref:eq_var_def
の最後の等価性は、途中で定義を拡張し、期待の性質を適用することによって成り立ちます。
したがって、:eqref:eq_var_def
までに分散は次のようになります。
この結果もまた意味があります。最大の$p$は$1/2$で、これは$a-2$または$a+2$をコインフリップで選ぶことに相当します。この分散が
以下に、分散のプロパティをいくつか挙げます。
-
$X$ が定数である場合に限り、$\mathrm{Var}(X) = 0$ となる確率変数$X$ 、$\mathrm{Var}(X) \ge 0$。 - 任意の確率変数
$X$ と数値$a$ と$b$ については、その$\mathrm{Var}(aX+b) = a^2\mathrm{Var}(X)$ があります。 - 2つの「独立した」確率変数
$X$ と$Y$ がある場合、$\mathrm{Var}(X+Y) = \mathrm{Var}(X) + \mathrm{Var}(Y)$ になります。
これらの値を解釈すると、多少の混乱が生じることがあります。特に、この計算で単位を追跡するとどうなるか想像してみましょう。Web ページ上の製品に割り当てられた星評価を使用して作業しているとします。$a$、$a-2$、$a+2$ は、すべて星の単位で測定されます。同様に、平均$\mu_X$も星 (加重平均) で測定されます。しかし、分散に達すると、すぐに問題が発生します。つまり、二乗星の単位である
この要約統計量は、平方根を取ることによって分散から常に推定できます。したがって、標準偏差は次のように定義されます。
この例では、標準偏差が
分散の特性は、標準偏差で言い換えることができます。
- 任意の確率変数
$X$ 、$\sigma_{X} \ge 0$ です。 - 任意の確率変数
$X$ と数値$a$ と$b$ については、$\sigma_{aX+b} = |a|\sigma_{X}$ があります。 - 2つの「独立した」確率変数
$X$ と$Y$ がある場合、$\sigma_{X+Y} = \sqrt{\sigma_{X}^2 + \sigma_{Y}^2}$ になります。
このとき、「標準偏差が元の確率変数の単位である場合、その確率変数に関して描画できるものを表しているのか」と尋ねるのは自然なことです。答えははっきりとイエスです!実際、平均が確率変数の典型的な位置を教えてくれたように、標準偏差はその確率変数の典型的な変動範囲を与えます。チェビシェフの不等式として知られるものを用いて、これを厳格にすることができます。
eq_chebyshev
あるいは、$\alpha=10$の場合は99ドル\ %$ of the samples from any random variable fall within $10ドルの平均の標準偏差を口頭で述べるといいでしょう。これにより、標準の要約統計量を即座に解釈できます。
このステートメントがいかに微妙であるかを確認するために、実行例をもう一度見てみましょう。$X$ は確率が eq_chebyshev
を
This means that
Let us visualize this. We will show the probability of getting the three values as three vertical bars with height proportional to the probability. The interval will be drawn as a horizontal line in the middle. The first plot shows what happens for
# Define a helper to plot these figures
def plot_chebyshev(a, p):
d2l.set_figsize()
d2l.plt.stem([a-2, a, a+2], [p, 1-2*p, p], use_line_collection=True)
d2l.plt.xlim([-4, 4])
d2l.plt.xlabel('x')
d2l.plt.ylabel('p.m.f.')
d2l.plt.hlines(0.5, a - 4 * np.sqrt(2 * p),
a + 4 * np.sqrt(2 * p), 'black', lw=4)
d2l.plt.vlines(a - 4 * np.sqrt(2 * p), 0.53, 0.47, 'black', lw=1)
d2l.plt.vlines(a + 4 * np.sqrt(2 * p), 0.53, 0.47, 'black', lw=1)
d2l.plt.title(f'p = {p:.3f}')
d2l.plt.show()
# Plot interval when p > 1/8
plot_chebyshev(0.0, 0.2)
#@tab pytorch
# Define a helper to plot these figures
def plot_chebyshev(a, p):
d2l.set_figsize()
d2l.plt.stem([a-2, a, a+2], [p, 1-2*p, p], use_line_collection=True)
d2l.plt.xlim([-4, 4])
d2l.plt.xlabel('x')
d2l.plt.ylabel('p.m.f.')
d2l.plt.hlines(0.5, a - 4 * torch.sqrt(2 * p),
a + 4 * torch.sqrt(2 * p), 'black', lw=4)
d2l.plt.vlines(a - 4 * torch.sqrt(2 * p), 0.53, 0.47, 'black', lw=1)
d2l.plt.vlines(a + 4 * torch.sqrt(2 * p), 0.53, 0.47, 'black', lw=1)
d2l.plt.title(f'p = {p:.3f}')
d2l.plt.show()
# Plot interval when p > 1/8
plot_chebyshev(0.0, torch.tensor(0.2))
#@tab tensorflow
# Define a helper to plot these figures
def plot_chebyshev(a, p):
d2l.set_figsize()
d2l.plt.stem([a-2, a, a+2], [p, 1-2*p, p], use_line_collection=True)
d2l.plt.xlim([-4, 4])
d2l.plt.xlabel('x')
d2l.plt.ylabel('p.m.f.')
d2l.plt.hlines(0.5, a - 4 * tf.sqrt(2 * p),
a + 4 * tf.sqrt(2 * p), 'black', lw=4)
d2l.plt.vlines(a - 4 * tf.sqrt(2 * p), 0.53, 0.47, 'black', lw=1)
d2l.plt.vlines(a + 4 * tf.sqrt(2 * p), 0.53, 0.47, 'black', lw=1)
d2l.plt.title(f'p = {p:.3f}')
d2l.plt.show()
# Plot interval when p > 1/8
plot_chebyshev(0.0, tf.constant(0.2))
2 つ目は、$p = 1/8$ では、間隔が 2 つのポイントに正確に接していることを示しています。これは、不等式がsharp であることを示しています。これは、不等式を真に保ちながらこれより小さい区間を取ることができないためです。
# Plot interval when p = 1/8
plot_chebyshev(0.0, 0.125)
#@tab pytorch
# Plot interval when p = 1/8
plot_chebyshev(0.0, torch.tensor(0.125))
#@tab tensorflow
# Plot interval when p = 1/8
plot_chebyshev(0.0, tf.constant(0.125))
3 つ目は、$p < 1/8$ では区間に中心のみが含まれていることを示しています。確率の
# Plot interval when p < 1/8
plot_chebyshev(0.0, 0.05)
#@tab pytorch
# Plot interval when p < 1/8
plot_chebyshev(0.0, torch.tensor(0.05))
#@tab tensorflow
# Plot interval when p < 1/8
plot_chebyshev(0.0, tf.constant(0.05))
これはすべて離散確率変数に関するものですが、連続確率変数の場合も同様です。これがどのように機能するかを直感的に理解するために、実数線を eq_exp_def
を使うことができます。
同様に、:eqref:eq_var_def
を使用すると、分散は次のように記述できます。
この場合でも、平均、分散、および標準偏差について前述したすべてが適用されます。例えば、密度をもつ確率変数を考えると
計算できる
そして
警告として、Cauchy 分布 として知られる、もう 1 つの例を調べてみましょう。これは p.d.f. が次で与えられる分布です
# Plot the Cauchy distribution p.d.f.
x = np.arange(-5, 5, 0.01)
p = 1 / (1 + x**2)
d2l.plot(x, p, 'x', 'p.d.f.')
#@tab pytorch
# Plot the Cauchy distribution p.d.f.
x = torch.arange(-5, 5, 0.01)
p = 1 / (1 + x**2)
d2l.plot(x, p, 'x', 'p.d.f.')
#@tab tensorflow
# Plot the Cauchy distribution p.d.f.
x = tf.range(-5, 5, 0.01)
p = 1 / (1 + x**2)
d2l.plot(x, p, 'x', 'p.d.f.')
この関数は無意味に見え、実際に積分の表を調べると、その下に面積1があることが示され、連続確率変数を定義します。
何がうまくいかないかを見るために、これの分散を計算してみましょう。これには :eqref:eq_var_def
コンピューティングの使用が含まれます
内側の関数は次のようになります。
# Plot the integrand needed to compute the variance
x = np.arange(-20, 20, 0.01)
p = x**2 / (1 + x**2)
d2l.plot(x, p, 'x', 'integrand')
#@tab pytorch
# Plot the integrand needed to compute the variance
x = torch.arange(-20, 20, 0.01)
p = x**2 / (1 + x**2)
d2l.plot(x, p, 'x', 'integrand')
#@tab tensorflow
# Plot the integrand needed to compute the variance
x = tf.range(-20, 20, 0.01)
p = x**2 / (1 + x**2)
d2l.plot(x, p, 'x', 'integrand')
この関数は本質的にゼロに近い小さなディップを持つ定数であるため、この関数は明らかにその下に無限の面積を持っています。
これは、明確に定義された有限分散を持たないことを意味します。
ただし、深く見ると、さらに厄介な結果が得られます。:eqref:eq_exp_def
を使って平均を計算してみましょう。変数の変更式を使用すると、
内側の積分は対数の定義なので、これは本質的に
機械学習の科学者は、ほとんどの場合、これらの問題に対処する必要がないようにモデルを定義しています。また、ほとんどの場合、平均と分散が明確に定義された確率変数を扱うことになります。しかし、重い尾 を持つ確率変数 (つまり、大きな値を得る確率が平均や分散などを未定義にするほど大きい確率変数) を持つ確率変数は、物理システムのモデリングに役立つので、それらが存在することを知っておく価値があります。
上記の作業はすべて、単一の実数値の確率変数を使用して作業していることを前提としています。しかし、2つ以上の潜在的に相関の高い確率変数を扱っているとしたらどうでしょうか?このような状況は機械学習では当たり前のことです。$R_{i, j}$ のような確率変数は、イメージの sec_naive_bayes
では、このような仮定のためにパフォーマンスが低下するモデルが見られます)。これらの相関する連続確率変数を扱う数学言語を開発する必要があります。
ありがたいことに、:numref:sec_integral_calculus
の多重積分によって、このような言語を開発することができます。わかりやすくするために、相関できる 2 つの確率変数
単一変数の場合と同様の推論は、これがおおよその値になるはずであることを示しています。
いくつかの関数$p(x, y)$。これは
-
$p(x, y) \ge 0$ ; -
$\int _ {\mathbb{R}^2} p(x, y) ;dx ;dy = 1$ ; -
$P((X, Y) \in \mathcal{D}) = \int _ {\mathcal{D}} p(x, y) ;dx ;dy$ 。
このようにして、相関する可能性のある複数の確率変数を扱うことができます。3 つ以上の確率変数を扱う場合、$p(\mathbf{x}) = p(x_1, \ldots, x_n)$ を考慮すると、多変量密度を必要な数の座標に拡張できます。非負であり、総積分が1であるという同じ性質が依然として保持されます。
具体的には、$p _ {X, Y}(x, y)$ で与えられる結合密度をもつ 2 つの確率変数
ほとんどの場合と同様に、何が真実であるかを理解するために、直感的な図に戻るのが最善です。密度は関数$p _ X$であることを思い出してください。
密度は、この場合に何が起こるかを直接教えてくれません。$y$でも小さな間隔に分割する必要があるので、これを次のように書くことができます
これは :numref:fig_marginal
に示すように、一直線に並んだ一連の正方形に沿って密度の値を足し合わせるように指示します。実際、両側からイプシロンの1つの因数をキャンセルし、右側の合計が$y$を超える積分であることを認識した後、次のように結論付けることができます。
こうして私達は見る
これは、周辺分布を得るために、関心のない変数を積分することを示しています。このプロセスはしばしば、不要な変数を積分 または疎外する*と呼ばれます。
複数の確率変数を扱う場合、知っておくと便利な要約統計量が 1 つあります。共分散 です。これは、2 つの確率変数が一緒に変動する度合いを測定します。
2 つの確率変数
eq_cov_def
これを直感的に考えるには、次の確率変数のペアを考えてみましょう。$X$ が値
eq_cov_def
を使用して計算できます。
共分散について簡単に説明すると、これらの線形関係のみが測定されるということです。${-2, -1, 0, 1, 2}$ から
連続確率変数の場合、ほぼ同じ話が成り立ちます。この時点では、離散と連続の間の遷移にかなり慣れているので、導出なしの :eqref:eq_cov_def
の連続アナログを提供します。
可視化のために、調整可能な共分散をもつ確率変数のコレクションを見てみましょう。
# Plot a few random variables adjustable covariance
covs = [-0.9, 0.0, 1.2]
d2l.plt.figure(figsize=(12, 3))
for i in range(3):
X = np.random.normal(0, 1, 500)
Y = covs[i]*X + np.random.normal(0, 1, (500))
d2l.plt.subplot(1, 4, i+1)
d2l.plt.scatter(X.asnumpy(), Y.asnumpy())
d2l.plt.xlabel('X')
d2l.plt.ylabel('Y')
d2l.plt.title(f'cov = {covs[i]}')
d2l.plt.show()
#@tab pytorch
# Plot a few random variables adjustable covariance
covs = [-0.9, 0.0, 1.2]
d2l.plt.figure(figsize=(12, 3))
for i in range(3):
X = torch.randn(500)
Y = covs[i]*X + torch.randn(500)
d2l.plt.subplot(1, 4, i+1)
d2l.plt.scatter(X.numpy(), Y.numpy())
d2l.plt.xlabel('X')
d2l.plt.ylabel('Y')
d2l.plt.title(f'cov = {covs[i]}')
d2l.plt.show()
#@tab tensorflow
# Plot a few random variables adjustable covariance
covs = [-0.9, 0.0, 1.2]
d2l.plt.figure(figsize=(12, 3))
for i in range(3):
X = tf.random.normal((500, ))
Y = covs[i]*X + tf.random.normal((500, ))
d2l.plt.subplot(1, 4, i+1)
d2l.plt.scatter(X.numpy(), Y.numpy())
d2l.plt.xlabel('X')
d2l.plt.ylabel('Y')
d2l.plt.title(f'cov = {covs[i]}')
d2l.plt.show()
共分散の性質をいくつか見てみましょう。
- 任意の確率変数
$X$ 、$\mathrm{Cov}(X, X) = \mathrm{Var}(X)$ です。 - 任意の確率変数
$X, Y$ と数値$a$ および$b$ の場合、$\mathrm{Cov}(aX+b, Y) = \mathrm{Cov}(X, aY+b) = a\mathrm{Cov}(X, Y)$ -
$X$ と$Y$ が独立している場合は$\mathrm{Cov}(X, Y) = 0$ になります。
さらに、共分散を使用して、前に見た関係を拡張できます。$X$と$Y$は2つの独立確率変数であることを思い出してください。
共分散の知識があれば、この関係を拡大できます。実際、一部の代数では一般的にそれを示すことができます。
これにより、相関する確率変数の分散和則を一般化することができます。
平均と分散の場合と同様に、単位を考えてみましょう。$X$ をある単位 (インチなど) で測定し、$Y$ を別の単位 (たとえばドル) で測定した場合、共分散はこれら 2 つの単位
何が理にかなっているかを見るために、思考実験を行ってみましょう。インチとドルの確率変数をインチとセントに変換するとします。この場合、確率変数
eq_cor_def
これは単位なしの値であることがわかります。ちょっとした数学を見ると、この数値は
上の明示的離散の例に戻ると、$\sigma_X = 1$ と eq_cor_def
を使用して 2 つの確率変数間の相関を計算し、
現在、この範囲は
別の例として、$X$ を任意の確率変数として、$Y=aX+b$ を
:eqref:eq_cor_def
までには
したがって、相関は
調整可能な相関をもつ確率変数のコレクションをもう一度プロットしてみましょう。
# Plot a few random variables adjustable correlations
cors = [-0.9, 0.0, 1.0]
d2l.plt.figure(figsize=(12, 3))
for i in range(3):
X = np.random.normal(0, 1, 500)
Y = cors[i] * X + np.sqrt(1 - cors[i]**2) * np.random.normal(0, 1, 500)
d2l.plt.subplot(1, 4, i + 1)
d2l.plt.scatter(X.asnumpy(), Y.asnumpy())
d2l.plt.xlabel('X')
d2l.plt.ylabel('Y')
d2l.plt.title(f'cor = {cors[i]}')
d2l.plt.show()
#@tab pytorch
# Plot a few random variables adjustable correlations
cors = [-0.9, 0.0, 1.0]
d2l.plt.figure(figsize=(12, 3))
for i in range(3):
X = torch.randn(500)
Y = cors[i] * X + torch.sqrt(torch.tensor(1) -
cors[i]**2) * torch.randn(500)
d2l.plt.subplot(1, 4, i + 1)
d2l.plt.scatter(X.numpy(), Y.numpy())
d2l.plt.xlabel('X')
d2l.plt.ylabel('Y')
d2l.plt.title(f'cor = {cors[i]}')
d2l.plt.show()
#@tab tensorflow
# Plot a few random variables adjustable correlations
cors = [-0.9, 0.0, 1.0]
d2l.plt.figure(figsize=(12, 3))
for i in range(3):
X = tf.random.normal((500, ))
Y = cors[i] * X + tf.sqrt(tf.constant(1.) -
cors[i]**2) * tf.random.normal((500, ))
d2l.plt.subplot(1, 4, i + 1)
d2l.plt.scatter(X.numpy(), Y.numpy())
d2l.plt.xlabel('X')
d2l.plt.ylabel('Y')
d2l.plt.title(f'cor = {cors[i]}')
d2l.plt.show()
相関関係のいくつかのプロパティを以下に挙げてみましょう。
- 任意の確率変数
$X$ 、$\rho(X, X) = 1$ です。 - 任意の確率変数
$X, Y$ と数値$a$ および$b$ の場合、$\rho(aX+b, Y) = \rho(X, aY+b) = \rho(X, Y)$ -
$X$ と$Y$ が非ゼロ分散で独立している場合、$\rho(X, Y) = 0$ になります。
最後に、これらの数式のいくつかはおなじみのように感じるかもしれません。確かに、$\mu_X = \mu_Y = 0$と仮定してすべてを拡張すると、これが
これは、項の積を項の和の平方根で割った和のように見えます。これは、$p_{ij}$ で重み付けされた異なる座標をもつ 2 つのベクトル
実際、ノルムを標準偏差に関連させ、相関を角度の余弦と考えると、幾何学から得た直感の多くは、確率変数の考え方に適用できます。
概要 * 連続確率変数は、連続した値をとることができる確率変数です。離散確率変数に比べると扱いにくい技術的な難しさがあります。* 確率密度関数では、ある区間の曲線の下の領域が次の確率を見つける確率を与える関数を与えることで、連続確率変数を扱うことができます。その区間のサンプル点。* 累積分布関数は、確率変数が所定の閾値より小さいことが観測される確率です。離散変数と連続変数を統合する便利な代替視点を提供します。* 平均は確率変数の平均値です。* 分散は、確率変数とその平均の差の予想される二乗です。* 標準偏差は分散の平方根です。これは、確率変数がとる可能性のある値の範囲を測定することと考えることができます。* チェビシェフの不等式により、確率変数を含む明示的な区間を与えることで、この直感を厳格にすることができます。* 結合密度により、相関する確率変数を扱うことができます。不要な確率変数を積分して、目的の確率変数の分布を求めることで、結合密度を疎外することがあります。* 共分散と相関係数は、相関する2つの確率変数間の線形関係を測定する方法を提供します。
演習 1.$x \ge 1$ には $p(x) = \frac{1}{x^2}$ で与えられる密度の確率変数があり、それ以外の場合は $p(x) = 0$ があるとします。$P(X > 2)$って何ですか?2。ラプラス分布は、密度が $p(x = \frac{1}{2}e^{-|x|}$ で与えられる確率変数です。この関数の平均と標準偏差はどれくらいですか?ヒントとして、$\int_0^\infty xe^{-x} ; dx = 1$ と $\int_0^\infty x^2e^{-x} ; dx = 2$ を挙げて。私は通りであなたに近づき、「平均$1$、標準偏差 $2$ の確率変数があり、25\ %$ of my samples taking a value larger than $9$ を観測した」と言います。信じてくれる?なぜ、なぜそうではないのですか?4。2 つの確率変数 $X, Y$ があり、$x, y \in [0,1]$ には $p_{XY}(x, y) = 4xy$ 、それ以外の場合は $p_{XY}(x, y) = 0$ で結合密度が与えられるとします。$X$ と $Y$ の共分散は何になりますか?
:begin_tab:mxnet
Discussions
:end_tab:
:begin_tab:pytorch
Discussions
:end_tab:
:begin_tab:tensorflow
Discussions
:end_tab: