はじめに
Latexで論文を執筆する際に気をつけるべき点として,数式におけるフォント,添字,記号や独自の表記法がある.これらを間違えてしまうと自分の主張を正しく伝えられないだけでなく,査読の結果などに響く場合もある.
そんな数学表記について,自分自身の復習も兼ねてまとめてみた.なお,今回は機械学習分野における数学表記についてお話ししていく.
今回取り扱う数学表記一覧
フォント
スカラーとは,大きさ,値は持つが方向を持たない数値のことを指す.
例)気温,身長,体重 etc...
スカラーはLatexで数式を書く際のフォント(小文字・イタリック(斜体))のままで表現するため,特別な書き方はない.
$ y = x^2 + 4x + 4 $
<出力結果>
y = x^2 + 4x + 4
ベクトルとは,大きさと方向を持つ量のことを指す.
筆者の専攻分野である機械学習分野ではベクトルを数式内で多用するため,書き方を覚えておくと良い.
ベクトルは,機械学習分野では 小文字・太字・ローマン(立体) で表現される.
\mathbf{x}, \boldsymbol{\alpha}
<出力結果>
\mathbf{x}, \boldsymbol{\alpha}
行列とは,複数の数値や数式を縦と横に並べたものである.
ベクトルは複数の数値や数式を一列にひとまとまりにしたものであるため,ベクトルの集まりが行列と考えることもできる.
行列は,大文字・太字・ローマン(立体) で表現される.
\mathbf{X}
<出力結果>
\mathbf{X}
また,要素を示したいときは次のコマンドを用いて表現されることもある.
\begin{bmatrix}
a & b \\
c & d \\
\end{bmatrix}
<出力結果>
\begin{bmatrix}
a & b \\
c & d \\
\end{bmatrix}
集合とは,特定の条件を満たす者の集まりである.
機械学習分野では画像分類モデルに入力するデータセットや多次元のベクトル空間を集合として表すことがある.
集合は,黒板太字・カリグラフィを用いて表現される.
\mathbb{R}, \mathcal{D}
<出力結果>
\mathbb{R}, \mathcal{D}
テンソルとは,スカラー、ベクトル、行列を一般化した概念(多次元配列)である.
機械学習分野では,データを格納するための箱として用いられ,入力する画像データをテンソルとして扱うことが多い.テンソルは階数によって行列やベクトルを表す.
テンソルは,大文字・サンセリフ または カリグラフィで表現される.
\mathsf{X} \mathcal{S}
<出力結果>
\mathsf{X}, \mathcal{S}
添字
値が変化していくものを変数と呼ぶ.
機械学習分野では,データセットの画像などを表す場合やベクトルを表す際に用いられる.
変数を表す添字は,イタリックで表現される.なお,Latexは小文字・イタリック(斜体)が基本となる書式であるため,基本的にコマンドは使わず表現可能である.
x_i, y_j
<出力結果>
x_i, y_j
添字に特定の意味(最大,最小 etc...)を持たせる場合には,ローマン(立体) を使用する.
x_\mathrm{i}, y_\mathrm{j}
<出力結果>
x_\mathrm{i}, y_\mathrm{j}
機械学習でよく使われる記号
行列の縦列と横列の入れ替えを行うことを転置という.また,入れ替えを行った行列のことを転置行列といい,行列計算において転置行列は頻繁に使用される.
機械学習分野では様々な場面で使用されるが,特にモデルの内部計算で頻繁に使用される.
転置行列は上付き文字のTで表現される.その際,イタリックのTは変数に見えるため推奨されない(イタリックが使われている場合は,変数を表すのか転置を表すのか十分に確認する必要がある).
A^\top, A^\mathsf{T}, A^\intercal
<出力結果>
A^\top, A^\mathsf{T}, A^\intercal
ベクトルの大きさ,距離を求めるための概念である.
機械学習分野では,L2ノルム(ユークリッド距離),L1ノルム(マンハッタン距離)がよく使われる.
ノルムの種類(L2,L1の数字の部分)は右下に記載することが多い.また,コマンドを入力する際に二重線を||のように縦棒2本で表現しないよう注意する.
\| \mathbf{x} \|_1, \| \mathbf{x} \|_2 %OK
|| \mathbf{x} ||_1, || \mathbf{x} ||_2 %NG
<出力結果(OK)>
\| \mathbf{x} \|_1, \| \mathbf{x} \|_2
<出力結果(NG)>
|| \mathbf{x} ||_1, || \mathbf{x} ||_2
ベクトルがどれだけ同じ方向を向いているかを表すものを内積という.
機械学習分野ではベクトルが向いている角度の類似度を測るものとして内積を用いる.
A \cdot B, \left< A,B \right>, \operatorname{tr}(A ^ \mathrm{T} B)
<出力結果>
A \cdot B, \left< A, B \right>, \operatorname{tr}(A ^ \mathrm{T} B)
全く同じ形の行列2つの要素同士の掛け算を行い,新たな同じ形の行列を求めることをアダマール積という.
機械学習分野では重みに対するマスク学習を行う際などにアダマール積を用いる.
\mathbf{A} \odot \mathbf{B}
<出力結果>
\mathbf{A} \odot \mathbf{B}
多変数関数に対して,特定の変数以外を定数とみなし微分する計算方法を偏微分という.
機械学習分野では損失関数の重みに対する勾配を求める際などによく使用される.
\frac{\partial f}{\partial x}
<出力結果>
\frac{\partial f}{\partial x}
これまで紹介したもの以外にも重要なコマンドや数学演算子が存在する.全てを紹介することはできないが,よく使われるものをまとめる.
| 種類 | コマンド | 出力 | ポイント |
|---|---|---|---|
| sin関数 | \sin | $\sin$ | - |
| cos関数 | \cos | $\cos$ | - |
| tan関数 | \tan | $\tan$ | - |
| arcsin関数 | \arcsin | $\arcsin$ | - |
| arccos関数 | \arccos | $\arccos$ | - |
| arctan関数 | \arctan | $\arctan$ | - |
| 損失関数 | \ell, L | $\ell$, $L$ | ある1つのデータに対しての損失を表す |
| 損失関数 | \mathcal{L} | $\mathcal{L}$ | $\ell$の総和として用いられる |
| 総和 | \sum | $\sum$ | - |
| 勾配 | \nabla | $\nabla$ | - |
| 正則化パラメータ | \lambda | $\lambda$ | 大文字の表記は\Lambda |
おわりに
今回はLatexの数式表現についてまとめてみた.筆者自身も忘れている部分が多く,良い復習の機会となった.
これから卒業論文などでLatexの環境を初めて触る方にとって,少しでも論文を書く際の手助けになればと思う.