シミュレーションとデータサイエンスと人工知能

機械学習技術 人工知能技術 デジタルトランスフォーメーション技術 確率的生成モデル 時系列データ解析 サポートベクトルマシン スパースモデリング 異常検知・変化検知技術 関係データ学習 経済とビジネス 本ブログのナビ
シミュレーションとデータサイエンスと人工知能について

天文、気象、物性、生物から、伝染病の流行や都市の成長まで、さまざまな分野で大規模な計算機シミュレーションが有効な手段となっているが、純粋に基本法則(第一原理)だけで行えるシミュレーションは限られている。そこで、計算の前提となるパラメータの値や初期値を設定するのに、データサイエンスの力が必要となる。しかし、現代のデータサイエンスは、さらに深くシミュレーションと絡み合っている。

その一つが「データの同化」と「エミュレータ」という概念で、「データの同化」は、状態空間モデル、あるいはベイズモデルとも関連づけられるが、シミュレーションの側から出発して、シミュレーションの途中経過に「データ」を取り込んでいくという視点に特徴がある。「エミュレータ」も手法自体は(高次元の)回帰モデルのあてはめに他ならないが、実世界のデータの代わりに、シミュレーションの出力を模倣する点が異なっている。

また個別の応用分野としては、データ同化の先進領域である天気予報の分野において、データをアクティブに採取する「機動的観測」、またタンパク質の分野での「シミュレーション結果の多変量時系列解析」やエージェントベースの都市シミュレーション等がある。さらに、ゲームプログラミングや高次元画像認識など、いわゆる「人工知能」の分野とのかかわりとしては、囲碁や将棋のプログラムでシミュレーションが多用され、それと深層学習や強化学習やGANなどのアプローチもある。

さらに近年では以前「核融合とAI技術」で述べたような核融合のシミュレーションデータを使った強化学習によるブレークスルーなども生まれている。

本ブログではこれらのシミュレーションとデータサイエンス、人工知能について以下の内容について述べている。

実装

シミュレーションは、現実世界のシステムやプロセスをモデル化し、それをコンピュータ上で仮想的に実行するものとなる。シミュレーションは、物理的な現象、経済モデル、交通フロー、気候パターンなど、さまざまな領域で使用され、モデルの定義、初期条件の設定、パラメータの変更、実行、結果の解析などのステップで構築することができる。シミュレーションと機械学習は、異なるアプローチとなるが、目的や役割によって様々な相互作用をすることがある。

ここではこのシミュレーションと機械学習の組み合わせの適応事例と各種実装について述べている。

個別トピック

「気づく」とは、何かを注意深く観察したり、認識したりすることを指し、また、人が状況や物事に対して気付くということは、その人がある情報や現象を認識し、それに関する気持ちや理解を持つことを意味する。気づくことは、外界の変化や出来事に注意を払うことによって、新たな情報を得たり、理解を深めたりする重要な過程となる。今回は、この気づきとそれらに対する人工知能技術の適用について述べてみたいと思う。

研究における推論のタイプを大別すると演繹法と帰納法になる。物理学やその周辺では、演繹法は支配方程式と呼ばれる基礎方程式を解くことにより未知の状態を推測する方法となる。支配方程式は対象や時間・空間スケールによって変化し、例えば同じ力学現象でも、量子力学におけるシュレディンガー方程式から、流体力学におけるナビエ・ストークス方程式まで様々ある。

通常、方程式を空間・時間的に離散化し、初期値や境界条件、さらにはパラメータの値を確定し、スーパーコンピューターにより時間発展あるいは空間接続の計算を膨大な時間をかけて実行する。いわゆるシミュレーションなる。一方、経験やデータのような過去の有限事象に基づいて、未体験や将来を予測する方法を帰納法と呼ぶ。統計学や機械学習、ディープニューラルネット(Deep Neural Net;DNN)などのデータサイエンスの手法は、すべて帰納法となる。ここではこの2つの方法をいかに融合・統合していくかについて述べる。

気象庁などの機関が天気予報を作る際には、いくつかの方法がある。そのうち主要なものの一つは現在の雨の分布から外装によって将来の雨の分布を予測する運動学的な方法となる。運動学的な予報が有効なのは、数時間以内のごく短時間の予報に限られている。というのも、雨雲を流す風自身がさまざまな物理的プロセスによって時々刻々と変化していくからである。そのため、数時間以上先の予報は、大気の流れを記述する流体力学の基礎方程式などの偏微分方程式系を離散化した物理モデルを構築し、数値計算によって近似解を得ることで実施されている。ここではこれを運動学的な方法と区別して物理学的な手法と呼ぶ。

