コンピューターの数学の基礎
コンピューターサイエンスの根底には数学がある。例えば深層学習や自然言語処理等に用いられるの機械学習には関数から始まり微分/積分を使った最適化の計算が使われ、人工知能で使われるシンボリックなアプローチでは集合論がベースに式の評価が行われたりしている。それらのデジタルトランスフォーメーション応用やITシステム応用を考える前にそれぞれの基礎的な要素について知識を整理することは重要な作業となる。
小島寛之氏による「数学入門」は、ピタゴラスの定理から始まる幾何学、機械学習の世界によく現れる関数、微分、代数、積分、そして最後に基礎数学の土台である集合について述べられている文字通り数学の入門書で、分量も新書版で250ページとお手頃だ。
第1章の「ピタゴラスの定理から始まる冒険」
三角関数の定理と、幾何学と代数の融合、そして幾何学と融合させたおかげでイメージ出来るようになった負の数、最後はベクトルの概念とそれらの計算について語られている
第2章「関数から始まる冒険」
コンピューターの世界ではお馴染みの関数に関する章となる。まず関数とは「世界の法則を記述するもの」として定義される。我々の世界には「規則」とか「法則」が山ほどあり、それらは数学を使って明確に定義できる。
関数は一つの量xを別の量yと結びつけるものであり、それら結び付けるものとしては原因と結果であったり、一つの単位から別の単位への変換であったり、時間の経過に関連する変化だったりする。
二つの量の関連性には大きく分けて「確定的な法則(一つを決めればもう一つが確実に決まるもの)」と「統計的な法則(〜の傾向があるとアバウトに表されるもの)」があり、関数はその前者に対応するものとなる。
関数自体は「数」ではなく「仕組み(アルゴリズム、システム全体)」となる。英語のfunctionは正にこの機能/働きである事を示している。このfunctionが中国に輸入された時に発音を踏襲して「函数(ハンシュウ)」とされ、それがそのまま日本に輸入されて「関数」と呼ばれるようになった。
ここで仕組みを表現する為に「文字式」が元いられるようになった(例4x+2y) 。文字式はアルゴリズムそのものであり、文字式を見る事で「それがどんな手順を示しているか」を読み取る必要が出てくる。
2章の後半では、この関数の概念を1章で出てきたベクトルと行列の概念まで拡張している。
第3章「無限小の 世界の冒険」
ここで無限小として「どんな正の数よりも小さいがゼロではない長さ」として想定、その無限小をを繋いだもので曲線を近似していく。
ここでまず単純な例として、一次関数(例えばy=3x+2)を考えた時に、3×1+2=5だから、y=3x+2上にO'(1,5)はあり、その点O’を座標の交点として座標軸を移動させ新しい座標軸をp軸、q軸とする。この時pとqの関係はq=3pとなる。(O’を(0,0)とてた点p,qから見るとy=3p+2は比例関係になる)このpとqを局所座標と呼び、Δx、Δyと表す。
この単純な例を曲線に適用する。例えばy=x2の時、y=x2上の点P(1,1)を想定すると、局所座標はΔx=x-1、Δy=y-1となる。これを元の式に当てはめると(Δy+1)=(Δx+1)2→Δy=2Δx+(Δx)2となる。ここで点Pのごく近傍ではΔxと比べて(Δx)2は非常に小さいので(例えばΔx=0.1だと(Δx)2は0.01、Δx=0.01だと(Δx)2=0.001となり、Δxが小さくなると(Δx)2は非常に小さくなって無視できる)、点Pのごく近傍ではΔy=2Δxと近似できる。
ここで話をもう少し汎化して、点P(a,f(a))の近くで関数f(x)を近似する局所近似一次関数を考える。(局所近似)一次関数なのでΔy=mΔxと表せるので、それらをf(x)に代入すると、Δx=x-aとなり、Δy=f(x)-f(a)=f(a+Δx)-f(a)、近似したものと実際の値の差が誤差となるので誤差=f(a+x)-f(a)-mΔxとなる。これをΔxで割ったものが誤差率(近似の程度を表したもの)となるので(f(a+Δx)-f(a)-mΔx)÷Δx、これは(f(a+Δx)-f(a))÷Δx-mとなる。ここでΔxが0を近づけた時に誤差率が0になる((f(a+Δx)-f(a))÷Δx-m=0)とすると上式は以下のように表せる。
\[ m=\lim_{\Delta x \rightarrow 0}\frac{f(a+\Delta x)-f(a)}{\Delta x}\]
これでめでたく微分の式が導出された。このmを微分係数と呼び、これは関数の「局所的な性質」(グラフ上のごく近くだけを見ると判定できるような性質)を教えてくれるものになる。具体的にはある点で曲線が増加状態か、減少状態かというもので、これを使って関数の極値を求めることで関数最適化問題を解くことが、「機械学習技術」の原点となっている。
第4章「連立方程式を巡る冒険」
まずは古典的なツルカメ算「ツルとカメが合わせて5匹いる。足は合計14本である。それぞれ何匹いるか」というものから。実際のツルカメ算での計算ではまず、全部ツルと仮定した時の足の本数2×5=10で、14本には4本たりないカメはツルより2本多いので置き換えるたびに2本減らしていき、ツルを2匹(4÷2)置き換えるとちょうどピッタリとなる。
これを連立方程式で解くとツルをx匹、カメをy匹として2x+4y=14、x+y=5の連立方程式を解くこととなる。2未知数2連立方程式のクラメールの公式(ax+by=pとcx+dy=qとしたときx=(dp-cq)/(ad-bc)、y=(aq-bp)/ad-bc))を使って答えを計算することができる。これは連立方程式を以下のようなベクトルで表すと
\[ x\begin{pmatrix} a\\b\end{pmatrix}+y\begin{pmatrix} c\\d\end{pmatrix}=\begin{pmatrix} p\\q\end{pmatrix} \]
クラメールの法則に現れるad-bcは(a,b)と(c,d)という2つのベクトルで表される平行四辺形の面積となる。これはdet:determinalをもちいて以下のような式であらわされる。
\[ det(\vec{a},\vec{b})=det\left(\begin{pmatrix} a\\b\end{pmatrix},\begin{pmatrix} c\\d\end{pmatrix} \right)=ad-bc \]
幾何学と数学が結び付けられたおかけでベクトルや三角関数の取扱ができるようになり、それらを用いた演算として行列や連立方程式の計算ができるようになる。更にそれらはスペクトルクラスタリング等の最適化問題と機械学習の世界につながっていく。
行列や連立方程式の領域の数学である”線形代数”に関しては”線形代数の概要と参考書“にて述べているのでそちらも参照のこと。
第5章「集合をめぐる冒険」
集合とはものを集めたもののことを言う。ものは数でも、図形でも、座標でも良い。そもそも集合が考えられたのは「無限」を扱う為だ。無限とは数え切れないほど多いことで、この無限が実在し到達可能かどうかを確認する為に集合が使われた。
それらを考える為、無限どうしの比較を考える。自然数と(正の)偶数は共に無限だ。普通に考えると、自然数は偶数と奇数が並んでできているのだから自然数の方が大きいのは自明に思える。これに対してカントールは自然数と偶数の間に1対1のペアを作るとあぶれは出ないので、「同じ」と結論した。ここで自然数と偶数の比較するものを通常の個数とは異なり「濃度」と定義し「自然数の集合の濃度」と「偶数の個数の濃度」は同じであるとした。
次に「自然数の濃度」と「実数の濃度」に対して同じように1対1のペアが存在すると仮定した時に、そうでない数字を生成できる為、仮定が矛盾しているしていることが判明して「自然数の濃度」は「実数の濃度」より大きい事が証明でき、さらに「実数からなる集合(実数の部分集合)全てからなる集合」(集合の集合)は、「実数の集合」よりも大きな濃度を持つことを証明した。
これを更に進めて、「自然数の濃度よりも大きく、実数の濃度より小さい濃度を持つ集合は存在しない」という仮説(連続体仮説)を証明しようとしたが、これは未だ達成されていない。この考え方をベースに数とは何か(実数や自然数の規定)や、様々な空間での関数の連続性を見るための概念である「位相」や、確率の定義も可能になった。
確率論に関しては、集合論と積分理論を用いて組み立てることができる。確率現象とは「未来に起きることなので現時点では不確実な現象」や「すでに結果がでているが、情報が不足しているのでハッキリ分からない現象」として定義される。この時起きる事象あるいは結果の可能性を集合で表した時、それを「標本空間」と呼び、標本空間の部分集合を「事象」と呼ぶ。ここで事象の起こりやすさの程度を「事象の確率」と呼び確率を導入する。
また集合を使ってものの関係を定義することもできる。その類別の中に入っている二つの要素a,bの間に特定の関係(2項関係)があると定義してa〜bと表す。例えば{太郎、二郎、花子、幸子}
の集合の中でa〜bとしてaはbを好きとかaとbは同性であるとかの関係を定義したり、{自然数]の集合のなかでa+b=5の関係でa〜bを定義したりする。
ここで2項関係の中で以下の3つの性質を持つ時に「同値関係」と定義される。(1)a〜a(反射率)、(2)a〜bならばb〜a(交換律)、(3)(a〜bかつb〜c)ならばa〜c(推移律)、これを前述の例に当てはめてみると、好きの関係の場合には(1)は成り立つが(2)と(3)は成り立たないので「好き」関係は「同値関係ではない」、「同性」の場合はすべて成り立つので「同値関係」になる。a+b=5も(2)は成り立つが(1)(3)が成り立たないので同値関係とはならない。
2項関係「〜」が同値関係であるときは、「〜」はある種の類似性を意味していると考えることができる。この同値関係を用いることで集合をグループ分けすることができ、分られた部分集合の要素を「同値関係〜による同値類」と呼ぶ。たとえば同性の関係で部分集合を作ると「男の集合」と「女の集合」ができる。このように作った2の異なる同値類の集合の間には全く共通の要素がない。2項関係は”構造とアルゴリズムと関数“で述べている代数学でも現れる概念となる。
集合論では、この同値類の概念を利用して、数を定義したり更に拡張して数学の概念を定義したり、この他にもいくつかトピックがある。集合論の概要や参考図書に関しては”集合論の概要と参考図書“に記載してあるのでそちらも参照のこと。
コメント
[…] 前回からの続きで、数学について。 […]
[…] またコンピューターの数学の基礎のパートで述べた「同値関係」は(1)a〜a、(2)a〜bならばb〜a、(3)(a〜bかつb〜c)ならばa〜cの3つの関係が成り立つものとして定義される。類似性の定義と比較すると、(3)の推移律まで成り立てば等価(同一のもの)、(2)の対称性(交換律)と(2)の反射律がのみ成り立つものは類似と解釈することができる。 […]
[…] 因果関係とは数学的には、以前コンピューターの数学の基礎で述べた「二項関係」を元に集合モデルをベースに考えることになる。 […]
[…] コンピューターの数学の基礎 […]
[…] それに対して、人文系の実験(例えば前述のチョコレートとノーベル賞のような社会科学系やなんらかのトリガーを与えた時人のリアクションのような心理学のケース)では、結果に影響を与える要因を規定することが困難なため、考えられうる条件をランダムに変化させた上で、原因のパラメータを変化させる手法がよく使われる。他の条件をランダムにすることで効果の連鎖を断ち切るイメージだ。 因果関係とは数学的には、以前コンピューターの数学の基礎で述べた「二項関係」を元に集合モデルをベースに考えることになる。 […]
[…] コンピューターの数学の基礎 […]
[…] コンピューターの数学の基礎 […]