Help us understand the problem. What is going on with this article?

機械学習関係の論文を読み書きするための数式・記号まとめ

機械学習でよく使われる数式・記号

 機械学習・ディープラーニングの分野の論文で使われる数式・記号の自分用メモです。誰かの役にたつかもしれないのでまとめておきます。理系の大学の学部生や、数学全然使わなくなった社会人くらいを想定して書いています(自分は数学全然使わなくなった社会人です)。

 数式のTeX表記も記載しています。Qiitaで数式書くときや、論文を書くときに使えます(私は論文書く予定ないですが…)。Qiitaで数式を書く方法に関しては、以下の記事を参考にして下さい(この記事では解説しません)。

 TeX表記は、Qiitaに登録していれば、編集リクエストで見ること可能なのですが、Qiitaに登録していない人に向けて書いてあります。Qiitaに登録すれば編集リクエスト機能により、Qiita記事の数式のTeXソース見放題なので登録しておくのがオススメです。

 当方専門家ではありません。間違い、勘違いなど多々あると思います。間違いの指摘や、修正リクエスト等歓迎いたします。

\newcommand{\argmax}{\mathop{\rm arg~max}\limits}
\newcommand{\argmin}{\mathop{\rm arg~min}\limits}

内積

意味・使用例

 ベクトルの内積の公式は以下です。

\boldsymbol{a} \cdot \boldsymbol{b} = \|{\boldsymbol{a}}\|\|{\boldsymbol{b}}\|\ \cos\theta

 内積は、機械学習のみならず、自然言語処理・画像処理など様々な分野に出てくる非常に重要な概念です。

 詳細は、深すぎるのでこの記事では解説しません。イメージ的には以下記事が分かりやすいです。

【数学】「内積」の意味をグラフィカルに理解すると色々見えてくる その1

 書籍だとプログラミングのための線形代数が良かった記憶があります。

コード例

 内積は以下のようにa @ bといったように'@'で計算できます。np.dot(a, b)でも同じ計算ができますが、@の方がスマートですね。古いNumpyで@が使えないときはnp.dotを使いましょう(可能ならNumpyをバージョンアップしましょう)。

a = np.array([1, 2])
b = np.array([3, 4])
a @ b

 結果は以下です。

11

TeX表記

\boldsymbol{A} \cdot \boldsymbol{B} = \|{\boldsymbol{A}}\|\|{\boldsymbol{B}}\|\ \cos\theta

参考リンク

arg max, arg min

意味・使用例

 以下ページが分かりやすいです。
argmax,argminの意味と例

 機械学習では、例えば単回帰分析で、最小二乗法で解を求める式に使われます。以下は単回帰の解を最小二乗法で求める場合の式です。

\hat{w_0}, \hat{w_1} = \argmin_{w_0, w_1} \sum_{i=1}^{n} (y_i - w_0 - w_1 x_i)^2

 解のハット記号に関しては、このページのハットの項目を参照下さい。単回帰分析に関しては、以下記事参照下さい。

Pythonで基礎から機械学習 「単回帰分析」

コード例

 Numpyのargmax関数で、リストのうち一番大きい数が何番目にあるかを求めることができます。

import numpy as np
array = [10, 20, 100, 50, 30]
np.argmax(array)

結果は、以下の通りです。3番目の100が大きいので2が返ってきます(0から数えるので、3番目は2になります)。最大値が2つあった場合は、リストの先頭のものが選択されます。

2

argmin関数で$\argmin$も求められます。以下を実行すると、arrayの0番目の10が一番小さい値なので0が得られます。

np.argmax(array)

TeX表記

 自分で定義する必要があるそうです。Qiitaの場合は、記事の最初に以下のように定義しておくと、以降は$\argmax$と書くと$\argmax$と表示されます。

\newcommand{\argmax}{\mathop{\rm arg~max}\limits}
\newcommand{\argmin}{\mathop{\rm arg~min}\limits}

参考リンク

平均値 バー・ミュー

意味・使用例

 平均を表します。特に統計の分野では$\bar{x}$(エックスバー)は標本の平均値、$\mu$(ミュー)は母集団の平均値を意味するようです。

コード例

 以下のコードで計算できます。

import numpy as np
array = [1, 2, 3, 4, 5]
np.mean(array)

 結果は以下です。

3.0

TeX表記

\bar{x}, \mu
\bar{x}, \mu

参考リンク

推定値 ハット

意味・使用例

 統計では、真の値と区別するため推定値という言葉を使い、以下のようにハットをつけて区別します。

\hat{w_0}, \hat{w_1}

 上のarg max, arg minのところで出てきた、単回帰の解を最小二乗法で求めるときの解にハットが付いているのは推定値であることを示しています。

 これは、単回帰の解は母集団でなく、母集団から取り出した標本(サンプル)から求めているため、母集団から求めた真の値と区別するためにハットをつけてあります。

 その他、統計では推定量、不偏推定量という概念もあるのですが、まだ説明できるほど理解できていないです。参考リンクに、参考になりそうな記事を貼りましたので参照下さい。
 

TEX表記

\hat{w_0}, \hat{w_1}

参考リンク

総乗記号 パイ

参考リンク

セットマイナス

$\setminus$

TeX表記

\setminus

転置記号

意味・使用例

 転置行列に使われる記号です。転置行列とは、m行n列の行列に対して(i, j) 要素と (j, i) 要素を入れ替えたn行m列の行列です。

 また、ベクトルの内積は、転置記号を使って以下のようにも書けます。

\boldsymbol{a}^\top\boldsymbol{b}

TeX表記

\boldsymbol{a}^\top\boldsymbol{b}

参考リンク

転置行列 ~ 公式と性質 ~

Lpノルム

意味・使用例

 ベクトル$\boldsymbol{x}$をn次元 $x = (x_1,\cdots,x_n)$としたとき、その時$L^p$ノルムは次のように定義されます。

\|\boldsymbol{x}\|_p = \sqrt[p]{|x_1|^p+|x_2|^p+\cdots+|x_n|^p}

 $L^p$ノルムは、大きさを一般化したもので、$L^1$ノルムは、マンハッタン距離で、$L^2$ノルムは、ユークリッド距離を表します。詳細は、参考リンクを参照下さい。

Tex表記

\|\boldsymbol{x}\|_p = \sqrt[p]{|x_1|^p+|x_2|^p+\cdots+|x_n|^p}

参考リンク

ターンエー

dom

まとめ

 まだ作成途中のメモ書きですが、自分のために公開します。随時追記中です。「こんなのあるよ」とか教えていただけましたら調べて追記いたします。

 機械学習勉強中で、学んだことを以下ページにまとめています。初学者の方は、何かの参考にしていただけましたら幸いです。誤り・不足事項などありましたら、編集リクエストやコメントいただけましたら幸いです。

Pythonで基礎から機械学習まとめ

参考リンク

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away