物理学的手法では、物理法則を模した数値シミュレーションを行う。ただし、数値シミュレーションを開始するにあたって、現在の大気の状態を計算の初期値としてシステムに代入する必要がある。この初期値を作成するために、まず、観測データを収集することから始める。観測データを初期値とするだけではもったいないので、データ同化というプロセスを噛ませる。データどうかは、観測値やシミュレーション結果に見られる物理量の誤差の分散や共分散を利用し、観測点ではない場所にも観測データの情報を波及させるシステムとなる。

動物では筋肉に多くのタンパク質が含まれている。実際には、動植物を問わず、生物内での化学反応の触媒(酵素)や生体膜上の受容体(リセプター)などの成分として、生命のあらゆる部分で主要な部品の役割を担うのがタンパク質となる。また「DNAからRNAに情報が転写され、そこからタンパク質のアミノ酸の並び方(1次元構造)が決まる」ということ、そして「タンパク質のとる3次元的な形状(高次構造)がその部品としての働きに本質的だ」ということも、生物学のスタートとなる。

そうすると、次の疑問は、一次構造から高次構造がどのように決まるのか、ということになる。分子のお大きさがあまり大きくないタンパク質について言えば、「自然に折り畳まれて高次構造ができる」というのが正解となる。これをタンパク質のフォールディング(folding,折りたたみ)という。

こうした現象を計算機の中で再現する研究として、タンパク質のリアルなシミュレーションがニュートンの運動方程式をベースにして構築されている。これは分子動力学(MD)と呼ばれるテクニックで、データサイエンスでのハミルトニアンMCMCと近い手法となる。

SimCityは、1989年に公開されて以来、今日に至るまでロングヒットを続けている都市開発シミュレーションゲームである。

このゲームは市長になって仮想のまちをつくると言うゲームで発電所や役場をはじめ、年に必要な基盤施設の建設を行うなど、実世界に通じるリアリティがある。ある程度、都市が成長してくると、住民の満足度や災害への対応等、対応しなくてはならない問題の複雑度が増し、ゲームの難易度が高まってくる。

SimCityはエンターテイメントを目的としたゲームだが、実世界のリアルなデータ、リアルなモデルに基づいたシミュレータがSimCityのようなインターフェースとして利用できれば、専門家でなくてもマーケティングや政策の施策計画・立案に広く、かつ深く関与できるようになる。

エミュレータの考え方には様々な応用がある。(1)欲しい性質を持つものを設計する、(2)異なる階層・タイムスケールのシミュレーションをつなぐ、(3)各時点での結果を利用して効果的にデータを集める:上記の1や3は回帰分析一般に縦しても運用可能だが、エミュレーションと組み合わせる事で、さらに用途が広がる。

「モデルを与えて、そこから生まれる結果を調べる」ことを「順問題」とすると、データサイエンスで行う「データを与えて、モデルのパラメータを推定する」のは「逆問題」ということになる。ここで、「タンパク質のシミュレーションの逆問題」に相当するものについて述べる。

リアルタイム観測ベースの携帯端末をメッシュ単位で集計した時間別の人口データと、PTデータに基づく都市圏の流動データを組み合わせて、人々のリアルタイムな推定流動を求めることが考えられる。これらは、シミュレーションモデルと観測データの融合という意味で、データ同化とも呼ばれるアプローチであり、観測データが取得できない将来の予測をモデルから行えるメリットがある。

具体的には「行動とする都市に存在する人々の位置」を状態変数とした状態空間モデルを用い、パーティクルフィルタによってデータの同化を行う。観測データであるメッシュ人口分布が得られない時刻における、パーティクルの時間発展を与えるのがシミュレーションであり、観測データが得られた際には、パーティクルごとの尤度(観測データへの当てはまりの良さ)を計算し、尤度で重み付けしてパーティクルをサンプリングして次の時刻の予測に用いる。なおシミュレーションについては、過去のPTデータに基づき、各人の目的地がある程度与えられている前提で、そこまでの交通状況に基づき速度などを変化させながら行なっている。

今回は局所モデルに基づいて全体を記述するモデルを構成する方法について述べる。具体的には、まず例として東京の気温データを取り上げながら、少数の固定したパラメータを持つ統計モデルでデータから意味を汲み取る。いわば全体モデルを用いたデータ解析から話をスタートする。次に、時間的に局在化した情報を取り出すために局所線形モデルを導入し、さらにそれを非線形に拡張することでモデルの表現力が豊かになることを見ていく。この局所非線形モデルは、確率差分方程式で通常与えられ、等式で表現される制約条件からの確率的なずれを許容する「柔らかな」モデルとなる。さらに、確率的なゆらぎを生み出すノイズ項が従う分布を、ガウス分布でない、つまり非ガウス分布にまで一般化することで、ジャンプや異常値といった、まれに生起する確率事象を上手に取り扱うことができるようになる。このようなガウス分布に従うノイズ項によっては表現ができない特性を非ガウス性と呼ぶ。

