機械学習・ディープラーニング・統計の数式を理解するコツ

ai-math ディープラーニング

ちょっと本格的な機械学習・ディープラーニングの本になると、理論の説明に数式が用いられることが多い。

この記事では、そのような数式を理解していくコツを紹介する。

変数の種類を把握する

数式をなんとなく読んでいると、「微妙に分からない」がチリに積もって「全く分からない」になる。

これを防ぐには、まず数式に出てくる全ての変数の種類をしっかり把握すると良い。

変数がスカラーなのか、ベクトルなのか、行列なのかはっきりさせよう。
最初のうちは変数の近くに赤ペンなどで○ス(丸の中にス)、○べ(丸の中にべ)、○行(丸の中に行)などを書いていくと良い。

親切な本なら、ベクトルは太字になっていることが多いので、そのへんもヒントにして読んでいく。
変数が太字か太字でないか、つまりベクトルかベクトルでないか気にして読んでいくと、ちょっと理解が深まる。

演算の種類を把握する

次に、演算の種類を把握して読んでいくと良い。

これは例えば、数式が「実数同士の積」なのか「ベクトルのスカラー倍」なのか「ベクトルとベクトルのドット積(内積)」なのか、はたまた「行列の積」もしくは「ベクトルを行列とみなした行列積」なのか。

この辺のことをはっきりと把握して数式を読むこともほぼ必須だと思う。

演算の種類を把握するためには、前段階として変数の種類を把握しないといけないので、どちらを優先するかと聞かれたら、変数の種類把握だ。
それに慣れてきたら、今度は演算の種類も把握していこう。

演算の種類を把握すると、その演算の結果も分かるようになる。
つまり、「実数同士の積」の結果は実数だし、「ベクトルのスカラー倍」の結果はベクトル、「ベクトルとベクトルの内積」の結果はスカラー、「行列の積」の結果は行列、「ベクトルを行列とみなした行列積」の結果は行列だ。

例を挙げる。ベクトルaとベクトルbがあって、\( \boldsymbol{a} \cdot \boldsymbol{b} \)と書いてあったら、十中八九これはベクトルaとベクトルbの内積だ。
掛け算の記号×を省略して\( 2 \cdot 3 = 6 \)と書くことがあるが、この2つのドット「\( \cdot \)」の意味は異なる。前者がベクトル同士の内積、後者が実数同士の積だ。

また、同じ内積の例で、\( \boldsymbol{a}^T \boldsymbol{b} \)と書いてある場合、このとき使われている演算は「ベクトルを行列とみなした行列積」だ。
行列の演算の定義を考えてみれば、内積と同じ数式を計算していることが分かるが、この場合結果は1×1の行列になるけれど、これをスカラーとみなす場合もある。

変数の形状を把握する

さらに数式を深く読むために、変数の形状に注意を向けると良い。

すなわち、ベクトルの場合、何次元のベクトルなのか。
行列の場合、何行何列の行列なのか。

これを把握するコツは、下のような数式に慣れることだ。

$$
\boldsymbol{a} \in R^n
$$

$$
A \in R^{n \times m}
$$

自分は、最初のうちはこれらの数式が出てくると意味不明で嫌だなーと思っていたのだが、慣れていくうちにこれらの数式があると安心するようになった。

数式の意味は簡単で、上のように書かれていたらaはn次元ベクトル、下のように書かれていたらAはn行m列行列と理解すれば良い。

確率・統計

確率・統計の場合、変数が確率変数であるか、確率変数ではなくただの定数かどうか。

また、確率変数の場合、かならず確率分布が付随するのでそれを確認する。

離散型の確率変数か、連続型の確率変数か確認するのも重要。

さらに言えば、確率分布が「正規分布」などと分かった場合に、平均や分散などのパラメータも確認できればなお良いと思う。

その他 Tips

数学書や機械学習の専門書に出てくるベクトルは、言及されていなければ基本「縦ベクトル」だと考えて良い。

Transformerの論文「Attention is All You Need」など、例外的に横ベクトルで話が進んでいるものもあるが、基本縦ベクトルで話が進む書籍が多いと思う。

よく専門書で\( (a_1, a_2, \ldots, a_n)^T \)のようにベクトルを表記してあるのは縦ベクトルで話を進めるためだ。

とりあえず今日はここまで。

-4

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