前後だけ見れば良いマルコフ連鎖とは?

うぱうぱ~!今回はマルコフ連鎖について述べます。先にマルコフ連鎖がどのような場面で使うかを知ってからマルコフ連鎖について知っていきましょう。

マルコフ連鎖の使う場面

 マルコフ連鎖は以下のような場面で有用なモデルとして使用されます。

確率的な系列データのモデリング

 マルコフ連鎖は、時間的な依存関係を持つ系列データのモデリングに適しています。例えば、自然言語処理では文章や文の生成、単語の予測などに利用されます。また、天候の変化や株価の変動、トラフィックパターンなどの時間的なパターンを予測するためにも使用されます。

マルコフ決定過程

 マルコフ連鎖の一種であるマルコフ決定過程(Markov Decision Process)は、強化学習において状態、行動、報酬の関係をモデル化するために使用されます。エージェントが状態を観測し、行動を選択することで報酬を獲得する問題に対して、最適な行動方策を見つける手法として利用されます。

サンプリングや乱数の生成

  マルコフ連鎖ランダムな系列を生成するためにも使用されます。特にマルコフ連鎖モンテカルロ法(Markov Chain Monte Carlo, MCMC)は、複雑な確率分布からのサンプリングに利用され、統計的な推論やベイズ推定などで重要な役割を果たします。

パターン認識やデータ解析

 マルコフ連鎖パターン認識やデータ解析においても応用されます。例えば、音声や画像の認識、テキストマイニング、ネットワーク解析などのタスクにおいて、マルコフ連鎖を用いた統計モデルや機械学習手法が使用されます


 このようにマルコフ連鎖機械学習やデータ解析の分野で利用されます。次はこれの正しい基礎的な理解について知ってい きましょう。

マルコフ連鎖で重要な確率過程とは

 確率過程の定義は、確率変数の時間(n回目など)と紐づいており、時間についてひとまとめにしたものです。ざっくりというと、n回目の出来事を表す確率変数を集めたものです。

マルコフ連鎖(Markov Chain)とは

 ランダムな繊維の連続的な体系を記述するための確率的なモデルです。簡単に言うと、現在の状態は一個前の過去の状態に依存し、次の状態は現在の状態にのみ依存(確率的に決定する)することを意味します。具体的な例を見ていきましょう。

 以下の状態について考えます。

 3つの状態A、Bを持つマルコフ連鎖の遷移確率行列Pを考えましょう。
