機械学習における損失関数と精度の違いについて

機械学習

こんにちは、しらすです。

今回は機械学習を行うにあたってふと疑問に思った「損失関数と精度の違い」について、回帰問題と分類問題の観点から述べたいと思います。

回帰問題と分類問題とは

まずは回帰問題と分類問題ってそれぞれ何??という疑問から簡単に述べておきます。

連続的な値(値段など)を予測するものを回帰問題、離散的で順番に意味を持たないもの(花の種類など)を予測するものを分類問題と言います。

精度と損失関数は、回帰問題の場合は同じですが、分類問題の場合は別と考えられます。

回帰問題における精度と損失関数

連続的に値が変化する回帰問題の場合、正解値との差を算出する損失関数がそのまま同じく精度となります

代表的な損失関数

平均二乗誤差 / Mean Squared Error

外れ値に対する感度が高い。

平均絶対誤差 / Mean Absolute Error

外れ値に対する感度が低い(変に影響されない)

平均二乗対数誤差 / Mean Squared Logarithmic Error

予測が実値を上回りやすくなるという傾向がある

分類問題における精度と損失関数

種類を分類する分類問題の場合、正解 or 不正解で正解率で評価する精度と、不正解の場合どの程度不正解だったかで評価する損失関数では意味が異なります

3クラスに分類する場合

例えば3つのクラス(A,B,C)に分類する問題の場合の精度と損失関数について考えます。

正解がAのデータを以下のように間違えて予測したとします。

  • A:20%
  • B:50%
  • C:30%

この結果はBと選択されたため、精度としては単純に不正解となるが、損失関数としては不正解の度合いが算出できます。

代表的な損失関数

交差エントロピー誤差 / cross entropy error

モデルで写真を判定してみると犬である確率は20%、猫である確率30%、馬である確率が50%であると予測しました。この写真が馬であったとしましょう。この時、クロスエントロピー誤差はいくつになるでしょうか。以下のように求まります。

E=–(0×log0.2+0×log0.3+1×log0.5)=–log0.5

https://ai-trend.jp/basic-study/neural-network/nn_loss_function/

分類問題ではほとんどがこの交差エントロピーを使用します。

正解のカテゴリーをうまく予測すると交差エントロピー誤差も小さくなります。ディープラーニングやニューラルネットなどで分類問題を解くときにも使用されます。

参考

機械学習における損失関数の役割や種類についてはこちら

機械学習における損失関数の役割と代表的な損失関数 |AVILEN
このページでは、失関数の役割と用途に応じた様々な損失関数ついて解説します。

交差エントロピーについてこちらではもう少し細かく考察されております。分類問題で誤差二乗を使うこともできるのですが、交差エントロピーを使うことで学習速度が向上する様子。

なぜ交差(クロス)エントロピーが機械学習(ニューラルネットワーク)の損失関数に使われるのか?
今回は、機械学習でよく使われる損失関数「交差エントロピー」についての考察とメモ。 損失関数といえば二乗誤差が有名ですが、分類問題を扱う際には交差エントロピーが頻繁に使われます。 そこで、「なぜ分類問題では交差エントロピーが使われるの?」って

Kerasで使える損失関数はこちらから。

Keras documentation: Page not found
Keras documentation

コメント