オムライスの備忘録

数学・統計学・機械学習・プログラミングに関することを記す

【統計学】確率

この記事の読者


統計学の基礎となる「確率」について知りたい



キーワード・知ってると理解がしやすい

  • 事象
  • 場合の数、順列、組み合わせ
  • 極限
  • 測度論



Index

確率の定義

確率とは、事象の起こりやすさを定量的に示すもので
事象Aのおこる確率をprobability の頭文字をとって P(A) で表します

では、確率とはいったいどのようなものであるかという点について3つの立場の定義を記していきます

ラプラスの定義

初期の確率論はさいころ、カードなどを使った賭けのゲームや保険といったものと関連して発生し、パスカル・ベルヌーイ・ベイズなどの多くの学者の 手によって発展したが、これらはラプラス(1749 ~ 1827)によってまとめられました

ラプラスによる確率の定義は単純明快であり、

試行の事象が全部でN個あって、それらは同程度に確からしとする. このとき、一つの事象 A にとって都合のよいような事象の数が R 個あれば、 事象 A の確率は
P(A)\ =\ \frac{R}{N}
と定義される


というものであります

この定義の最大の利点は、確率が標本の個数、つまり、起こり方の場合の数の数え上げに帰することであり、 順列、組み合わせの諸定理が使えることです. ここで問題となるのは、各標本点が「同程度に確からしく」起ると仮定していることです. 例えば、さいころ投げの場合は、1 ~ 6 の目が同じ程度の確かさで出現すると仮定しているが、 これがはたして本当に正しいかどうかは証明したわけではありません. しかしながら、さいころとはそうゆうものであるからという理由で、われわれは1 ~ 6 までの目が同程度の確かさで、出現すると信じるしかないのです. これを、一般に理由不十分の原則といいます.

頻度主義の定義

ラプラスの定義は、さいころやカードを使ったゲームやくじ引きといったものに対しては有益であるが、 各標本点が「同程度に確からしく」起りやすいと考えられない場合には用いることができません. これより実際的な定義が、頻度による確率の定義、確率の頻度説であります

さいころを何100回もなげ、1が出た回数(頻度)を数えて、その割合(相対頻度)を記録するという実験をを考えます.

いま投げる回数を n 回とすると、 n \rightarrow \infty のとき
 \displaystyle \frac{n_1}{n}\ \rightarrow\ \frac{1}{6}
となることが予想される
このように、一般に事象 A を生み得る実験を n 回繰返して A が n_A 回出るとすると、 n \rightarrow \infty のとき、
 \displaystyle \frac{n_A}{n}\ \rightarrow\ \alpha
となるならば、 P(A)\ =\ \alpha と定義される


相対頻度  \displaystyle \frac{n_A}{n} の極限による確率のこの定義が、確率の頻度説です

しかしながら、この定義も完全なものではありません. 極限への収束は無限に試行を続けてはじめて確認されるものであるからです. また、仮にそれが可能としても、実験を行うごとに値 \alpha が同じという保証はありません. したがって、頻度説も理論上の仮定の上に成り立っているのです.

確率の公理主義的定義

上の2つの定義にはそれぞれ理論的に不完全な部分があるため、いずれも、理論的に完全ではありません.

  • ラプラスの定義
    • 「同程度に確からしい」という点の仮定が必要
  • 頻度主義の定義
    • 極限への収束が必要


数学者 コルモゴフ の確率の公理主義的定義は、「確率」を公理として定義することにより、上のような困難を避けることに成功しました

  • すべての事象 A に対して  0\ \leq\ P(A)\ \leq\ 1
  •  P(\Omega)\ =\ 1
  • 互いに排反は事象  A_1,\ A_2,\ A_3,\ \cdots に対して、
    P(A_1 \cup A_2 \cup A_3 \cup \cdots)\ =\ P(A_1)\ +\ P(A_2)\ +\ P(A_3)\ +\ \cdots


この公理は、あくまでも数学的なモデルのためのものであるが、この公理とそれに基づく確率論は ラプラスの定義や頻度的確率の性質などがその背景になっており、これらを体系的に表すことを目的としてます (特に最後の項目は、「確率」がある特別の種類の測度であることを要請したものです)

