機械学習勉強でよーわからん単語、ややこしかった〇〇関数に関して調べました。
前置き
例えば駅からの距離
、部屋の広さ
、築年数
から家賃
を予測する機械学習を実装する流れは、
- 大量の
駅からの距離
、部屋の広さ
、築年数
、家賃
のデータを集める - 大量のデータから、法則(
家賃
の計算式)を導く
です。
しかしながら、導かれる計算式の結果
と家賃
には差
が存在します。
(すべて計算式で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
但し書
ただ、意見が分かれているので、各参考文献や教科書など、数式を見て判断るのがよさそうです。
まあ、私レベルであれば全部なんとなく一緒とおもっていても大丈夫そうです!