誤差関数 (G検定)

誤差関数

1. 定義と概要

誤差関数(error function)とは、機械学習モデルが出した予測値と実際の正解値との差、つまり誤差の大きさを数値として表す関数です。損失関数(loss function。誤差関数とほぼ同じ意味で使われる、予測のズレを数値化する関数の呼び名)とほぼ同じ意味で使われます。とくにニューラルネットワークの学習の仕組みを説明する文脈では、「誤差関数」という呼び方が使われることが多いといえます。

学習の目標は、この関数が返す値をできるだけ小さくするように、モデルのパラメータ(学習によって調整される数値)を調整することにあります。具体例として、回帰問題(数値を予測する問題)ではMSE(平均二乗誤差。予測値と正解値の差を2乗してから平均する、回帰問題で使われる代表的な誤差関数)が代表例として使われます。分類問題(カテゴリを予測する問題)では交差エントロピー誤差関数(予測した確率と正解ラベルのズレを測る、分類問題で使われる代表的な誤差関数)が代表例です。

機械学習モデルの学習は、パラメータをもとに予測を出し、誤差関数で予測と正解のズレを数値化し、そのズレが小さくなる方向へパラメータを更新するという流れの繰り返しで進みます。誤差関数は、この流れの中で「良いモデルとは何か」という基準を、比較できる1つの数値に翻訳する役割を担います。

誤差関数を定義しなければ、モデルの良し悪しを機械的に判定できず、パラメータをどの方向へ調整すべきかも決められません。誤差関数の設計と選択は、モデルの学習方法そのものを左右する土台にあたります。

2. 試験対策ポイント

まず押さえておきたいのは、誤差関数が予測値と正解値のズレを数値化する関数であり、学習ではこの値を最小化する方向にパラメータが更新されるという関係です。

この最小化の手法として使われるのが勾配降下法(誤差関数の値が小さくなる方向へ、パラメータを少しずつ更新していく最適化の手法)です。ニューラルネットワークでは、誤差逆伝播法(出力側から入力側へ誤差を逆向きに伝えながら、各重みの調整量を計算する手法)によって、各重みに対する勾配(誤差関数の値を小さくする方向を示す量)が計算されます。

損失関数・コスト関数・目的関数という近い呼び名の関係も重要なテーマです。三つは指す範囲の広さで区別でき、狭い順に並べると次の対応関係になります。

呼び名 指す範囲
損失関数(誤差関数とほぼ同義) 個々のデータに対する誤差
コスト関数 データセット全体で平均した誤差。正則化(モデルが複雑になりすぎないようにペナルティを与える調整の仕組み)による調整項を含めた値を指すことがある
目的関数 損失関数やコスト関数を含む、最適化の対象となる値の全般

呼び分けは文献によって幅があり、まず整理したいのは「誤差関数≒損失関数」というおおまかな対応関係です。細かな線引きよりも、狭い範囲から広い範囲へ並ぶ関係をつかんでおくと迷いにくくなります。

回帰問題と分類問題では、代表的に使われる誤差関数の種類も異なります。何を測るのかという観点で対比すると、違いがはっきりします。

問題の種類 誤差関数が測るもの 代表的な誤差関数
回帰問題 予測値と正解値という数値同士の差 MSE、MAE、RMSE
分類問題 予測確率と正解ラベルの分布のズレ 交差エントロピー誤差関数

回帰問題側のMAE(平均絶対誤差。予測値と正解値の差の絶対値を平均する、回帰問題で使われる誤差関数)やRMSE(二乗平均平方根誤差。MSEの平方根を取り、元のデータと同じ単位に戻した誤差関数)も、MSEと同じく数値同士の差を測る仲間にあたります。

もう一つ整理しておきたいのは、誤差関数は関数そのものの定義だという点です。訓練誤差(誤差関数を訓練データに当てはめて測った、学習に使ったデータそのものに対する誤りの大きさ)は、誤差関数を使って測定した数値にあたります。汎化誤差(誤差関数を未知のデータに当てはめて測った、学習に使っていないデータに対する誤りの大きさ)も同様に、誤差関数を使って測定した数値です。

