機械学習

目的関数、コスト関数、誤差関数、損失関数いろいろあるけど、なにが違うのかを検討

おつかれさまです、かきうち(@kakistuter)です。
機械学習勉強でよーわからん単語、ややこしかった〇〇関数に関して調べました。

前置き

例えば駅からの距離部屋の広さ築年数から家賃を予測する機械学習を実装する流れは、

  1. 大量の駅からの距離部屋の広さ築年数家賃のデータを集める
  2. 大量のデータから、法則(家賃の計算式)を導く

です。
しかしながら、導かれる計算式の結果家賃にはが存在します。
(すべて計算式で1円たりとも違わずに表現できるはずがない)

このが小さくなるように、計算式を考えていくことが機械学習の研究者たちのやるべきことでもあるのです。

このを関数(なんらかの数式)で表現したものを目的関数といったり、コスト関数といったり、誤差関数といったり、損失関数といったりします。

目的関数、コスト関数、誤差関数、損失関数、なにがどう違うのか?

これは様々な議論がなされている。

https://www.quora.com/What-is-the-difference-between-a-cost-function-and-a-loss-function-in-machine-learning
https://stats.stackexchange.com/questions/179026/objective-function-cost-function-loss-function-are-they-the-same-thing

全部英語だったのでGoogle翻訳で私なりに理解した結果、以下のようになった。

損失関数 + 正則化項 = コスト関数

損失関数正則化項をプラスしたものがコスト関数です。
※補足ですが、正則化とは過学習を防ぐための調整です。

損失関数 = 誤差関数

損失関数誤差関数と同義です。

目的関数 ⊃ コスト関数、誤差関数、損失関数

目的関数が最も大きな枠組みです。
つまり、コスト関数誤差関数損失関数も、目的関数です。

を小さくすべき目的があれば、小さくすべきですが、場合によっては最大化させないといけない時もあります。

つまり、機械学習において、この関数を最小化させればモデルが導き出せる!とかこの関数を最大化させればモデルが導き出せる!といったなかで、この関数に当たるものが目的関数なのです。

その他

目的関数、コスト関数、誤差関数、損失関数の英語

  • 目的関数 objective function
  • コスト関数 cost function
  • 誤差関数 error function
  • 損失関数 loss function

但し書

ただ、意見が分かれているので、各参考文献や教科書など、数式を見て判断るのがよさそうです。

まあ、私レベルであれば全部なんとなく一緒とおもっていても大丈夫そうです!