機械学習における確率的アプローチ
概要
確率的生成モデルとは、現実世界のデータに関して、そのデータを生成するしくみ(モデル)がバックにいると考え、更にそのデータが決定論的に厳密に生成されるのではなく、あるバラつきや揺らぎを持って生成されると考えるものとなる。 これを数学的に表現すると以下のようなシンプルな定義となる。
<確率的生成モデルの定義> データXは、確率密度分布p(x)に従って生成される・
これに対して、具体的なデータ群Xを使ってp(X)を推定するものが確率的生成モデルの機械学習の原理となる。このp(x)を求めるためには、ある特徴量mを考えた時、mの生起確立をp(m)、mの時にサンプルの属性値がxである確率をp(x|m)としたときp(x|m)p(m)を最大とするものを求めれば良い。 深層学習に代表される一般的な機械学習技術が特徴量変数の組み合わせから一つの答えを得るものなのに対して、確率生成モデルでは確率的な複数の答えを解として持つことを特徴とする。そのためこれらを用いることで、より複雑な人工知能システムを構築することができる。本ブログではそれら確率的生成モデルに対して、理論のベースとなるベイズ推定とそれらの応用について、以下のように述べる。
実装
不確実性と機械学習技術
不確実性と機械学習技術
不確実性と機械学習技術。不確実性(Uncertainty)とは、将来の出来事や結果が予測しにくい、不明確な状態や情報のことを指し、我々が持つ知識や情報の限界によって引き起こされるものであり、完全な情報や確信を持つことが難しい状態を表す。不確実性を取り扱うために、確率論や統計学などの数学的手法やモデルが使われる。これらの手法は、不確実性を数値化したり、リスクを最小化したりするために重要なツールとなる。
ここではこの不確実性を扱う為の確率理論と様々な実装について述べている。
ガウス的世界と非ガウス的な世界のモデリング
ガウス的世界と非ガウス的な世界のモデリング。”機械学習における確率的アプローチ“でも述べている機械学習の確率的アプローチでは、ガウス分布から出発した様々な確率分布を用いて計算が行われている。このガウス分布(正規分布)は、カール・フリードリヒ・ガウス(Carl Friedrich Gauss) にちなんで名付けられたものだが、実は以下のように「最初に発見した」のはガウスではないと言われている。
確率の哲学的視点と不確実性のAIによる解決
確率の哲学的視点と不確実性のAIによる解決。現実世界の問題を確率から解くことを考えると、予測と不確実性という視点が最も重要なものとなる。この不確実性とAI技術は密接に関連しており、AIが不確実な環境での意思決定をどのように扱うかは、AIの設計や応用において重要なテーマとなっている。不確実性は、未来の結果が完全に予測できないことを意味し、AIがその不確実性をどのように処理するかが、さまざまな技術的アプローチに影響を与える。
揺らぎとその応用
揺らぎとその応用。「揺らぎ」とは、一般にわずかに動いて定まらない状態や、小さな変化を繰り返して安定しない様子を指す言葉になる。たとえば、「炎の揺らぎ」や「音の揺らぎ」など、物理的に微細な動きを伴う現象を示すほか、「心の揺らぎ」「価格の揺らぎ」といったように、心理的・社会的な不安定さや変動にも用いられる。また、物理学の分野では、揺らぎは熱運動や量子力学などにおける一時的・確率的な微小変動を意味し、規則的なパターンの中に自然に生じる乱れやゆれを表す重要な概念とされている。
量子もつれと共分散
量子もつれと共分散。量子もつれは、2つ以上の粒子が非常に強く結びついた状態であり、空間的にどれだけ離れていても、互いの状態が瞬時に相関する現象となる。
エピステミック不確実性とAIによる補完
エピステミック不確実性とAIによる補完。エピステミック不確実性(Epistemic Uncertainty)は、知識や情報の不足、または不完全性から生じる不確実性を指し、ある事象やシステムについての理解が不十分であるために発生し、その不確実性は、より多くの情報を取得したり、既存の知識を深めたりすることで減少させることができるものとなる。
アレアティック不確実性とAIによる解決について
アレアティック不確実性とAIによる解決について。アレアティック不確実性(Aleatory Uncertainty)とは、主に自然現象や確率的な変動に起因する不確実性を指すものとなる。この種類の不確実性は、本質的にランダムで制御できないものであり、確率的モデルを用いて表現されることが多い。これは例えば、気象条件やサイコロを振る際の出目などが該当する。
Negative Log-Likelihoodの概要とアルゴリズム及び実装例
Negative Log-Likelihoodの概要とアルゴリズム及び実装例。Negative Log-Likelihood (NLL)は、統計学や機械学習においてモデルのパラメータを最適化するための損失関数の一つで、特に、確率分布に基づいたモデル(分類モデルなど)で使われることが多いものとなる。NLLは、観測データがモデルによって予測された確率に基づいて、モデルのパフォーマンスを評価する指標であり、その目的は、モデルが観測されたデータを高い確率で説明できるように、モデルのパラメータを最適化することにある。
Contrastive Divergence (CD)の概要とアルゴリズム及び実装例
Contrastive Divergence (CD)の概要とアルゴリズム及び実装例。Contrastive Divergence (CD)は、主に制限付きボルツマンマシン(RBM)のトレーニングに使用される学習アルゴリズムで、データの確率分布をモデル化するための生成モデルであり、CDはそのパラメータを効率的に学習するための手法となる。
Noise Contrastive Estimation (NCE)の概要とアルゴリズム及び実装例
Noise Contrastive Estimation (NCE)の概要とアルゴリズム及び実装例。Noise Contrastive Estimation (NCE) は、確率モデルのパラメータを推定するための手法であり、特に大規模データセットや高次元データの処理において有効なアプローチとなる。NCEは、確率分布の推定を効率的に行うために、ノイズとデータの対比を利用する。
ベイズ推定と確率モデル
ベイズ推定の概要と各種実装
ベイズ推定の概要と各種実装。ベイズ推定は、確率論的なフレームワークに基づいた統計的推論の手法の一つであり、不確実性を取り扱う機械学習技術となる。ベイズ推定の目的は、データと事前知識(事前分布)を組み合わせて、未知のパラメータの確率分布を推定することとなる。ここでは、このベイズ推定に関する概要と応用事例および各種実装について述べている。
ベイジアンネットワークの推論アルゴリズムについて
ベイジアンネットワークの推論アルゴリズムについて。ベイジアンネットワークの推論は、ベイズの定理に基づいて事後分布を求める過程であり、主要な推論アルゴリズムにはいくつかの種類がある。以下に代表的なベイジアンネットワークの推論アルゴリズムについて述べる。
ベイジアンネットワークの前進推論(Forward Inference)の概要
ベイジアンネットワークの前進推論(Forward Inference)の概要。ベイジアンネットワークの前進推論(Forward Inference)は、既知の情報をもとに、ネットワーク内の変数やノードの事後分布を計算するための手法となる。ベイジアンネットワークは確率的グラフィカルモデルであり、変数間の依存関係を表現するために使用される。前進推論は、ネットワーク内の情報の伝播を通じて、目的の変数の事後分布を計算している。
ベイジアン多変量統計モデリングの概要とアルゴリズム及び実装例について
ベイジアン多変量統計モデリングの概要とアルゴリズム及び実装例について。ベイジアン多変量統計モデリングは、ベイジアン統計学の枠組みを使用して、複数の変数(多変量)を同時にモデル化する手法であり、この手法は、観測データに対する確率的な構造を捉え、不確実性を考慮することができるものとなる。多変量統計モデリングは、データの相関や共分散構造、異常値の検出などの問題に対処するために利用されている。
ベイジアンネットワークを用いた推論と行動の統合によるアルゴリズムと実装例について
ベイジアンネットワークを用いた推論と行動の統合によるアルゴリズムと実装例について。ベイジアンネットワークを用いた推論と行動の統合は、確率的なモデルを利用してエージェントが環境とやり取りしながら最適な行動を選択する手法であり、ベイジアンネットワークは、事象間の依存関係を表現し、不確実性を扱うのに有用なアプローチとなる。ここでは、ベイジアンネットワークを用いた推論と行動の統合によるアルゴリズムの一例として、POMDP(部分観測マルコフ決定過程)について述べる。
BIC、BDe等のスコアベースの構造学習について
BIC、BDe等のスコアベースの構造学習について。BIC(ベイズ情報規準)やBDe(ベイジアン情報規準)などのスコアベースの構造学習手法は、統計モデルの複雑性とデータの適合度を組み合わせてモデルの良さを評価し、最適なモデル構造を選択するために使用されるものとなる。これらの手法は主にベイジアン統計学に基づいており、モデル選択のための情報規準として広く利用されている。
ベイジアンネットワークのサンプリングについて
ベイジアンネットワークのサンプリングについて。ベイジアンネットワークのサンプリングは、事後分布からのランダムサンプル生成を通じて、未知の変数やパラメータの確率的な挙動をモデル化するもので、サンプリングは、ベイズ統計学や確率的プログラミングにおいて重要な手法であり、ベイジアンネットワークの事後分布の推定や不確実性の評価に利用される手法となる。
動的ベイジアンネットワークの変分ベイズ法による解析
動的ベイジアンネットワークの変分ベイズ法による解析。動的ベイジアンネットワーク(DBN)は、時間の経過とともに変化する不確かさをモデリングするためのベイジアンネットワークの一種となる。変分ベイズ法は、複雑な確率的モデルの推論を行うための統計的手法の一つであり、不確かな情報に基づいて事後分布を推定することが可能な手法となる。
ベイズ構造時系列モデルの概要と適用事例及び実装例について
ベイズ構造時系列モデルの概要と適用事例及び実装例について。ベイズ構造時系列モデル(Bayesian Structural Time Series Model; BSTS)は、時間とともに変化する現象をモデル化する統計モデルの一種であり、予測や因果推論を目的として利用されるものとなる。ここではこのBSTSに関しての概要と様々な応用事例及び実装例について述べている
ベイズ深層学習の概要と適用事例及び実装例
ベイズ深層学習の概要と適用事例及び実装例。ベイズ深層学習は、ベイズ統計学の原則を深層学習に組み込む試みを指す。通常の深層学習では、モデルのパラメータは確率的でない値として扱われ、最適なパラメータを求めるために最適化アルゴリズムが使用されるが、ベイズ深層学習では、これらのパラメータ自体を確率分布として扱い、不確かさを考慮に入れてモデルを学習および推論することを目指すものとなる。不確かさの機械学習への適用に関しては”不確実性と機械学習技術“や”統計的学習理論の概要(数式を使わない解説)“を参照のこと。
ベイジアンニューラルネットワークの概要とアルゴリズム及び実装例について
ベイジアンニューラルネットワークの概要とアルゴリズム及び実装例について。ベイジアンニューラルネットワーク(BNN)は、確率論的な要素をニューラルネットワークに統合するアーキテクチャであり、通常のニューラルネットワークが確定論的であるのに対し、BNNはベイズ統計に基づいて確率的なモデルを構築するものとなる。これにより、モデルが不確実性を考慮できるようになり、さまざまな機械学習タスクで応用されている。
ダイナミックベイジアンネットワーク(DBN)の概要とアルゴリズム及び実装例について
ダイナミックベイジアンネットワーク(DBN)の概要とアルゴリズム及び実装例について。ダイナミックベイジアンネットワーク(Dynamic Bayesian Network、DBN)は、ベイジアンネットワーク(Bayesian Network、BN)の一種であり、時間的な変化や系列データのモデリングに用いられる確率的グラフィカルモデルの一種となる。DBNは時系列データや動的なデータに対して強力なツールであり、様々な分野で応用されている。
アルゴリズムと統計的手法
マルコフ連鎖モンテカルロ法の概要と実装について
マルコフ連鎖モンテカルロ法の概要と実装について。マルコフ連鎖モンテカルロ法(Markov Chain Monte Carlo, MCMC)は、確率分布からのサンプリングや積分計算を行うための統計的手法となる。MCMCは、マルコフ連鎖(Markov Chain)とモンテカルロ法(Monte Carlo)の組み合わせとなる。ここでは、このMCMCに対して、様々なアルゴリズムと適用事例および実装例について述べている。
NUTSの概要とアルゴリズム及び実装例について
NUTSの概要とアルゴリズム及び実装例について。NUTS(No-U-Turn Sampler)は、”確率積分計算の為のMCMC法:メトロポリス法以外のアルゴリズム(HMC法)“でも述べているハミルトニアンモンテカルロ法(HMC)の一種であり、確率分布からのサンプリングを行うための効率的なアルゴリズムとなる。HMCは、物理学のハミルトニアン力学をベースにしており、マルコフ連鎖モンテカルロ法の一種で、NUTSは、HMCの手法を改良して、自動的に適切なステップサイズやサンプリング方向を選択することで、効率的なサンプリングを実現している。
一般化線形モデルの概要と各種言語による実装
一般化線形モデルの概要と各種言語による実装。一般化線形モデル(Generalized Linear Model, GLM)は、統計モデリングや機械学習の手法の一つであり、応答変数(目的変数)と説明変数(特徴量)の間の関係を確率的にモデリングするために使用されるものとなる。ここでは、この一般化線型モデルの概要と各種言語(python、R、Clojure)による実装について述べる。
最尤推定の概要とアルゴリズムおよびその実装について
最尤推定の概要とアルゴリズムおよびその実装について。最尤推定(Maximum Likelihood Estimation, MLE)は、統計学において使用される推定方法の一つとなる。この方法は、与えられたデータや観測値に基づいて、モデルのパラメータを推定するための手法であり、最尤推定では、パラメータの値を変えたときにデータが観測される確率を最大化しようとするものとなる。ここでは、この最尤推定法の概要とアルゴリズム、pythonによる実装例について述べている。
カルバック・ライブラー変分推定の概要と各種アルゴリズム及び実装
カルバック・ライブラー変分推定の概要と各種アルゴリズム及び実装。カルバック・ライブラー変分推定(Kullback-Leibler Variational Estimation)は、確率分布間の差異を評価し、それを最小化することで、データの確率モデルを近似的に推定する手法の一つであり、この手法は、ベイズ統計学や機械学習、情報理論の文脈で広く使用されている。主な用途は以下のようになる。
EMアルゴリズムと各種応用の実装例
EMアルゴリズムと各種応用の実装例。EMアルゴリズム(Expectation-Maximization Algorithm)は、統計的推定や機械学習の分野で広く用いられる反復最適化アルゴリズムとなる。特に、未観測の潜在変数(latent variable)が存在する確率モデルのパラメータ推定によく用いられている。
ここではこのEMアルゴリズムの概要と、混合モデル、HMM、欠損値推定、レーティング予測にそれぞれEMアルゴリズムを適用した時のフローとpythonによる実装例について述べる。
EMアルゴリズムを用いた制約充足問題の解法
EMアルゴリズムを用いた制約充足問題の解法。EM(Expectation Maximization)アルゴリズムは、制約充足問題(Constraint Satisfaction Problem)の解法として使用することもできる手法となる。このアプローチは、欠損データや非完全データのような不完全な情報がある場合に特に有用となる。ここではこのEMアルゴリズムを用いた制約充足問題に関して、様々な適用事例とpythonによる実装について述べている。
隠れマルコフモデル(HMM)の概要と各種応用事例および実装例
隠れマルコフモデル(HMM)の概要と各種応用事例および実装例。HMMは、確率的なモデルの一種であり、一連の観測データを生成するプロセスを表現するために使用され、特に、系列データや時系列データのモデリングに広く利用されているものとなる。HMMは「隠れた状態(hidden state)」と「観測結果(observation)」という2つの要素から構成され、隠れた状態は、直接は観測されず、系列データの背後にある潜在的な状態を表し、観測結果は、直接的に観測できるデータであり、隠れた状態から生成される。
ここでは、このHMMに関して、各種アルゴリズムと実用例およびpythonによる具体的な実装例について述べている。
Gelman-Rubin統計量の概要と関連アルゴリズム及び実装例について
Gelman-Rubin統計量の概要と関連アルゴリズム及び実装例について。Gelman-Rubin統計量(またはGelman-Rubin診断、Gelman-Rubin統計テスト)は、マルコフ連鎖モンテカルロ(MCMC)サンプリング法の収束診断のための統計的手法で、特に、MCMCサンプリングが複数のチェーンで行われる場合に、各チェーンが同じ分布からサンプリングされているかどうかを評価するために使用されるものとなる。この手法は、ベイズ統計学の文脈でよく利用されている。具体的には、Gelman-Rubin統計量は複数のMCMCチェーンから得られるサンプルの変動と各チェーン内の変動の比率を評価し、統計的な収束が達成されている場合、この比率は1に近くなる。
フィッシャー情報行列の概要と関連アルゴリズム及び実装例について
フィッシャー情報行列の概要と関連アルゴリズム及び実装例について。フィッシャー情報行列(Fisher information matrix)は、統計学と情報理論の分野で使用される概念であり、確率分布に関する情報を提供する行列となる。この行列は、統計モデルのパラメータに関する情報や精度を評価するために使用されており、具体的には、確率密度関数(または確率質量関数)をパラメータについて微分したものの期待値に関する情報を含んでいる。
Stochastic Gradient Langevin Dynamics(SGLD)の概要とアルゴリズム及び実装例について
Stochastic Gradient Langevin Dynamics(SGLD)の概要とアルゴリズム及び実装例について。Stochastic Gradient Langevin Dynamics(SGLD)は、確率的勾配法とモンテカルロ法を組み合わせた、確率的な最適化アルゴリズムであり、SGLDはベイズ的な機械学習とベイジアン統計モデリングにおいて広く使用され、事後分布を推定するために利用されるものとなる。
Stochastic Gradient Hamiltonian Monte Carlo(SGHMC)の概要とアルゴリズム及び実装例について
Stochastic Gradient Hamiltonian Monte Carlo(SGHMC)の概要とアルゴリズム及び実装例について。Stochastic Gradient Hamiltonian Monte Carlo(SGHMC)は、ハミルトニアンモンテカルロ法(Hamiltonian Monte Carlo、HMC)の一種であり、確率的勾配法を組み合わせた確率的なサンプリング手法であり、大規模なデータセットや高次元のパラメータ空間でのベイズ統計推論に適したものとなる。
制約ベースの構造学習の概要とアルゴリズム及び実装例について
制約ベースの構造学習の概要とアルゴリズム及び実装例について。制約ベースの構造学習は、グラフィカルモデル(ベイジアンネットワークやマルコフランダムフィールドなど)において、特定の構造制約を導入してモデルの学習を行う手法であり、これにより、事前の知識やドメイン知識をモデルに組み込むことができるアプローチとなる。
変分オートエンコーダ (Variational Autoencoder, VAE)の概要とアルゴリズム及び実装例について
変分オートエンコーダ (Variational Autoencoder, VAE)の概要とアルゴリズム及び実装例について。変分オートエンコーダ(Variational Autoencoder, VAE)は、生成モデルの一種であり、データの潜在表現を学習するためのニューラルネットワークアーキテクチャであり、VAEは、データの確率分布をモデル化し、その中からサンプリングすることによって、潜在表現を学習するものとなる。以下にVAEの概要について述べる。
シミュレーションと機械学習の組み合わせと各種実装例
シミュレーションと機械学習の組み合わせと各種実装例。シミュレーションは、現実世界のシステムやプロセスをモデル化し、それをコンピュータ上で仮想的に実行するものとなる。シミュレーションは、物理的な現象、経済モデル、交通フロー、気候パターンなど、さまざまな領域で使用され、モデルの定義、初期条件の設定、パラメータの変更、実行、結果の解析などのステップで構築することができる。シミュレーションと機械学習は、異なるアプローチとなるが、目的や役割によって様々な相互作用をすることがある。
ここではこのシミュレーションと機械学習の組み合わせの適応事例と各種実装について述べている。
隠れマルコフモデルと状態空間モデルの相違点について
隠れマルコフモデルと状態空間モデルの相違点について。“隠れマルコフモデルの概要と各種応用事例および実装例“で述べている隠れマルコフモデル(Hidden Markov Model, HMM)と”状態空間モデルの概要とRとPythonを用いた時系列データの解析の実装例“で述べている状態空間モデル(State Space Model, SSM)は、時間的な変化や系列データのモデリングに使用される統計モデルだが、異なるアプローチを持ったものとなる。以下に、それらの主な相違点について述べる。
Black-Box Variational Inference (BBVI)の概要とアルゴリズム及び実装例について
Black-Box Variational Inference (BBVI)の概要とアルゴリズム及び実装例について。Black-Box Variational Inference (BBVI)は、確率的プログラミングやベイジアン統計モデリングにおいて、複雑な確率モデルの事後分布を近似するための変分推論法の一種であり、変分推論は、事後分布を解析的に解くことが難しい場合に、近似的な手法を使って推論を行うものとなる。BBVIは”Black-Box”と呼ばれるのは、推論対象の確率モデルがブラックボックスとして扱われ、モデル自体の内部構造や尤度関数の形に依存せずに適用できるためであり、BBVIはモデルを確率分布の黒い箱(Black Box)として捉え、その内部構造を知らなくても推論が可能な手法と言える。
ディリクレ過程(Dirichlet Process, DP)の概要とアルゴリズム及び実装例について
ディリクレ過程(Dirichlet Process, DP)の概要とアルゴリズム及び実装例について。ディリクレ過程(Dirichlet Process, DP)は、無限次元の確率分布を扱うための強力な道具で、ベイズ非パラメトリックモデルの中心的な役割を果たしており、クラスタリングやトピックモデリングなどに応用されるものとなる。
階層的ディリクレ過程 (HDP)の概要とアルゴリズム及び実装例
階層的ディリクレ過程 (HDP)の概要とアルゴリズム及び実装例。階層的ディリクレ過程 (Hierarchical Dirichlet Process, HDP) は、無限混合モデルを扱うためのベイズ非パラメトリック手法の一つであり、特に、複数のグループにまたがるデータに共通のクラスタを持たせつつ、各グループに独自のクラスタ構造を許容する際に使用されるものとなる。
中国料理店過程 (Chinese Restaurant Process)の概要とアルゴリズム及び実装例
中国料理店過程 (Chinese Restaurant Process)の概要とアルゴリズム及び実装例。中国料理店過程 (Chinese Restaurant Process, CRP) とは、”ディリクレ過程(Dirichlet Process, DP)の概要とアルゴリズム及び実装例について“でも述べているディリクレ過程 (Dirichlet Process, DP) を直感的に説明するために用いられる確率モデルとなる。特にクラスタリング問題に頻繁に使われている。
棒切り分割プロセス(Stick-breaking Process)の概要とアルゴリズム及び実装例
棒切り分割プロセス(Stick-breaking Process)の概要とアルゴリズム及び実装例。棒切り分割プロセス (Stick-breaking Process) は、”ディリクレ過程(Dirichlet Process, DP)の概要とアルゴリズム及び実装例について“でも述べているディリクレ過程 (Dirichlet Process, DP) を直感的に理解するための代表的な手法で、長さ1の棒を無限に繰り返しランダムに分割して、無限次元の確率分布を生成するアプローチとなる。これは、ディリクレ過程の離散的な確率測度を構成するための視覚的かつ数学的に美しい方法となっている。
グラフニューラルネットワーク
Dynamic Graph Neural Networks(D-GNN)の概要とアルゴリズム及び実装例について
Dynamic Graph Neural Networks(D-GNN)の概要とアルゴリズム及び実装例について。Dynamic Graph Neural Networks(D-GNN)は、動的なグラフデータに対処するために設計されたグラフニューラルネットワーク(Graph Neural Network、GNN)の一種であり、ノードとエッジが時間に応じて変化するようなデータを扱うために設計されたものとなる。(GNNについては”グラフニューラルネットワークの概要と適用事例およびpythonによる実装例について“を参照のこと)このアプローチは、時系列データ、ソーシャルネットワークデータ、交通ネットワークデータ、生物学的ネットワークデータなど、さまざまな領域で用いられている。
グラフニューラルネットワークの概要と適用事例およびpythonによる実装例について
グラフニューラルネットワークの概要と適用事例およびpythonによる実装例について。グラフニューラルネットワーク(Graph Neural Network, GNN)は、グラフ構造を持つデータに対するニューラルネットワークの一種であり、グラフ構造を持つデータとは、要素間の関係を表現するために、頂点(またはノード)と、頂点間を結ぶエッジ(またはリンク)から構成されるグラフと呼ばれるデータ構造を使用して構築されたデータのことを指す。グラフ構造のデータの例としては、ソーシャルネットワーク、道路網、化学分子の構造、知識グラフなどがある。
ここでは、このGNNに関しての概要と様々な実施例およびPythonによる実装例について述べている。
グラフ畳み込みニューラルネットワーク(Graph Convolutional Neural Networks, GCN)の概要とアルゴリズム及び実装例について
グラフ畳み込みニューラルネットワーク(Graph Convolutional Neural Networks, GCN)の概要とアルゴリズム及び実装例について。グラフ畳み込みニューラルネットワーク(Graph Convolutional Neural Networks, GCN)は、グラフ構造を持つデータに対する畳み込み演算を可能にするニューラルネットワークの一種であり、通常の畳み込みニューラルネットワーク(CNN)は、画像データなどの格子状のデータに対して効果的なものに対して、GCNは、グラフデータやネットワークデータのような非常に複雑な構造を持つ非格子状のデータに対する深層学習の手法として開発されたものとなる。
ChebNetの概要とアルゴリズム及び実装例について
ChebNetの概要とアルゴリズム及び実装例について。ChebNet(Chebyshev ネットワーク)は、グラフニューラルネットワーク(Graph Neural Network, GNN)の一種であり、主にグラフ構造データに対する畳み込み操作を実行するための手法の一つとなる。ChebNetは、シグナル処理で使用されるシェビシェフ多項式(Chebyshev polynomials)を利用して、グラフ上での畳み込み演算を近似的に実装している。
GAT (Graph Attention Network)の概要とアルゴリズム及び実装例について
GAT (Graph Attention Network)の概要とアルゴリズム及び実装例について。Graph Attention Network(GAT)は、グラフ構造に対する注意メカニズムを使用してノードの表現を学習する深層学習モデルとなる。GATは、異なるノード間の関係や接続パターンに基づいて、各ノードの重要度を自動的に決定することが可能なアプローチとなる。
Graph Isomorphism Network (GIN)の概要とアルゴリズム及び実装例について
Graph Isomorphism Network (GIN)の概要とアルゴリズム及び実装例について。Graph Isomorphism Network (GIN)は、グラフ構造の同型性を学習するためのニューラルネットワークモデルであり、グラフ同型性の問題は、2つのグラフが同じ構造を持つかどうかを判定する問題で、多くの分野で重要なアプローチとなる。
GraphSAGEの概要とアルゴリズム及び実装例について
GraphSAGEの概要とアルゴリズム及び実装例について。GraphSAGE(Graph Sample and Aggregated Embeddings)は、グラフデータからノードの埋め込み(ベクトル表現)を学習するためのグラフ埋め込みアルゴリズムの一つであり、ノードの局所的な隣接情報をサンプリングし、それを集約することによって、各ノードの埋め込みを効果的に学習するものとなる。このアプローチにより、大規模なグラフに対しても高性能な埋め込みを獲得することが可能となる。
Clojure
Clojureを用いた確率的プログラミング(Probabilistic Programming)
Clojureを用いた確率的プログラミング(Probabilistic Programming)。以前ベイズモデル等の確率的生成モデルで述べたStanやBUSGS等は、確率的プログラミング(Probabilistic Programming:PP)とも呼ばれる。PPは確率モデルを何らかの形で指定し、それらのモデルの推論が自動的に実行されるプログラミングパラダイムとなる。それらの目的は確率モデリングと汎用プログラミングを統合して、株価の予測、映画の推奨、コンピュータの診断、サイバー侵入の検出、画像検出など、さまざまな不確実な情報に対して、様々なAI技術と組み合わせたシステムを構築することにある。
今回は、この確率的プログラミングへのClojureでのアプローチについて述べる。
GPy – Pythonを用いたガウス過程のフレームワーク
GPy – Pythonを用いたガウス過程のフレームワーク。今回はPythonを用いたガウス過程のフレームワークについて述べる。これらのライブラリーはClojureからも利用することができるがそれらは別途述べる。Pythonのフレームワークとしては汎用のscikit-learnのフレームワークの中にあるものを利用するものと、専用のフレームワークGPyとがある。GPyの方が多機能であるため今回はGPyについて述べる。
Clojureでのガウス過程の実装
Clojureでのガウス過程の実装。ガウス過程は関数形をランダムに出力する箱(確率過程)のようなものであり、例えばサイコロが1,2,3,4,5,6の自然数を生成する過程がサイコロのゆがみに依存するのと考えた場合、ガウス過程もパラメータ(この例ではサイコロの歪み具合)次第で関数の出現の様子(サイコロの目が出る確率を表した関数)が変化すると考える。
ガウス過程回帰は、データ間の相関係数を用いて解析することから、カーネル法を用いたアルゴリズムが用いられたり、ベイズ解析的手法と組み合わせたMCMCを用いたアルゴリズム等が適用される。これらの解析に用いられるツールとして、MatlabやPython、R、Clojure等様々な言語でのオープンソースがある。今回はClojureでのアプローチについて述べる。
Clojureを用いたベイズ最適化ツールの実装
Clojureを用いたベイズ最適化ツールの実装。ベイズ最適化(bayesian optimization)は、少数標本と最低限の過程に基づいて確率的な予測を行うことのできる、ガウス回帰過程の特徴をフル活用した応用技術となる。
具体的な例としては、医療や化学/材料研究等の実験計画において、実験を行いながら逐次的に次に行うべき実験パラメータの最適な組み合わせを抽出したり、機械学習におけるハイパーパラメータの学習/評価のサイクルを回しながら逐次的に最適化を行ったり、製造業での部品のすり合わせによる機能の最適化に用いられたりと広範囲に利用できる技術となる。
Clojureを使った中華料理店過程(Chinese resturant process:CRP)と混合ガウス分布への適用
Clojureを使った中華料理店過程(Chinese resturant process:CRP)と混合ガウス分布への適用。CRP (Chinese resturant process) は,ある特定のデータ生成過程を記述する確率過程である.数学的には,このデータ生成過程は,各ステップで,可能な整数の集合から新しい整数をサンプリングし,その特定の整数がこれまでにサンプリングされた回数に比例する確率で,これまで見たことのない新しい整数をサンプリングする一定の確率で,その整数をサンプリングするものとなる。
今回はこのCRPのClojureの確率的プログラミングのフレームワークであるAnglicanを用いた実装と混合ガウスモデルとの組み合わせについて述べる。
Clojureを用いた状態空間モデル:カルマンフィルターの実装
Clojureを用いた状態空間モデル:カルマンフィルターの実装。今回は状態空間モデルの応用の一つであるカルマンフィルターのClojureでの実装について述べる。カルマンフィルターは離散的な誤差のある観測から、時々刻々と時間変化する量(例えばある物体の位置と速度)を推定するために用いられる無限インパルス応答フィルターであり、その使いやすさからレーダーやコンピュータービジョンなど幅広い工学分野で利用されている技術となる。具体的な利用例としては、機器内蔵の加速度計やGPSからの誤差のある情報を統合して、時々刻々変化する自動車の位置を推定したり、人工衛星やロケットの制御などにも用いられている。
カルマンフィルターは以前述べた隠れマルコフモデル(hidden markov model)と類似した隠れ状態とそれらから生成される観測データを持つ状態空間モデルで、状態は連続であり、状態変数の変化はガウス分布に従う雑音を用いて統計的に記述されるものとなる。
Clojureを用いたビタビアルゴリズムと確率的生成モデルによる隠れマルコフモデルの実装
Clojureを用いたビタビアルゴリズムと確率的生成モデルによる隠れマルコフモデルの実装。隠れマルコフモデルとは、確率モデルの一つであり、観測されない(隠れた)状態を持つマルコフ過程となる。状態が直接観測可能なマルコフ過程と異なり、観測されたデータの情報を使って、その裏側にある「隠れた」状態を推測するものとなる。今回はこれに対するビタビアルゴリズムと確率的生成モデルによるClojureでの実装について述べる。
確率統計の理論
基本的な確率分布(ベイズ推論による機械学習入門より)
はじめての確率論 読書メモ
確率論入門 読書メモ
確率論入門 読書メモ。確率をめぐる数学的考察は、賭け事に関してパスカルとフェルマが交わした往復書簡に始まると言われる。組み合わせの概念に基づく古典的確率論は、20世紀になるとボレルやコルモゴロフの手により、集合論に基礎づけられた「現代数学」へと大きく飛躍した。本書はその確率論の古典と現代とを橋渡しする目的で書かれており、トランプやサイコロ投げといった初歩的な具体例を豊富に示しつつ、抽象的な数式の意味を読者にわかりやすく説く。高校数学で習う確率を、より深く学び直すことのできる入門書。
人間と社会を変えた9つの確率・統計物語 読書メモ
人間と社会を変えた9つの確率・統計物語 読書メモ。パスカル、フェルマーからフォン・ノイマン、ケインズまで。「偶然」を測ることで不確実な未来を予測することに挑んだ確率・統計学のパイオニアたちの発想を、彼らと著者との仮想対話形式でわかりやすく紹介する。
世界を変えた確率と統計のカラクリ134話 読書メモ
世界を変えた確率と統計のカラクリ134話 読書メモ。「確率・統計」の問題はとても身近でわかりやすくおもしろい反面、解答を考えるとなると、いくつも正しそうな答えが出てきて、なかなか難しかったりする。実際に、現代の中学生・高校生が正しく答えられる問題でも、当時の大数学者が間違えてしまった例があるほどである。一方で、大数学者たちによる、ユニークな問題に対しての数理的センスに満ちたエレガントな解法も残っている。そうした一見不思議な問題や巧みな思考を要する事柄、興味深い歴史的なエピソードを、アクチュアリーで数学パズル・デザイナーでもある著者のユニークな視点で、たくさん紹介されている。
pythonによる統計モデリング
確率的生成モデルに使われる各種確率分布について
確率的生成モデルに使われる各種確率分布について。確率的生成モデルの近似モデルとして利用される各種確率モデル概要(スチューデントt分布、ウィシャート分布、ガウス分布、ガンマ分布、逆ガンマ分布、ディリクレ分布、ベータ分布、カテゴリ分布、ポアソン分布、ベルヌーイ分布)
ディリクレ分布(Dirichlet distribution)は、多変量確率分布の一種であり、主に確率変数の確率分布をモデリングするために使用されるものとなる。ディリクレ分布は、K個の非負実数からなるベクトル(多次元ベクトル)を生成する確率分布で、これをディリクレ分布と呼ぶ。
ベイズ推定概要
ベイズ統計の歴史とSTANを用いたベイズ推定
ベイズ統計の歴史とSTANを用いたベイズ推定。ベイズ統計の歴史は、1740年代のトーマス・ベイズから始まる。神学と数学を学んでいたベイズは、当時の「あらゆるものの第一原因は神である」という思想に基づいて、因果の根本にある神=宇宙に潜む秩序の存在を数学的に明らかにしようとした。
ベイズより少し前の時代に複素数と三角関数の定理であるド・モアブルの法則を見出した数学者アブラーム・ド・モアブルが原因から結果へと考えを進めることで確率に関する問題を解いたのに対して、ベイズは逆の方向である結果から原因への逆確率の問題を解こうとした。正に見えているものから、その根本原因(宇宙の秩序=神)を導き出そうとしたのである。
ベイズの情報を集めていくという概念は、それぞれの起こる確率の掛け算で表されることになる(前提として集める情報の確率は計算できるものとなる)。
情報と確率を結びつけることができたので、更に結果と原因の概念を確率で表す。それらの概念はある原因の元で結果が起こると言い換えることができる。ここで条件付き確率を、事象Aが起こったと言う条件の元で事象Bが起こると言う確率と定義してベイズの定理が定義される。
ベイズモデリングの世界
本ブログてでは 以下のページにて、個体差や不均一性のモデル化」という視点から現代のベイズモデリングの世界を俯瞰する。生態学、医学、地球科学、自然言語処理などを例に、平滑化、階層モデル、データ同化、各種の言語モデルなどについてベイズモデリングの観点から述べている。
ベイズ推論とMCMCのフリーソフト
ベイズ統計とはデータだけではなく、データの背後にある要素も確率的に生成されるというものとなる。これは以前述べた「サイコロ(ある確率でデータを生成するもの)を製造する装置がある確率でゆらぎを持ってサイコロを製造する」というイメージを持つと分かりやすい。つまり確率分布にメタ的な確率を適用したモデリングとなる。
このベイズモデリングを計算するためには、確率の計算を行う必要がある。それらに対するアプローチとしてMCMC(Markov Chain Monte Carlo Method;マルコフ連鎖モンテカルロ法)がある。これは多変量の確率分布からサンプルを抽出する(乱数を発生する)ためのアルゴリズムの一つとなる。
ベイズ推定として複雑な確率分布を計算しようとすると、推定すべきパラメータの数が多くなり、MCMC等の手法で計算しようとすると、計算コストが大きくなってしまう課題が生じる。これを解決するため、「似た様なパラメーター」たちに共通の制約を与えることでパラメータの数を限定する「階層ベイズ」の手法が用いられる。
また時系列データに確率モデルを適用する際には、一般的な確率モデルでは多数のサンプルを対象としてそれぞれが独立であるという仮定の元で考慮するのに対して、時系列データでは一つのサンプルの変化を見ていくため自己相関性を考慮することが必要となる。
実際のツールを使ったベイズ推定としてはStanを使ったアプローチがある。StanはMCMCを使ってサンプルデータを生成する、いわば乱数的なシミュレーションの一種である。通常の機械学習は主にモデルと実データのギャップを最小化するために関数を最適化していくのに対して、モデリング系は最初に設定したモデルのパラメータをシミュレーションしながら最適化していく為、学習データが少ないケースで強みを発揮する。
本ブログでは 以下のページにて、それらベイズ推論の基礎的な理論から、階層ベイズ、時系列/空間データのモデリング、STANを用いた実際の計算等について述べる。
ベイズ推論による学習
ベイズ推論とグラフィカルモデルによる機械学習
ベイズ推論を用いた機械学習は、確率の基本法則であるベイズの定理に従って観測データが与えられたときの未知変数に関する事後確率分布を計算し、得られた事後確率分布に基づいて、未知変数の推定量やこれから観測されるであろう新しいデータに対する予測分布などを計算する統計的学習手法となる。
本ブログでは 以下のページにて、このベイズ推論による機械学習技術について、基本的な理論と実装とグラフィカルモデルによるアプローチについて述べる。
マルコフ連鎖モンテカルロ(MCMC)法
マルコフ連鎖モンテカルロ法(Markov Chain Monte Carlo, MCMC)は、確率分布に従う乱数を生成する手法の一つで、マルコフ連鎖という状態遷移モデルを使って、確率分布に従う乱数を生成する手法となる。これは簡単に言えば、ある状態から始まり、その状態に対して確率的に別の状態に遷移していくことを繰り返すことで、確率分布に従う乱数を生成する手順を行うものとなる。MCMCは、自然言語処理のような特に高次元の問題に対して有効であり、ベイズ統計モデルの推定などに応用される。
またMCMC法には、(1)Metropolis-Hastings法、(2)Gibbsサンプリング、(3)Hamiltonian Monte Carlo(HMC)法、(4)Slice Sampling法等がある。
本ブログでは 以下のページにて、このマルコフ連鎖モンテカルロ法での基本的な理論と具体的なアルゴリズムと実装コード等について述べている。
変分ベイズ学習について
ベイズ学習は、確率の基本法則であるベイズの定理に従って観測データが与えられたときの未知変数(モデルパラメータ、隠れ変数など)に関する事後確率分布を計算し、得られた事後確率分布に基づいて、未知変数の推定量やこれから観測されるであろう新しいデータに対する予測分布などを計算する統計的学習手法となる。
このベイズ推定を行うためには、未知変数に対する期待値計算を行う必要がある。この計算は特別な場合を除いて解析的に実行することができず、また未知変数が高次元である場合には数値計算も困難となる。
変分ベイズ学習は、これを計算するための近似法の一つで、事後確率分布をある制約を満たす関数の集合から選ぶことによって期待値計算を可能とする手法であり、幅広い適用範囲を持つ。変分ベイズ学習アルゴリズムを導出する際のポイントは、与えられた確率モデルに対して条件付き共役性と呼ばれる性質を見つけ出し、その性質に応じた制約を設計することにある。
本ブログでは 以下のページにて、この変分ベイズ学習について基本的な理論と具体的なアルゴリズムと実装コード等について述べている。
ノンパラメトリックベイズとガウス過程について
ノンパラメトリックベイズモデルは、一言で言うと「無限次元」空間での確率モデルであり、それらを効率的に計算できるマルコフ連鎖モンテカルロ法に代表される近代的な探索アルゴリズムでもある。その適用先としては、フレキシブルな生成モデルによるクラスタリングや、統計モデルを用いた構造変化推定、因子分析やスパースモデリングへの応用等がある。
ガウス過程は、確率的アプローチを更に進め、確立分布関数f(x)の選択範囲を柔軟にし「ある程度の滑らかさを持つ関数であればなんでもあり(ガウス過程回帰)」としてそれらの関数のパラメータの確率分布をベイズ推定で求めるというものを考えるものとなる。ガウス過程とは「振ると関数f()がポンと出てくるような箱」と考えればよく、これと実データのフィッティングを行うことで事後関数の雲が得られるものとなる。
本ブログでは 以下のページにて、このノンパラメトリックベイズモデルとガウス過程の理論と実装について述べる。
ベイズモデル応用
トピックモデル
トピックモデルは、文書データの中からそれぞれの文書がどのような持っており、大量の文書集合から話題になっているトピックを抽出するためのモデルとなる。この技術を用いることで、トピックが近い文書を見つけたり、トピックに基づいた文書の整理を行うことが可能となり、検索等ソリューションに利用できる技術となる。
このトピックモデルは、文書データの解析だけはなく、画像処理、推薦システム、ソーシャルネットワーク分析、バイオインフォマティクス、音楽情報処理等多くの分野で応用されている。これらは持つ画像、購買履歴、ソーシャルネットワーク等の情報が文書と同様に隠れた構造を持つことによる。
文書データでのトピックは、例えば政治記事では「国会」「法案」「首相」という語彙が同じ文章で表れやすく、スポーツ記事では「スタジアム」「選手」「ゴール」という語彙が現れることにより形成される。これが画像の場合は、「包丁」が映っていたら「まな板」も写っている加納伊勢が高く、購買履歴の場合は、似た趣味を持つ人は似た商品を買い、ソーシャルネットワークでは同じ趣味を持つ人同士で友達になりやすいといったものになる。
トピックモデルでは、このような傾向を確率のモデルを用いて表現する。確率のモデルを用いることで不確実性を扱うことができ、ノイズを含むデータの中から本質的な情報を抽出できるようになる。また、確率の枠組みで様々な情報を扱うことができる為、多様な情報を統合したトピックモデルの拡張が多く提案され、その有用性が確認されている。
本ブログでは 以下のページで、このトピックモデルに対する基本的な理論とさまざまな応用について述べている。
その他技術トピック
大規模で複雑なモデルの解析を得意とする深層学習と、モデリングというプロセスを通してデータに仮定できる知識や構造を積極的に導入して、データ欠損や未確定値など「必要なデータが全て揃っていない」ケースで強みを発揮する確率計算に基づく確率的生成モデルは、それぞれが独自に発展してきた。
その過程で、深層学習では主に大量のデータを学習できるスケーラブルなモデルの開発や予測精度の向上が重視され、予測結果の根拠に対する解釈性や信頼度にたいする評価は後回しにされてきた・それに対してベイズ推定は解釈性の高い解析が得られる代わりに、大量・高次元のデータに対してスケールする手段の開発は遅れてきた。
これら互いの弱点を補いつつ寄って行くのは極めて自然な帰結で、深層学習では画像や自然言語など対象となるデータに合わせた複雑なモデルが考案されたり、ベイズ推定でも深層学習で用いられた確率勾配などの技術を導入することでスケーラビリティを向上する取り組みが行われている。これらは「大規模・複雑なモデルの設計と効率的な確率計算」という大きなテーマの中で結びつこうとしている。
- 確率と論理の統合(1) ベイジアンネットについて
ベイジアンネットは様々な事象間の因果関係(厳密には確率的な依存関係)をグラフ構造で表現するモデリング手法の一つで、故障診断や気象予測、医療的意思決定支援、マーケティング、レコメンドシステム、あるいは電車の混雑状況や、津波・地震などの災害・株価のリアルタイム処理・スパムメールの分類・レコメンドシステム・センチメント分析等で使われるナイーブベイズ、音声認識、バイオインフォマティクス、形態素解析(自然言語処理)、楽譜追跡、部分放電など、時系列パターンの認識に応用される隠れマルコフモデル等がある。
ベイジアンネットには、似たようなものがあってもまとめて記述ができず、変数が異なると別々のベイジアンネットを作らなければならない等作成の為の課題があり、複雑で巨大なモデルの記述は困難となる。
この問題を解決するために、知識ベースモデル構築(KBMC)と呼ばれるベイジアンネットの自動生成の研究がおこなわれた。KBMCは述語論理が用いられ、prolog的な宣言的なプログラミング言語等を用いて、知識ベースを参照しつつ後ろ向き推論を行い、質問に回答する為のベイジアンネット動的に生成して、それを使って確率を計算して質問に答えるしくみが用いられた。これによりすべての可能性のある質問に対する巨大なベイジアンネットを作成するという問題が回避できた。
オントロジーのsimilarity評価のためのナイーブベイズによるオントロジー属性のマッチングを行う
地図上のそれぞれの区間ごとに対応した統計数値に合わせた色調で塗り分けた地図をコロブレスマップ(cholopleth map)と呼ぶ。塗り分けに用いる統計数値は予め調査されたデータをそのまま用いる場合もあれば、観測されたデータから何らかの推定を行なった値を用いる場合もある。コロプレスマップは、地域ごとの数値を地理(空間)情報と組み合わせて可視化する際に便利なものとなる。
今回は、地図上に表現された地理的な隣接情報を利用して、空間的な相関を考慮した階層ベイズモデルを用いた推定を行い、その結果をコロプレスマップとして地図上に可視化する方法について述べる、
- k匿名化と隠れマルコフモデルによる匿名化(地図情報プライバシー)
位置情報でのプライバシーを守るため、匿名化手法の安全性評価のためのマルコフモデルに基づく統計的手法について述べる。
異常検知の問題を難しくする要因の一つに、「変数がたくさんあって手に負えない」というものがある。単純ベイズ(naive Bayes)法はその問題を、変数ごと(変数の次元)ごとに問題を切り分ける、という単純な考え方で解決する手法となる。
M次元ベクトルとしての観測値x’の以上値は、M個の変数のそれぞれに対して計算された異常度の和となる。この計算には面倒な逆計算などは不要なので、もし変数同士が独立であるという仮定が成り立つなら実用上有効となる。仮定が必ずしも正しくなくても、異常度の大きさを見積もるためには有用な式といえる。

AIシステム設計・意思決定構造の設計を専門としています。
Ontology・DSL・Behavior Treeによる判断の外部化、マルチエージェント構築に取り組んでいます。
Specialized in AI system design and decision-making architecture.
Focused on externalizing decision logic using Ontology, DSL, and Behavior Trees, and building multi-agent systems.