P = [[0.6, 0.4],[0.7, 0.3]について考えてみましょう。
状態は状態遷移図で書くと分かりやすくなります

状態遷移図

上記は状態AからAに行く確率は0.6を表しています。

絶対に理解しておくべき定常分布

 状態遷移を繰り返していくとマルコフ連鎖は定常分布になるということが分かっています。これは回数を重ねれば重ねるほど一定の分布に変化することを意味します。この性質がマルコフ連鎖で重要です。その計算をするには、
[tex:\pi=\pi A
]になる\piを求めます。\piは行が全て同じ確率になるので分布は一行のみで十分です。

まとめ

 マルコフ連鎖は前後関係のみに依存し、最終的には定常分布になります。定常分布は計算で求めることができ、状態遷移は図を書くことでわかりやすくなるということが分かりましたか?ここでは言葉中心で残しています。

最大・最小問題を求めるラグランジュの未定乗数法とは?

うぱうぱ~!今回は最大最小問題を求めるラグランジュの未定乗数方ついて述べていきます。しかし、ラグランジュの未定乗数法は最大最小の候補を決めるだけで、その値が必ず最大最小になるかは関係がありません。候補を見つけるだけなのです。

ラグランジュの未定乗数法の問題

 ラグランジュの未定乗数法を扱う時は「最大(最小)を求める問題である」「制約条件が決まっている」という二つの条件が必要です。理論的な説明は省くので解き方について述べます。

ラグランジュの未定乗数法の解き方

 以下の問題で利用することができます。

 x^{2}+y^{2}=1のもとで、f(x,y)=2x+3yの最大値を求めよ。

 この解き方はまず、式変形をして、それぞれの変数に対して偏微分を行い、連立方程式を解いて解の候補を見つけます

まず、式を変形します。

L(x,y,λ)=2x+3y-λ(x^{2}+y^{2}-1)

次にそれぞれの変数で偏微分を行います。

\frac{\partial L}{\partial x}=2-2xλ=0
 \frac{\partial L}{\partial y}=3-2yλ=0
  \frac{\partial L}{\partial x}=-x^{2}-y^{2}+1=0

三変数の連立方程式を解けば解の候補を見つけることができます。このようにして最大値を見つけていきます。

まとめ

 ラグランジュの未定乗数法について理解はできたでしょうか?解くこと自体は難しくないので、ラグランジュの未定乗数法を使う条件である「最大・最小問題」「制約条件の存在」を忘れないように注意しましょう。

集団学習とは?その基礎

うぱうぱ~!今回は集団学習について見ていきましょう。

集団学習とは?

 集団学習とは複数の予測器を組み合わせて用いることにより予測精度を上げる手法です。簡単に言うと、人がたくさん集めてそれぞれに予測され、その平均値や多数決によって予測を決める手法となっています。集団学習のメリットは過学習を起こしにくいという点です。予測器一個に力を注ぐよりも複数の弱予測器に予測された方が精度が高くなるのです。別名、アンサンブル(ensemble)学習:ensembleとは、「一緒に、同時に」という意味を持つ。

集団学習の種類

 集団学習は種類がいくつかありますが、今回は3つ取り上げます。その3つは**バギング**、**ブースティング**、**ランダムフォレスト**です。理論の詳しい点は述べないので大枠を理解してもらえればいいと思います。

それぞれ一言でいうと、
バギング:弱予測器を並列に稼働させその結果の平均や多数決で予測する
ブースティング:弱予測器を直列に稼働させて予測する
ランダムフォレスト:決定木とバギングを組み合わせた手法

バギング

 並列に実行して平均や多数決で見つける方法である。データの選び方をブーストラップサンプリングといい、N個のデータ点からなるデータセットから新たに重複を良しとして、N個のデータを取ります。
例えばN={1,2,3,4,5}というデータに対して、新しいデータ{1,2,2,3,3}のようなデータセットになることもあります。このようにデータのサンプルを選びます。


 バギングのメリットは「バリアンス(分散)の削減」「過学習の軽減」「不均衡データへの対応」です。単一モデルはデータのランダム性によって生じるノイズや外れ値に敏感になることがありますが、バギングでは複数のモデルの平均や多数決によって予測を行うためノイズの影響を軽減することができます。

ブースティング

 すでに学習し終わった予測器において正しく分類できない学習うデータを優先的に正しく分類できるように次の予測器を構築する。弱予測器を複数組み合わせて一つの強予測器を構築するイメージです。

 ブースティングのメリットは「バイアス(平均値のずれ)の削減」「バリアンスの低減」「ノイズの除去」「データセットの利用効率の向上」です。ブースティングは、個々の弱い学習器が前の学習器の誤分類に焦点を当てて学習するため、バイアスの削減に効果があります。各学習器は前の学習器の誤りを補完し、結果としてより正確な予測モデルを構築することができます。

ランダムフォレスト

 ランダムフォレストは、決定木とバギングを組み合わせた手法であり、ブーストラップサンプリングによって複数のデータセットを作成し、次に特徴量をランダムに選択します。そして同じように決定木を複数作成して、多数決や平均から予測値を決定する。

 これらのメリットは、「高い予測性能」「過剰適合の低減」「外れ値への強さ」「特徴量の重要度の評価」です。ランダムフォレストは複数の決定木を組み合わせることで、個々の決定木の弱点を補完し、高い予測性能を実現します。複数の決定木が独立して学習し、予測結果を組み合わせることで、より正確な予測が可能となります。ランダムフォレストは、ブートストラップサンプリングと特徴量のランダム化により、モデルのバリアンスを低減します。ブートストラップサンプリングによって異なるデータセットが作成され、特徴量のランダム化によって各決定木が異なる特徴量に焦点を当てることで、過学習のリスクを抑えながらモデルの汎化性能を向上させます。

まとめ

 集団学習は複数の予測器を使うことで予測精度が上がります。今回紹介したもの以外にも手法は多くあります。また同じ集団学習でも平均のずれを改善するのか、分散のずれを改善するのかなど目的が異なります。正しく理解して使っていきましょう。

自由度ってなに?

うぱうぱ~!今日は自由度(degree of freedom)について述べるよ!自由度っていわれても説明するのは難しいと思います。それを述べていきます。

自由度とは

 自由度は一言でいうと、データセットや統計モデルにおいてパラメータの独立な情報の数を表しています。複雑なのでもう少し簡単に言うと、「自由に決めることができるデータの数」のことです。

例えば、データが{1,2,3,4,5}の自由度は5つです。しかし、{1,2,3,4,〇}のデータで平均が3の場合は〇は自由に決めることができず、〇は5と決められます。このように平均が分かっている場合は自由度はn-1となってしまいます。


データセットのサイズが小さく、自由度の低い場合、データセットの特徴を限定的に表現するため、もでるは単純なモデルとなります。モデルの予測能力は低くなる可能性があります。つまりモデルはバイアスが高い傾向にあります。


データセットのサイズが大きく自由度が高い場合、データセットの塔区長より詳細にとらえるためモデルは複雑なモデルとなります。データにより柔軟に対応できるため、バイアスの低い傾向にあります。しかし、データセット内のノイズや外れ値による影響も受けやすく、過学習のリスクも高まります。

自由度の分かりやすい認識方法

自由度についてまだ分からない人に対して、自由度についてもう少し分かりやすく述べます。自由度で認識が難しいのは「どんな」自由度かわかっていないからです。計算するための自由度なのか、標本分散に対する自由度なのか、それが明確になっていない方です。

例えば、標本平均を求める時は、
 \overline{x}=\dfrac{\sum_{i=1}^{n}x_{i}}{n}
となり、平均値の自由度nで割っています。

次に、標本分散を求める時は
s^{2}=\dfrac{\sum{(x_{i}-\overline{x})^{2}}}{n-1}
となり、標本分散の自由度n-1で割っています。

なぜ、平均はnで標本分散はn-1になるかというと、標本分散で使われる平均の情報が自由度に影響を与えるからです。その証拠に、\sum_{i=1}^{n}(x_{i}-\overline{x})は0となってしまい、平均にも情報が残っていることが分かります。

まとめ

自由度は理解が難しく、なにも考えずに使っていることが多いと思います。それを理解するために「パラメータの独立な情報の数」と認識しておき、それがなぜ重要なのかを知っておく必要があります。標本分散がn-1で割るのはその計算に平均が使われるからであると覚えておいて欲しいです。

ベイズ識別規則と識別関数法

うぱうぱ~!

今回は機械学習の一部であるベイズ識別について話します。ベイズ識別は「教師あり学習」に用いられます。ベイズ識別は事前知識(事前確率)とデータ(尤度)を組み合わせることで事後確率を推定します。これにより新しいデータのクラスを予測することが可能になります。

パターン認識では、「識別関数法」は重要な概念になります。その識別関数法を構築するのがベイズ識別となっています。なのでこれらの関係について見ていきましょう。

  • 識別関数法とは?
  • ベイズ識別とは?損失関数とは?
  • 識別関数法とベイズ識別の関係

識別関数法とは?

事前知識として、c_{1},c_{2},…,c_{M}に対して、ある関数g_{1}(x),g_{2}(x),…,g_{M}(x)を対応させる。これはそれぞれのクラスにおいて関数を設定し、入力データを直接的に識別するための関数を学習し、その関数を用いてデータの分類や認識を行います。つまり、

識別関数は入力データの特徴を抽出し、それに基づいて各クラスに対する識別スコア(確率)を計算します。

このスコアから最も大きかったものにクラスを分類することを識別関数法といいます。

具体例を示します。ある入力データxに対して、g_{1}(x)=0.2,g_{2}(x)=0.7だとする。この際、最も識別関数の出力が大きいクラスに判別するので今回はクラス2に分類することになります。

ベイズ識別関数とは?損失関数とは?

ベイズ識別には損失関数があります。損失関数とは、クラスを間違えたときの損失の値のことです。

損失関数

 l(c,c'):クラスc'をcと謝ったときに生じる損失

この損失がなるべく少ない方がいいのは分かると思いますが、ここに平均損失という考えをします。平均損失とは損失に対して確率分布を当てはめることをいいます。

平均損失

L(c|x)=\sum{l(c,c')P(c'|x)}

P(c'|x)はある入力データxの条件の下で、クラスc'が発生する確率を示しています。

また、ベイズの定理は

P(c|x)=\frac{p(x|c)P(c)}{p(x)}と表すことができます。

ベイズ識別関数とはベイズの定理を用いてデータの分類や識別を行うための関数です。ベイズの識別関数は入力データの特徴を元に各クラスの事後確率を推定しそれに基づいてデータを分類するための決定境界を定義します。

識別関数とベイズ識別の関係

識別関数は

g_{i}(x)=p(x|c_{i})P(c_{i})
g_{i}(x)=logp(x|c_{i})+logP(c_{i})
と定義した識別関数法=事後確率最大のベイズ識別です。後はP(c|x)もしくはp(x|c)が推定で切ればパータン認識の問題はベイズ識別で解決できます。

ここで特徴ベクトルを正規分布と仮定すると、各クラスを判別する識別境界は二次関数となります。また分散共分散行列が同じ二次元正規分布の場合の識別境界は直線となります。

まとめると

識別関数はクラスごとにあり、入力値に対して最も大きい出力結果を該当クラスとします。またベイズ識別は損失関数を最小に使用とし、ベイズ識別と識別関数は関係しています。識別関数は損失関数を持ち、その最小化を行い関数を設定している。そして入力値を与えたときに識別を行います。もう一度いいますが、これは教師あり学習に利用されます。

React-three-fiberの始め方

うぱうぱ~!

今回はReact-three-fiberのドキュメントについて話すよ!

公式ドキュメント

これはインストールから細かい使い方例題まで乗っており、とても便利です!自分は例題をみて面白そうなものを実装しています。

始める際はこれをしっかりみて勉強しています。今後もどんどん載せていきますが、ドキュメントの説明に沿っていくのでぜひ見てください!

React-three-fiberの例題

正規分布の確率密度関数の式はなぜ難しいのか?

 

うぱうぱ~!

本日は正規分布の確率密度の式である、

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

の謎について解いていく。

最初観たときなにてしるの?と思ったけど、統計において重要なので覚えていきましょう!

\muは統計における母平均であり、\sigmaは統計における母標準偏差である。\sigma^{2}は母分散である。

正規分布の確率密度に欲しい条件

正規分布の確率密度の式を特にはこれに必要な条件を満たす必要がある。それが、

  • (1)0を中心に左右対称である
  • (2)左右は急速に0に漸近する
  • (3)正規分布の確率密度面積は「1」である

この条件を満たすことで正規分布の確率密度となる。

(1)(2)の条件を満たすためにf(x)=a^{-x^{2}}があげられる。この式はf(x)=1であり、∞や-∞に飛ばすと0となる。また左右対称である。ここでこれを積分すると

A=log{a}とおき、ネイピア数を使って
f(x)=a^{-x^{2}}=e^{-x^{2}log{a}}=e^{-Ax^{2}}とおいて、積分を行う。

\displaystyle \int_{-∞}^{∞}e^{-Ax^{2}}dx=\sqrt{\frac{\pi}{A}} (A=log{a})

となる。ネイピア数を利用したのは、微分積分しても変化しないからである。

(3)の条件を満たすために積分して出た定数の逆数をかけると


f(x)=\sqrt{\frac{A}{\pi}}e^{Ax^{2}}

となる。ここでa=\sqrt{e}とする。

f(x)=\frac{1}{\sqrt{2\pi}}e^{-\frac{x^{2}}{2}}
となる。これが標準正規分布である。

次に正規化していない値にも上の式が使えすようにz=\frac{x-\mu}{\sigma}と代入して積分をし直す。そして定数の逆数をかける。そうすることで、

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

正規分布を得ることができる。

まとめると

正規分布には条件が三つ必要である。その条件のために形を変形させたのが標準正規分布である。さらにそれを正規化するためにデータに正規化を行って代入をする。そうすると正規分布を得ることができる。式が三つの条件を満たす最適式であることが分かりましたね。

読んでくれてありがとう!