1. イントロダクション#

1.1. モデルとシミュレーション#

本節の内容は,文献[1, 2, 3] を参考にしている.

1.1.1. 数理モデルとは?#

データ分析では,ある対象(現象)を観測することでデータを取得し,それを様々な手法で分析する. データ分析でまず行うのは,データを可視化したり,取得したデータから平均値や標準偏差などの記述統計量を計算することである. 一方,取得したデータを基に未来の予測や制御を行ったり,データが生成されたメカニズムを明らかにすることもデータ分析の一部である. こうした高度なデータ分析を行う際には,対象とする現象のデータ生成ルールを数学的に記述した数理モデルが用いられる.

1.1.2. 数理モデルの構成要素#

数理モデルは以下の3つの要素から成り立っている:

  1. 変数

    • 対象となる現象の状態・性質・量などを数字やラベルで表したもの

    • 変数を実際に観測したものがデータ

  2. 数理構造

    • 変数が従うルールを数学的に記述したもの

    • 数理モデルの骨組み

  3. パラメータ

    • 数理構造の中に含まれる定数

    • データを数理モデルに調節する

数理モデルを作ることを数理モデリングと呼ぶ. 数理モデリングの肝は2.数理構造と3.パラメータをどのように設定するかである.

数理モデルの種類#

数理モデルには,大きく分けて以下の3つの種類が存在する.

  1. 統計モデル

    • データの生成元として確率分布を仮定したモデル

    • 比較的少数のデータを対象とし,数理構造も単純

    • 例:回帰モデル,ベイズモデル

  2. 機械学習モデル

    • 機械学習に基づくモデル

    • (統計モデルに比べて)大量のデータを対象とし,数理構造が複雑

    • 例:教師なし学習(クラスタリング,次元削減),教師あり学習(ニューラルネットワーク),強化学習

  3. 物理モデル

    • 現象の発生プロセス/メカニズムを数学的に記述したモデル

    • 例:微分方程式(運動方程式),確率過程(ランダムウォーク),エージェントモデル(ボイドモデル)

これらの数理モデルのうち,統計モデルと機械学習モデルは個別のデータから出発してモデルのパラメータを推定するという帰納的な手順を取る. 一方,物理モデルの場合は,現象のメカニズムを取り入れた一般的なモデルから出発して,具体的に何が起こるかを調べるという演繹的な手順を取ることが多い(ただし,データから出発して物理モデルのパラメータを推定するという分析も行われる).

1.1.3. 数理モデリングの目的#

数理モデリングには大きく分けて以下の2つの目的がある[2]

  • データを用いて未来の予測・対象の制御・新たなデータの生成を目指す(応用志向型の数理モデル

  • データの背後にあるメカニズムの理解を目指す(理解志向型の数理モデル

応用志向型の数理モデリング#

応用志向型の数理モデルは手元のデータを基に以下を行うためのモデルである:

  • 未知のデータに対して予測を行う

  • 対象を認識・識別したり,制御を行ったりする

  • 新しいデータを生成して利用する

応用志向型の数理モデルでは,現象の理解のしやすさよりも,実装したときの性能を重視する. よって,変数やパラメータを増やし,さらに数理構造も複雑にすることが多い. また,実装のために大量のデータが必要なのも特徴である.

数理モデルの中で,統計モデルの一部と機械学習モデルの多くは応用志向型の数理モデルとして用いられる. 特に,深層学習や強化学習に基づくモデルは,画像の判別や生成,自動運転や機械翻訳などの応用のために広く用いられている.

理解志向型の数理モデリング#

理解志向型の数理モデルは「データがどのようなメカニズムで生成されているかを理解する」ためのモデルである. 通常,対象とする現象は非常に複雑であるが,現象を細かい構成要素に分けて考えると,重要な部分とそうでない部分が存在する. そこで,理解志向型の数理モデルを作成する際には,現象を構成する様々な要素のうち「本質的な部分だけを簡略化して取り出す」ことが行われる. これは,変数やパラメータをできるだけ減らし,単純な数理構造のモデルを目指すということである. もし,このような単純化を行った上でもモデルがデータを説明できるのであれば,実際の現象の背後にも同様の数理構造が潜んでいる可能性が高い. 理解志向型の数理モデルでは,最低限の変数・パラメータと単純な数理構造によって幅広い現象を説明できることが重要であるが,必要に応じてモデルを複雑化させることも必要となる.

理解志向型の数理モデルの典型例は物理モデルである. 例えば,サッカーにおいて1チームが1試合で入れる得点数の分布(得点分布)を調べると,1つのピークを持つ左右非対称なヒストグラムが得られる. そこで,この現象のモデルとして,「非常に短い時間\(\Delta t\)の間に一定の確率\(\lambda \Delta t\)で独立に得点が入る(ただし,\(\Delta t\)の間に2点入ることはない)」という数理モデル(定常ポアソン過程)を考えてみる. すると,このモデルから理論的に導かれる得点数の分布(ポアソン分布)は実際のサッカーのデータとよく合うことが分かる. 以上は,サッカーの得点という現象に対して,どの時刻でもランダムに得点が入るというメカニズムを仮定した数理モデリングの例である. もちろん,サッカーが厳密にこのモデルに従っているわけではないが,現象の本質的な部分はよく捉えたモデルといえる.

なお,回帰モデルや確率分布を仮定した統計モデル,クラスタリングや次元削減などの機械学習モデルも,変数・数理構造・パラメータの意味が解釈可能な形であれば,理解志向型の数理モデルとして用いられる.

1.1.4. シミュレーションとは?#

数理モデルの分析では,実際のデータに合うようにパラメータを調節するだけでなく,パラメータを変化させたときに変数の値がどのように変化するかを調べることもできる. これをシミュレーションと呼ぶ. 一般に,元の現象は実験が難しいことが多いが,数理モデルを用いたシミュレーションでは模擬的な実験が可能となる.

数理モデルの中でも,物理モデルや統計モデルの一部は手計算によって理論的な解析が可能であるが,モデルが複雑になるとそれも困難になる. このような場合には,コンピュータによるシミュレーション(数値計算)が行われる. コンピュータシミュレーションを行うには,数理モデルをコンピュータ上で計算するためのアルゴリズムをプログラミング言語を用いて実装する必要がある. プログラミング言語には様々なものがあり(例えば,C++, Fortran, Java, Python, Juliaなど),用途に応じて使い分ける必要があるが,本講義ではPythonを用いる. Pythonはコンパイルが不要なスクリプト言語であり,対話的な実行から大規模な開発まで可能である. また,使用人口が多く,用途に応じた様々なパッケージが用意されている. なお,プログラミング環境の構築については次章で説明する.

1.2. 講義の概要#

1.2.1. 講義の目的#

本講義では,様々な数理モデルの中でも特に理解志向型の数理モデルを対象とし,各モデルの理論的な背景とPythonによる実装方法を概説する.

1.2.2. 講義スタイル#

講義の内容は全てこの講義ノートに含まれている. 各講義は板書による理論背景の説明と各自のPCによるプログラミングの実習から成る.

1.2.3. 評価方法#

授業内でたまに課すレポートと授業への取り組み姿勢によって評価する.