ベイズ主義の定義 (主観確率)

ラプラスの定義」や「頻度主義の定義」では、ある事象 A の起る確率 P(A) を同程度の確かさで起ると仮定したり、 生起回数の相対頻度から求めたりしたが、これはだれが計算しても同一の値であり、客観的に決定されます. これを客観説の立場と呼びます.

これに対して、研究者が主観的にある確率を与えて分析を行う方法がある. この方法では与えられる確率は研究者の 得られる情報、知識、経験などによって異なる可能性があり、主観確率と呼ばれます. この主観確率はまだ起こっていない事象の分析も可能になるなどの利点も多くあります. この主観確率に基づく統計分析は、ベイズ統計学と呼ばれます.

このベイズ統計学については、ベイズの定理でまとめてみます

パターン認識における確率論

パターン認識の分野における重要な概念は不確実性です. これは計測ノイズやデータ集合のサイズが有限であることによって起きます. 確率論は不確実性に関する定量化と操作に関して一貫した枠組みを与え、パターン認識の基礎の中心を担っています. また、決定理論と組み合わせることにより与えられた情報が不完全で曖昧なものであっても、 そのすべての情報の下で最適な予測をすることが可能になります.

まとめ

  • 確率は大きく分けると2種類の考え方がある
  • それぞれの考え方は、統計解析をする場面で適用方法を分けて利用することで、利用シーンが広がる

参考

統計学入門 (基礎統計学Ⅰ)

統計学入門 (基礎統計学Ⅰ)

  • 発売日: 1991/07/09
  • メディア: 単行本

パターン認識と機械学習 上

パターン認識と機械学習 上

【機械学習】パーセプトロン #アルゴリズム編

この記事の読者


深層学習・ディープラーニングアルゴリズムの基礎となる
パーセプトロン」について知りたい。



キーワード・知ってると理解がしやすい

  • 行列演算
  • 集合



Index

パーセプトロンとは

パーセプトロン( Perceptron ) は、1957年にローゼンブラット(Rosenblatt)というアメリカの研究者によって考案され、
ニューラルネットワークの起源となるアルゴリズムのようです

複数の信号を入力として、ひとつの信号を出力するアルゴリズムになりますが、
ここでの「信号」は電流や川のような「流れ」をイメージするのが良いと思います
出力は、後続の信号を先に「流す / 流さないか (1 / 0)」 の二値です

分類問題としては、二値分類となります

パーセプトロン

アルゴリズム Algorithm

上図は以下の場合のパーセプトロンになります

  • 入力 : x1、x2
  • 出力 : y

(図中の○は「ニューロン」や「ノード」と呼ばれるもの)

重み Weight

図中のw1、w2は重みパラメータと呼ばれ、入力に乗算します
このパラメータが更新されることで出力が変更されます

各入力の信号の重要性をコントロールする要素です
つまり、重みが大きくなるほど、その重みに対応する信号の重要性が高くなる
(w は weight)


閾値 Threshold

各入力 x に対応する重み w を乗算した値の総和を 中間出力 h としたときに、
h と比較する値
最初に決定しておくパラメータなので、ハイパーパラメータになります


出力 Output

各入力 x に対応する重み w を乗算した値の総和を 中間出力 h としたときに、
h が閾値  \theta を超えか超えないかによって出力 y を決定します


  h\ =\ w_{1}x_{1}\ +\ w_{2}x_{2}


行列で表現するとこのようなかんじです


  h\ =\ \textbf{w}^{T}\ \textbf{x}



 
\textbf{w}\ =\ 
\left(
    \begin{array}{c}
      w_1 \\
      w_2 \\
    \end{array}
\right),\ 

\textbf{x}\ =\ 
\left(
    \begin{array}{c}
      x_1 \\
      x_2 \\
    \end{array}
\right)

定式化 Formulation

上図の例だと、以下の式になります