つまり訓練誤差と汎化誤差は、誤差関数そのものとは区別される概念です。この違いは取り違えやすい点として重要なテーマにあたります。

3. 関連概念との比較・相違点

損失関数・コスト関数・目的関数の最大の違いは、呼び名が指す範囲の広さにあります。誤差関数とほぼ同じ意味で使われる損失関数が個々のデータの誤差を指すのに対し、コスト関数は、データセット全体の集約値を指します。目的関数はそれらを含む最適化対象全般を指す呼び名で、三者は狭い順から広い順の関係にあります。この包含関係は、どの呼び名がどの範囲を指すかという形で試験に出やすいテーマです。

誤差関数と訓練誤差・汎化誤差との最大の違いは、関数の定義そのものか、その関数を使って測定した数値かという点にあります。誤差関数は「ズレをどう数値化するか」という基準の定義であるのに対し、訓練誤差は誤差関数を訓練データに当てはめて測った値、汎化誤差は同じ誤差関数を未知のデータに当てはめて測った値という関係にあります。

対象データが学習に使った訓練データか、学習に使っていないテストデータかによっても、両者は区別されます。誤差関数という関数の定義と、それを当てはめて得られる訓練誤差・汎化誤差という数値は、セットで整理しておきたい関係にあります。

4. ビジネス・実務での活用シナリオ

不動産分野では、物件価格を予測する回帰モデル(数値を予測するモデル)の学習にMSEを誤差関数として使う例があります。この値を最小化するようにパラメータを調整することで、予測価格と実際の成約価格のズレを縮めていきます。

迷惑メール判定のような分類モデル(カテゴリを予測するモデル)の学習では、交差エントロピー誤差関数が使われます。予測確率と正解ラベルのズレを最小化することで、判定の精度を高める仕組みです。

モデル開発の現場では、タスクが回帰か分類か、データに外れ値(他のデータから大きく外れた値)が多いかどうかに応じて誤差関数を選び分ける判断が生じます。この選択は、モデル開発の最初の設計項目の一つに位置づけられます。

外れ値が多いデータにMSEをそのまま使うと、二乗の計算によって外れ値の影響が強調され、モデルが少数の外れ値に過度に引っ張られた学習結果になりかねません。分類のタスクに不向きな誤差関数を選んだ場合も、学習がうまく収束しにくくなるおそれがあります。誤差関数の選び分けを誤ると学習後のモデルの精度そのものに影響が及ぶため、タスクの性質を踏まえて誤差関数を選ぶことが実務上の判断のポイントになります。

5. 要点まとめ

  • 誤差関数は予測値と正解値のズレを数値化する関数で、学習ではこの値を最小化する方向にパラメータを更新します。損失関数とほぼ同義に扱われます。
  • 損失関数・コスト関数・目的関数は、個々のデータの誤差から最適化対象全般までを指す、狭い順から広い順の呼び名の関係にあります。
  • 回帰問題ではMSE・MAE・RMSEなど、分類問題では交差エントロピー誤差関数など、扱う問題の種類によって代表的に使われる誤差関数が異なります。

6. 確認問題

問1誤差関数はモデルの予測値と正解値のズレの大きさを数値で表す関数であり、学習ではこの値を最小化する方向にパラメータが更新される。

解答・解説をみる

○ 正しい

誤差関数の定義そのものにあたります。勾配降下法によって、この値を最小化する方向へパラメータが少しずつ調整されます。

問2回帰問題と分類問題では代表的に用いられる誤差関数の種類が異なり、回帰問題では平均二乗誤差、分類問題では交差エントロピー誤差関数が代表例として挙げられる。

解答・解説をみる

○ 正しい

回帰は数値同士の差を測る誤差関数、分類は確率分布のズレを測る誤差関数が使われるという対応関係にあります。MAEやRMSEも回帰問題側の代表例です。

問3誤差関数は汎化誤差と同じ概念であり、学習に使っていない未知のデータに対する予測の誤り具合そのものを指す言葉である。

解答・解説をみる

× 誤り

正しくは、誤差関数は誤差を測るための関数の定義そのものであり、汎化誤差はその誤差関数を未知のデータに当てはめて実際に測定した数値です。両者は取り違えやすいものの、別の位置づけにあります。