入力と出力の対が観測できる系に関する異常検知技術について述べる。この場合、入力と出力の関係を、応答曲面(ないし回帰曲線)という形でモデル化し、それからの外れという形で異常を検知する。実用上、しばしば入力と出力の関係は非線形となる。今回は、非線形回帰技術のうちで工学的に応用範囲の広いガウス過程回帰の手法について述べる。

入力と出力の双方が観測されている場合、最も自然な異常検知の方法は、与えられた入力に対して出力を眺めて、それが通常の振る舞いにより期待される値から大幅にずれているかどうかを見る、というものになる。この意味でこの問題を応答異常(response anomaly)検知問題と呼ぶこともできる。

「粒子フィルタ」をR言語でパッケージを使わずに作る。フィルタリングだけなら、初期化やパラメータ設定の部分を除くとほぼ3行で書ける。基本的にはデータ(観測値)に対して、時刻tでの観測に近い粒子ほど重みが大きくして、リサンプリングのステップで選ばれやすくなり、その結果データに近い経路が得られる。このとき、各時点の粒子の分布が、モデルから求めた事後分布(より正確にはフィルタリング分布)を表現しているということになる。

マルコフ連鎖モンテカルロ法

    MCMCは「マルコフ連鎖モンテカルロ法」(Markov Chain Monte Carlo Method)の略で、多変量の確率分布からサンプルを抽出する(乱数を発生する)ためのアルゴリズムの一つとなる。

    MCMCは単なる計算法であり、タスクを解くためには、MCMCで解ける様に問題を整理する作業(統計モデリング)が必要となる。算数の文章題で、加減乗算の計算そのものより「何を計算するか」が肝心なのと同様なものとなる。

    最小二乗法で曲線をあてはめたり、最尤法で確率分布のパラメータを推定するのに必要なものは「行列の分解」や「最適化」となる。それらは目的が「一つの決まった曲線や数字」(点推定値)を直接求めるものである為で、それに対してベイズ統計では「答」はまず「事後分布」という「分布」の形で与えられる。そこで、分布からのサンプルを生成するMCMCとの相性が抜群となる。点推定値や誤差、予測区間など、最終的に必要な情報はMCMCで生成した多数のサンプルから求める。

    MCMCと最適化の違いは、MCMCがずっと動き続けてサンプリングを生成するのに対して、最適化はどこか(うまくいくときには本当の最適解、うまくいかないときは曲初回)で止まる。実際には、MCMCも最適化に近い動きをすることもあるが、その場合でも最適解のまわりでいつまでも「ごにょごにょ」と動いて、ベイズの意味での誤差を表現する。MCMCの「収束」とは、分布の収束なので、ある一点二位ってそこで止まると言う意味ではない。

    MCMCは確率分布を扱う汎用の手法で、統計物理や頻度論的な統計学でも使われる。逆にベイズ統計では、ラプラス近似、カルマンフィルタ、逐次モンテカルロ法、変分ベイズ法などいろいろな計算法が使われていて、MCMCはその中の一つとなる。

    本ブログでは 以下のページにて、このマルコフ連鎖モンテカルロ法での基本的な理論と具体的なアルゴリズムと実装コード等について述べている。

    コメント

    1. […] 機械学習技術 確率的生成モデル サポートベクトルマシン スパースモデリング 人工知能技術 異常検知・変化検知技術  関係データ学習  時系列データ解析 シミュレーションと機械学習 デジタルトランスフォーメーション技術 […]

    2. […] 機械学習技術 確率的生成モデル サポートベクトルマシン スパースモデリング 人工知能技術 異常検知・変化検知技術  関係データ学習  時系列データ解析 シミュレーションと機械学習 デジタルトランスフォーメーション技術 […]

    3. […] 機械学習技術 確率的生成モデル サポートベクトルマシン スパースモデリング 人工知能技術 異常検知・変化検知技術  関係データ学習  時系列データ解析 シミュレーションと機械学習 デジタルトランスフォーメーション技術 […]

    4. […] 機械学習技術 確率的生成モデル サポートベクトルマシン スパースモデリング 人工知能技術 異常検知・変化検知技術  関係データ学習  時系列データ解析 シミュレーションと機械学習 デジタルトランスフォーメーション技術 […]

    5. […] 本ブログでは 以下のページにて、これらのシミュレーションとデータサイエンス、人工知能について述べている。 […]

    6. […] それらの中には、”シミュレーションとデータサイエンスと人工知能“で述べているようなシミュレーション技術を用いて生物の振る舞いや生命現象をモデル化し、生物の遺伝子 […]

    タイトルとURLをコピーしました