y\ =
  \left\{
    \begin{array}{l}
      0\ \ (w_{1}x_{1}\ +\ w_{2}x_{2}\ \leq\ \theta) \\
      1\ \ (w_{1}x_{1}\ +\ w_{2}x_{2}\ \gt\ \theta)
    \end{array}
  \right.


(0 ではなく、-1とすることで都合が良いケースもある)

一般化 Generalization

入力ベクトル  \textbf{x}、重みベクトル \textbf{w}^{T}、出力 y としたとき


y(\textbf{x})\ =\ f(\ \textbf{w}^{T}\ \phi(\textbf{x})\ )


 \phi(\textbf{x}) は特徴量ベクトル、 f非線形活性化関数 のステップ関数

最適化 Optimization

重みパラメータw をどのように更新して、最適化するのか

パーセプトロン規準

以下のような誤差関数を設けます
(ここで、誤差関数とはパラメータを最適化するために設定する指標として考えます)


E(\textbf{x},\ \textbf{w}) = \textbf{w}^{T}\ \phi( \textbf{x} )


そこでクラス  C_1とクラス  C_2 の2クラスを考えます

  • 各クラスは入力ベクトル  \textbf{x} の集合 ( \textbf{x}\ \in\ C_1,\ \textbf{x}\ \in\ C_2)
  • クラス  C_1 は出力を 1 として出力するべきクラス、クラス  C_2 は出力を -1 として出力するべきクラス


クラス C_1 に属する  \textbf{x} に対する誤差  E(\textbf{x}, \textbf{w}) E(\textbf{x}, \textbf{w}) > 0 となるように、
クラス C_2 に属する  \textbf{x} に対する誤差  E(\textbf{x}, \textbf{w}) E(\textbf{x}, \textbf{w}) \lt 0 となるように
 \textbf{w} を更新するとします



このように考えると、誤差関数はこのようにも表せます


E_{p}(\textbf{w}) = - \displaystyle \sum_{n \in M}\ \textbf{w}^{T}\ \phi_{n}\ t_{n}
  •  \phi_n\ =\ \phi(\textbf{x}_n)
  • M は誤分類された入力ベクトル \textbf{x}の集合
  •  t\ \in \{1, -1 \}


これの誤差関数をパーセプトロン規準と呼びます

確率的勾配降下法

上で定義した誤差関数を、確率的勾配降下法で、 \textbf{w}を最適化します

まとめ

  • いくつかの入力 x に対して、信号を流すかどうかを決定する
  • 重みパラメータと、予め決めた閾値  \theta によって出力 y が決定する
  • 重みパラメータが更新されることで、出力 y の精度を向上させる

参考

ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装

ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装

  • 作者:斎藤 康毅
  • 発売日: 2016/09/24
  • メディア: 単行本(ソフトカバー)

パターン認識と機械学習 上

パターン認識と機械学習 上

【スタイル変換】pix2pix

  • こんな方におすすめ

深層学習・ディープラーニングの手法として使われている「pix2pix」の基本的な内容について知りたい。



この記事では、pix2pixの基礎概念のまとめを行います。

「これから、機械学習ディープラーニングの学習をしたいから、その基本となるpix2pixの理解を深めたい」という方に向けた記事になります。



  • キーワード・知ってると理解がしやすい
    • Conditional GAN

目次



以前、Cycle GAN をまとめてみましたが、同じ「スタイル変換」の手法で、同時期に発表された「pix2pix」があります。
Cycle GAN とよく比較されるのをみるので、まとめてみたいと思います。

yhayato1320.hatenablog.com

pix2pix とは

CVPR 2017 で発表された論文「Image-to-Image Translation with Conditional Adversarial Networks」で提案された手法。
タスクとしては、「画像のスタイル変換」に位置する。
論文のタイトルの通り「Conditional GAN」の一種、テクニック。

yhayato1320.hatenablog.com



pix2pix_paper

構成

通常の GAN 同様、Generator と Discriminator で構成されております。

構成

Generator

Conditional GAN では、ラベル情報と画像情報を入力として、画像を出力します。
(mnist でしたら、「1」の画像と「1」というラベル情報を Generator に入力し、「1」の生成画像を出力させます。)

ネットワークアーキテクチャは、論文ではU-Net が使われております。
(Image-to-Image のアーキテクチャなら色々試す価値ありそうですね、ResNet とか)

Discriminator

Patch GAN と呼ばれる Discriminator のアーキテクチャが紹介されてます。

yhayato1320.hatenablog.com

Loss

主に2つの項目で構成されてます。

  • Adversarial Loss
    • 通常のGAN と同様
  • ラベル画像と生成画像の差分 (L1 ノルム)
    • 生成される画像がラベル画像とかけ離れないようにするため

まとめ

  • Conditional GAN のラベル情報を画像として適応することで、画像のスタイル変換を可能に
  • Generator は、入力をラベル画像とノイズ(潜在変数)として、生成画像を出力する
  • Discriminator は、ラベル画像情報と共に生成画像を入力し、本物 or 偽物を判断する
  • 最適化する Loss は、2つで「Adversarial Loss」と「生成画像の妥当性」

参考

元論文 arxiv.org

blog.negativemind.com

f:id:yhayato1320:20210327223009j:plain

【深層学習】Conditional GAN

  • こんな方におすすめ

深層学習・ディープラーニングの手法として使われている「Conditional GAN」の基本的な内容について知りたい。



この記事では、Conditional GANの基礎概念のまとめを行います。

「これから、機械学習ディープラーニングの学習をしたいから、その基本となるConditional GANの理解を深めたい」という方に向けた記事になります。



  • キーワード・知ってると理解がしやすい
    • GAN

目次

Conditional GAN とは

2014年にarXivで公開された論文
条件付きGANという意味合いで、GANアーキテクチャの応用です。
元論文は「Conditional Generative Adversarial Nets

GANについての記事はこちらです。

yhayato1320.hatenablog.com

構成要素

オリジナルのGANと同様、Generator と Discriminator の2つで構成されています。
大きな違いとしては、入力の情報としてラベル情報も含まれるという点です。
以下、ネットワークアークティックです。

アーキテクチャ

Generator

  • 入力1 : ノイズ
  • 入力2 : ラベル情報
  • 出力 : 画像


ノイズベクトルとラベル情報の連結の方法の1つとしては、
ラベル情報をone-hotベクトルとして連結する方法があります。

ノイズベクトルが100次元、ラベルの種類が10種類だとすると、入力は110次元のベクトルになります。

Discriminator

  • 入力1 : 画像 (本物画像 or 偽物画像)
  • 入力2 : ラベル情報
  • 本物である確率値


画像とラベル情報の連結の方法の1つとしては、
ラベル情報を画像サイズのone-hot ベクトル形式として連結する方法です。

画像のサイズが(256 x 256 x 3)で、ラベルの種類が10種類だとすると
(256 x 256 x 10)のテンサーを用意して、対応するラベルの行列の値を1、その他の行列を0に設定します。
その後、画像と連結することで(256 x 256 x 13)のテンサーを入力とする方法です。

mnist の画像を例として考えます。

オリジナルのGANのでは、以下のように作用。

  • Generator は、ノイズから0 ~ 9のどれかの画像を生成
  • Discriminator は、mnistの画像かどうかを判別



対して、Conditional GAN では、以下のように作用。

  • Generator は、ノイズとラベル情報からラベルに対応する画像を生成
  • Discriminator は、ラベル情報をもとにmnistの画像かどうかを判別

まとめ

参考

qiita.com blog.negativemind.com

f:id:yhayato1320:20210327223009j:plain

【統計学】確率変数と確率分布

  • こんな方におすすめ

    統計学機械学習でも必要な「確率変数」と「確率分布」の基本的な内容について知りたい。



この記事では、確率の基礎概念のまとめを行います。

「これから、機械学習ディープラーニングの学習をしたいから、その基本となる確率の理解を深めたい」という方に向けた記事になります。



  • キーワード・知ってると理解がしやすい
    • 確率

目次

確率変数とは

確率的に変動する変数。
さらにいうと、とる値に対してそれぞれ確率が与えられている変数。
(あくまで、変数ですね)

よく例として使われるのは、サイコロなのでサイコロを考えます。
しかし、このサイコロには細工がされていて、通常のサイコロと出る確率は異なります。



1 2 3 4 5 6
確率 1/12 2/12 3/12 3/12 2/12 1/12



表記

上の例を使って表記方法を記します。

例で、確率が与えられている値はサイコロの目になるので、
確率変数はサイコロの目になります。(1 ~ 6)

サイコロの目を確率変数 X とおきます。(確率変数は大文字を使うことが多いそう)
X=1のときの確率は以下のように表記します。


\displaystyle{
P(X=1)\ =\ \frac{1}{6}
}



確率変数は2つの条件を持っています。
(逆に言えば、この条件を満たしていない場合、確率変数とは言えないのですね)

  1. すべての確率変数の各確率は 0 以上 (p \ge 0)
  2. すべての確率変数の各確率の合計は 1 になる ( p_1\ +\ p_2\ +\ \cdots\ +\ p_6\ =\ 1)

確率分布とは

各確率変数の各確率のことを確率分布といいます。

表記

例の確率分布を定式化する前に、例のサイコロの確率分布をグラフで表現します。





サイコロの目の確率分布を可視化したところで定式化します。


P(X\ =\ x_{k})\ =\ f(x_{k})\ =
  \left\{
    \begin{array}{l}
      \frac{1}{12}\ (x_{k}=1のとき) \\
      \frac{2}{12}\ (x_{k}=2のとき) \\
      \frac{3}{12}\ (x_{k}=3のとき) \\
      \frac{3}{12}\ (x_{k}=4のとき) \\
      \frac{2}{12}\ (x_{k}=5のとき) \\
      \frac{1}{12}\ (x_{k}=6のとき)
    \end{array}
  \right.



それぞれの値の確率が、確率変数 X の確率分布となります。

離散型と連続型

確率分布は2種類あります。
確率変数が離散値の場合、その確率分布は離散型となり、
確率変数が連続値の場合、その確率分布は連続型となります。

確率密度関数と累積分布関数

確率変数と確率分布について書いたので、「確率密度関数」と「積分布関数」についても記述します。

確率密度関数は上式では関数 f をさします。

ここで、先ほどの確率分布を考えます。
サイコロを振って、「2」~「4」がでる確率は、


\ \ \ \ \ P(X=2) + P(X=3) + P(X=4) \\
=\ f(2)\ +\ f(3)\ +\ f(4) \\
=\ \frac{2}{12}\ +\ \frac{3}{12}\ +\ \frac{3}{12}\ =\ \frac{8}{12}

となります。

ここで、上式はこのようにも書けます。


P(2 \leq X \leq 4)\ =\ \displaystyle \sum_{n=2}^{4}\ f(n)

このように確率密度関数を足し合わせた(累積)関数を積分布関数といい、以下のように定式化します。


F(x)\ =\ P(X \leq x)

まとめ

  • 確率変数 : 確率的に変動する変数
  • 確率分布 : 確率変数の各確率
  • 確率密度関数 : 確率変数 の確率を表現した関数
  • 積分布関数 : 確率密度関数を足し合わせた(累積)関数

参考

  • 統計学入門 / 5.1 確率変数と確率分布

統計学入門 (基礎統計学Ⅰ)

統計学入門 (基礎統計学Ⅰ)

  • 発売日: 1991/07/09
  • メディア: 単行本

【スタイル変換】CycleGAN

  • こんな方におすすめ

深層学習・ディープラーニングでも必要な「CycleGAN」の基本的な内容について知りたい。



この記事では、CycleGANの基礎概念のまとめを行います。

「これから、機械学習ディープラーニングの学習をしたいから、その基本となるCycleGANの理解を深めたい」という方に向けた記事になります。



  • キーワード・知ってると理解がしやすい
    • GAN
    • ResNet / U-Net
    • FCN (Fully Convolutional Network)
    • Patch GAN

目次

CycleGAN とは

GAN については別の記事にてまとめてます。

yhayato1320.hatenablog.com

構成要素

Cycle GAN は、通常のGAN 同様 Generator と Discriminator の2つで構成されてます。
しかし、通常のGAN と異なる点は、Generator と Discriminator が 2つずつあることです。






  • Discriminator :


それぞれのネットワークのアーキテクチャにおけるポイントを記していきます。

Generator

  • 入力 : 画像 (どちらかのドメインの画像)
  • 出力 : 画像 (変換後の画像)
  • アーキテクチャ
    • 元論文では、ResNet ですが参考にした書籍では U-Net も1つの手法として挙げられてました
  • 役割

Discriminator

  • 入力 : 画像 (あるドメインの画像 or あるドメインに変換された画像)
  • 出力 : 画像 (16 x 16 x 1 の画像、各ピクセルにはどれだけそのドメインであるかを推定した値が含まれている)
  • アーキテクチャ
    • FCN (Fully Convolutional Network) : 画像をダウンサンプリングしていく
    • 最終的な出力は、画像のように行列で、値は各場における本物である確率(Patch GAN と呼ばれている Discriminator の工夫)

yhayato1320.hatenablog.com

Normalization

Cycle GAN の Normalizationには、Batch Normalization ではなく、Instance Normalization を採用している



Loss

最適化するためのロスは6つ (3 種類 x 2パターン)

  • Discriminator / Generator

    1. Discriminator の識別に対するロス (= adversarial loss)
  • Generator

    1. 入力画像 (A) と 再変換した画像 (A -> B -> A) の差分
    2. 入力画像 (A) と 同スタイルに変換した画像 (A -> A) の差分

この3種類のロスに対して、加重平均をとった値を全体的なロスとします。

まとめ

この記事では、以下の点をまとめました。

  • Cycle GANの基本的な構成
  • ネットワークアーキテクチャの工夫
    • Generator : ResNet (or U-Net)
    • Discriminator : Patch GAN
    • Normalization : Instance Normalization

参考

生成 Deep Learning ―絵を描き、物語や音楽を作り、ゲームをプレイする

生成 Deep Learning ―絵を描き、物語や音楽を作り、ゲームをプレイする

  • 作者:David Foster
  • 発売日: 2020/10/05
  • メディア: 単行本(ソフトカバー)

【深層学習】Generative Adversarial Network (GAN) #アーキテクチャ編

  • こんな方におすすめ

深層学習・ディープラーニングでも必要な「Generative Adversarial Network : GAN」の基本的な内容について知りたい。



この記事では、Generative Adversarial Network : GANの基礎概念のまとめを行います。

「これから、機械学習ディープラーニングの学習をしたいから、その基本となるGenerative Adversarial Network : GANの理解を深めたい」という方に向けた記事になります。



目次

Generative Adversarial Network : GANとは

Generator (生成器)」 と 「Discriminator (識別器)」の2つのニューラルネットワーク
相互に学習することにより、「質の良いデータの生成」と「精度の高い識別」を可能にする機構です。

GAN構造

GAN の理解にはGenerator と Discriminator の理解が必要になるようです。

Generator

Generator はノイズベクトルを入力とし、データ(データセットによって変わります)を出力とします。

Discriminator

Discriminator の役割はデータが本物か偽物(生成されたデータ)かどうかを判断します。
入力はデータ(データセットによって変わります)で、出力は分類結果のニューラルネットワークです。

まとめ

Generative Adversarial Network : GAN は Generator (生成器) と Discriminator (識別器)の2つのニューラルネットワークで構成されている。
Generator はデータを生成し、Discriminator はデータの真偽を見破る役割を担っている。
相互に学習することで、データの生成と識別の精度を向上させていく。

参考

生成 Deep Learning ―絵を描き、物語や音楽を作り、ゲームをプレイする

生成 Deep Learning ―絵を描き、物語や音楽を作り、ゲームをプレイする

  • 作者:David Foster
  • 発売日: 2020/10/05
  • メディア: 単行本(ソフトカバー)