機械学習で正則化の強さを測るとき、信号処理で誤差の大きさを評価するとき、あるいは最適化問題で収束条件を書くとき。ノルムと絶対値は「大きさを測る」ための基本的な道具であり、LaTeXでの正しい書き方を知っておくことは理工系の文書作成において重要です。
しかし、LaTeXにはノルム専用のコマンドが標準では用意されていないため、自分で縦線を組み合わせて書く必要があります。絶対値の |...| とノルムの \|...\| を混同するミスもよくあります。
本記事の内容
- 絶対値の書き方(
|...|) - ベクトルノルムの書き方(
\|...\|) - 行列ノルムの書き方
- 各種ノルム($L^1$, $L^2$, $L^\infty$)の表記
- 括弧のサイズ自動調整
前提知識
この記事を読む前に、以下の記事を読んでおくと理解が深まります。
- ベクトルの太字・矢印記号をLaTeXで書く — ベクトルの表記法
- 括弧のサイズ調整 — サイズ自動調整の基本
絶対値の書き方
絶対値とは
絶対値は実数の「大きさ」を表すもので、符号を取り除いた値です。数直線上で原点からの距離と考えることもできます。$|{-3}| = 3$、$|5| = 5$ のように、常に0以上の値になります。
基本的な書き方
絶対値は縦線 | で式を囲みます。
$$ |x|, \quad |-3| = 3, \quad |a – b| $$
$$
|x|, \quad |-3| = 3, \quad |a - b|
$$
LaTeXの数式モードでは、| はそのまま縦線として表示されます。
サイズ調整が必要な場合
中身が大きい式(分数など)を含む場合、| のサイズが合わなくなることがあります。その場合は \left| と \right| でサイズを自動調整します。
$$ \left|\frac{a}{b}\right| $$
$$
\left|\frac{a}{b}\right|
$$
\left| と \right| を使わないと次のようになり、縦線が分数より短くなってしまいます。
$$ |\frac{a}{b}| $$
手動でサイズを指定する
\left と \right による自動調整ではなく、手動でサイズを指定したい場合は \big、\Big、\bigg、\Bigg を使います。
$$ |x|, \quad \big|x\big|, \quad \Big|x\Big|, \quad \bigg|x\bigg|, \quad \Bigg|x\Bigg| $$
$$
|x|, \quad \big|x\big|, \quad \Big|x\Big|, \quad \bigg|x\bigg|, \quad \Bigg|x\Bigg|
$$
サイズは左から順に小さいものから大きいものです。内容に応じて適切なサイズを選びましょう。
複素数の絶対値
複素数 $z = a + bi$ の絶対値(modulus)は次のように書きます。
$$ |z| = |a + bi| = \sqrt{a^2 + b^2} $$
$$
|z| = |a + bi| = \sqrt{a^2 + b^2}
$$
表記自体は実数の場合と同じ |...| ですが、複素平面上での原点からの距離を表しています。
絶対値の書き方を押さえました。次に、ベクトルの大きさを表すノルムの書き方に進みましょう。
ベクトルノルムの書き方
ノルムとは
ノルムはベクトルの「大きさ」を一般化した概念です。絶対値が実数の大きさを測るのに対し、ノルムはベクトルや行列の大きさを測ります。日常的な例えで言えば、絶対値は「数直線上の距離」、ノルムは「空間内の距離」に相当します。
基本的な書き方
ノルムは二重の縦線 \|...\| で囲みます。
$$ \|\bm{x}\| $$
$$
\|\bm{x}\|
$$
\| は二重の縦線 $\|$ を出力します。これが絶対値の単一の縦線 | との最も重要な違いです。
サイズ調整
ノルムでも \left と \right を使ってサイズを自動調整できます。
$$ \left\|\frac{\bm{a}}{\|\bm{a}\|}\right\| = 1 $$
$$
\left\|\frac{\bm{a}}{\|\bm{a}\|}\right\| = 1
$$
入れ子になったノルムでは、外側を \left\|...\right\| でサイズ調整し、内側はそのままにすると見やすくなります。
各種ノルムの表記
ノルムにはいくつかの種類があり、下付き文字で区別します。
| ノルム | LaTeX | 定義 | 名称 |
|---|---|---|---|
| $\|\bm{x}\|_1$ | \|\bm{x}\|_1 |
$\sum_{i}\|x_i\|$ | $L^1$ ノルム(マンハッタン距離) |
| $\|\bm{x}\|_2$ | \|\bm{x}\|_2 |
$\sqrt{\sum_{i} x_i^2}$ | $L^2$ ノルム(ユークリッド距離) |
| $\|\bm{x}\|_p$ | \|\bm{x}\|_p |
$\left(\sum_{i} \|x_i\|^p\right)^{1/p}$ | $L^p$ ノルム |
| $\|\bm{x}\|_\infty$ | \|\bm{x}\|_\infty |
$\max_{i} \|x_i\|$ | $L^\infty$ ノルム(最大値ノルム) |
それぞれのノルムを数式で書くと次のようになります。
$$ \|\bm{x}\|_1 = \sum_{i=1}^{n} |x_i| $$
$$ \|\bm{x}\|_2 = \sqrt{\sum_{i=1}^{n} x_i^2} = \sqrt{\bm{x}^\mathrm{T}\bm{x}} $$
$$ \|\bm{x}\|_p = \left(\sum_{i=1}^{n} |x_i|^p\right)^{1/p} $$
$$ \|\bm{x}\|_\infty = \max_{1 \leq i \leq n} |x_i| $$
$$
\|\bm{x}\|_p = \left(\sum_{i=1}^{n} |x_i|^p\right)^{1/p}
$$
添字がない場合($\|\bm{x}\|$)は、文脈から明らかなノルム(多くの場合は $L^2$ ノルム)を指します。
機械学習での応用:正則化
機械学習では、過学習を防ぐためにノルムを正則化項として使います。
$$ \mathcal{L}(\bm{w}) = \frac{1}{n}\sum_{i=1}^{n} \ell(y_i, f(\bm{x}_i; \bm{w})) + \lambda \|\bm{w}\|_2^2 $$
$$
\mathcal{L}(\bm{w}) = \frac{1}{n}\sum_{i=1}^{n} \ell(y_i, f(\bm{x}_i; \bm{w})) + \lambda \|\bm{w}\|_2^2
$$
$\|\bm{w}\|_2^2$ は重みベクトルの $L^2$ ノルムの2乗(Ridge正則化)、$\|\bm{w}\|_1$ は $L^1$ ノルム(Lasso正則化)に対応します。
ベクトルノルムの書き方がわかりました。次に、行列に対するノルムの書き方を見ていきましょう。
行列ノルムの書き方
行列ノルムとは
行列のノルムは、行列の「大きさ」を1つの数値で表すものです。数値解析で行列の条件数を評価するとき、制御工学でシステムのゲインを測るときなどに使います。
フロベニウスノルム
行列のすべての要素の2乗和の平方根です。
$$ \|\bm{A}\|_F = \sqrt{\sum_{i=1}^{m} \sum_{j=1}^{n} |a_{ij}|^2} = \sqrt{\mathrm{tr}(\bm{A}^\mathrm{T}\bm{A})} $$
$$
\|\bm{A}\|_F = \sqrt{\sum_{i=1}^{m} \sum_{j=1}^{n} |a_{ij}|^2}
$$
添字の $F$ はフロベニウス(Frobenius)の頭文字です。
作用素ノルム
行列の作用素ノルム(induced norm)は、ベクトルに作用したときの最大の拡大率です。
$$ \|\bm{A}\|_p = \sup_{\bm{x} \neq \bm{0}} \frac{\|\bm{A}\bm{x}\|_p}{\|\bm{x}\|_p} $$
$$
\|\bm{A}\|_p = \sup_{\bm{x} \neq \bm{0}} \frac{\|\bm{A}\bm{x}\|_p}{\|\bm{x}\|_p}
$$
\sup は上限を表す演算子です。
特によく使われるのはスペクトルノルム($p = 2$ の場合)で、最大特異値に等しくなります。
$$ \|\bm{A}\|_2 = \sigma_{\max}(\bm{A}) $$
核ノルム
核ノルム(nuclear norm)は特異値の和で、低ランク行列の近似で使われます。
$$ \|\bm{A}\|_* = \sum_{i=1}^{\min(m,n)} \sigma_i(\bm{A}) $$
$$
\|\bm{A}\|_* = \sum_{i=1}^{\min(m,n)} \sigma_i(\bm{A})
$$
添字の $*$ はアスタリスクです。
行列ノルムの書き方を理解しました。次に、ノルムに関連するその他の記号を紹介します。
関連する記号
内積との関係
$L^2$ ノルムは内積から定義されます。
$$ \|\bm{x}\|_2 = \sqrt{\langle \bm{x}, \bm{x} \rangle} $$
$$
\|\bm{x}\|_2 = \sqrt{\langle \bm{x}, \bm{x} \rangle}
$$
\langle と \rangle は角括弧で内積を表します。
距離
2つのベクトル間の距離はノルムで定義されます。
$$ d(\bm{x}, \bm{y}) = \|\bm{x} – \bm{y}\| $$
$$
d(\bm{x}, \bm{y}) = \|\bm{x} - \bm{y}\|
$$
コーシー・シュワルツの不等式
ノルムと内積に関する重要な不等式です。
$$ |\langle \bm{x}, \bm{y} \rangle| \leq \|\bm{x}\| \cdot \|\bm{y}\| $$
$$
|\langle \bm{x}, \bm{y} \rangle| \leq \|\bm{x}\| \cdot \|\bm{y}\|
$$
ここでは絶対値 |...| とノルム \|...\| が同じ式に登場しています。一重の縦線と二重の縦線を正しく使い分けることが重要です。
三角不等式
ノルムの基本的な性質の一つです。
$$ \|\bm{x} + \bm{y}\| \leq \|\bm{x}\| + \|\bm{y}\| $$
関連記号をまとめたところで、KaTeXでの互換性について確認しましょう。
LaTeX vs KaTeX の注意点
| コマンド | KaTeX対応 | 備考 |
|---|---|---|
\| |
対応 | 二重縦線 |
| |
対応 | 単一縦線 |
\left\|...\right\| |
対応 | サイズ自動調整 |
\big\|...\big\| |
対応 | 手動サイズ指定 |
\langle...\rangle |
対応 | 角括弧 |
\sup |
対応 | 上限 |
ノルムと絶対値に関するコマンドはKaTeXで完全にサポートされています。
よくある間違いとTips
間違い1:絶対値とノルムの区別
絶対値は |...|(単一の縦線)、ノルムは \|...\|(二重の縦線)です。
% 絶対値(スカラー)
$|x|$
% ノルム(ベクトル)
$\|\bm{x}\|$
スカラーには絶対値、ベクトルや行列にはノルムを使いましょう。
間違い2:|| を使ってノルムを書く
|| と \| は見た目が似ていますが、スペーシングが異なります。
% NG: || を使う(スペーシングが不正確)
$||x||$
% OK: \| を使う
$\|\bm{x}\|$
\| は数式用の二重縦線として正しいスペーシングが適用されるため、常にこちらを使いましょう。
間違い3:サイズ調整の不足
分数や総和を含むノルムでは、必ずサイズ調整を行いましょう。
% 見づらい(縦線が小さい)
$\|\frac{\bm{x}}{\|\bm{x}\|}\|$
% 見やすい(サイズ調整済み)
$\left\|\frac{\bm{x}}{\|\bm{x}\|}\right\|$
Tips:ノルムのマクロ定義
ノルムを頻繁に使う場合は、LaTeXのプリアンブルでマクロを定義すると便利です。
% プリアンブルで定義
\newcommand{\norm}[1]{\left\|#1\right\|}
\newcommand{\abs}[1]{\left|#1\right|}
% 本文で使う
$\norm{\bm{x}}$ % → ‖x‖
$\abs{a - b}$ % → |a - b|
ただし、KaTeXでは \newcommand のサポートが限定的な場合があるため、ブログでは直接 \left\|...\right\| と書くのが安全です。
Tips:ノルムの2乗
ノルムの2乗は上付き文字を \| の外側に付けます。
$$ \|\bm{x}\|^2 = \bm{x}^\mathrm{T}\bm{x} = \sum_{i=1}^n x_i^2 $$
$$
\|\bm{x}\|^2 = \bm{x}^\mathrm{T}\bm{x}
$$
\|^2 のように直接上付き文字を付けるだけです。
まとめ
本記事では、LaTeXでノルムと絶対値を書く方法を解説しました。
- 絶対値:
|...|で単一の縦線を使う(スカラー向け) - ノルム:
\|...\|で二重の縦線を使う(ベクトル・行列向け) - サイズ調整:
\left\|...\right\|で中身に合わせて自動調整 - ノルムの種類: 下付き文字で区別($\|\cdot\|_1$, $\|\cdot\|_2$, $\|\cdot\|_\infty$, $\|\cdot\|_F$)
- 絶対値とノルムの使い分け: スカラーには絶対値、ベクトル・行列にはノルム
正しいノルム表記は数値解析、最適化、機械学習の文書で特に重要です。
次のステップとして、以下の記事も参考にしてください。
- ベクトルの太字・矢印記号をLaTeXで書く — ノルムの対象となるベクトル
- 内積・外積・テンソル積をLaTeXで書く — ノルムと密接な内積
- 括弧のサイズ調整 — サイズ調整の詳細