機械学習でよく使われる損失関数についてどれくらい知っていますか?

機械学習でよく使われる損失関数についてどれくらい知っていますか?

機械は損失関数を通じて学習します。これは、特定のアルゴリズムが与えられたデータをどれだけ適切にモデル化できるかを評価する方法です。予測値が実際の結果から大きく外れると、損失関数は非常に大きな値になります。いくつかの最適化関数の助けを借りて、損失関数は徐々に予測値の誤差を減らすことを学習します。この記事では、いくつかの損失関数と、機械学習および深層学習におけるその応用について紹介します。

[[243642]]

損失関数と最適化

すべての機械学習アルゴリズムに適した単一の損失関数は存在しません。特定の問題に対する損失関数の選択には、選択した機械学習アルゴリズムの種類、導関数の計算の容易さ、データセット内の外れ値の割合など、多くの要因が関係します。

学習タスクの種類に基づいて、損失関数は回帰損失と分類損失の 2 つのカテゴリに大まかに分類できます。分類タスクでは、手書きの数字画像の大規模なデータセットを 0 から 9 のいずれかに分類するなど、カテゴリ値の数が限られているデータセットから出力を予測する必要があります。回帰問題は、家の面積、部屋数、部屋の大きさから家の価格を予測するなど、連続値の予測を扱います。

  1. 注記
  2. n – トレーニング例の数。
  3. i - データ セット内の i 番目のトレーニング例。
  4. y(i) – i番目のトレーニング例のグラウンドトゥルースラベル。
  5. y_hat(i) – i番目のトレーニング例の予測。

回帰損失

1. 平均二乗誤差/二乗損失/L2損失

数式:

平均二乗誤差

名前が示すように、平均二乗誤差 (MSE) は、予測値と実際の観測値の差の二乗の平均を測定します。エラーの平均サイズのみを考慮し、方向は考慮しません。ただし、二乗により、真の値からの偏差が大きい予測値は、偏差が小さい予測値よりも重いペナルティを受けることになります。さらに、MSE の数学的特性は優れているため、勾配の計算が容易になります。

  1. numpyをnpとしてインポートする
  2. y_hat = np .array([0.000, 0.166, 0.333])
  3. y_true = np .array([0.000, 0.254, 0.998])
  4. def rmse(予測値、ターゲット):
  5. 差異=予測- 目標
  6. 差異 差異の二乗= 差異 ** 2
  7. 差の二乗の平均= 差の二乗.mean()
  8. rmse_val = np .sqrt(差の二乗平均)
  9. rmse_valを返す
  10. print("d は: " + str(["%.8f" % elem for elem in y_hat]))
  11. print("p は: " + str(["%.8f" % elem for elem in y_true]))
  12. rmse rmse_val = rmse(y_hat, y_true)
  13. print("rmsエラーは: " + str(rmse_val))

2. 平均絶対誤差/L1損失

数式:

平均絶対誤差

平均絶対誤差 (MAE) は、予測値と実際の観測値の間の絶対差の合計の平均を測定します。 MSE と同様に、このメトリックは方向を考慮せずにエラーの大きさを測定します。しかし、MSE とは異なり、MAE では勾配を計算するために線形計画法などのより複雑なツールが必要です。さらに、MAE は二乗を使用しないため、外れ値に対してより堅牢です。

  1. numpyをnpとしてインポートする
  2. y_hat = np .array([0.000, 0.166, 0.333])
  3. y_true = np .array([0.000, 0.254, 0.998])
  4.  
  5. print("d は: " + str(["%.8f" % elem for elem in y_hat]))
  6. print("p は: " + str(["%.8f" % elem for elem in y_true]))
  7.  
  8. def mae(予測値、ターゲット):
  9. 差異=予測- 目標
  10. absolute_differences = np.absolute (差異)
  11. 平均絶対差= 絶対差.平均()
  12. 平均絶対差を返す
  13. mae mae_val = mae(y_hat, y_true)
  14. print ("mae エラーは: " + str(mae_val))

3. 平均バイアス誤差

他の損失関数と比較すると、この関数は機械学習の分野ではあまり一般的ではありません。これは MAE に似ていますが、唯一の違いはこの関数では絶対値を使用しないことです。この関数を使用する際に注意すべき点は、正の誤差と負の誤差が互いに打ち消し合う可能性があることです。実際のアプリケーションではそれほど正確ではありませんが、モデルに正のバイアスがあるか負のバイアスがあるかを判断できます。

数式:

平均偏差誤差

2. 分類の損失

1. ヒンジ損失/マルチ分類SVM損失

つまり、一定の安全間隔(通常は 1)内で、正しいクラスのスコアは、すべての誤ったクラスのスコアの合計よりも高くなる必要があります。そのため、最大マージン分類ではヒンジ損失がよく使用され、最も一般的に使用されるのはサポートベクターマシンです。微分可能ではありませんが、凸関数であるため、機械学習でよく使用される凸最適化器が簡単に使用できます。

数式:

ヒンジ損失

次の例を考えてみましょう。3 つのトレーニング例があり、3 つのカテゴリ (犬、猫、馬) を予測したいと考えています。アルゴリズムが予測する各カテゴリの値は次のとおりです。

ヒンジ損失/マルチ分類SVM損失

次の 3 つのトレーニング サンプルのヒンジ損失を計算します。

  1. ## 最初のトレーニング例
  2. 最大(0, (1.49) - (-0.39) + 1) + 最大(0, (4.21) - (-0.39) + 1)
  3. 最大値(0, 2.88) + 最大値(0, 5.6)
  4. 2.88 + 5.6
  5. 8.48 (非常に間違った予測による大きな損失)
  6. ## 2番目のトレーニング例
  7. 最大(0, (-4.61) - (3.28) + 1) + 最大(0, (1.46) - (3.28) + 1)
  8. 最大値(0, -6.89) + 最大値(0, -0.82)
  9. 0 + 0
  10. 0(正しい予測として損失ゼロ)
  11. ## 3番目のトレーニング例
  12. 最大(0, (1.03) - (-2.27) + 1) + 最大(0, (-2.37) - (-2.27) + 1)
  13. 最大(0, 4.3) + 最大(0, 0.9)
  14. 4.3 + 0.9
  15. 5.2 (非常に間違った予測による高い損失)

交差エントロピー損失/負の対数尤度:

これは分類問題で最も一般的な設定です。予測された確率が実際のラベルから逸脱するにつれて、クロスエントロピー損失は徐々に増加します。

数式:

クロスエントロピー損失

実際のラベルが 1 (y(i)=1) の場合、関数の後半部分は消えますが、実際のラベルが 0 (y(i=0)) の場合、関数の前半部分は消えることに注意してください。つまり、真の値クラスの実際の予測確率の対数を掛け算するだけです。また、クロスエントロピー損失により、信頼性は高いが間違っている予測に大きなペナルティが課されることにも注意することが重要です。

  1. numpyをnpとしてインポートする
  2. 予測= np .array([[0.25,0.25,0.25,0.25],
  3. [0.01,0.01,0.01,0.96]])
  4. ターゲット= np.array ([[0,0,0,1],
  5. [0,0,0,1]])
  6. def cross_entropy(予測、ターゲット、イプシロン= 1e -10):
  7. 予測= np .clip(予測、イプシロン、1. - イプシロン)
  8. N =予測形状[0]
  9. ce_loss = -np.sum(np.sum(ターゲット * np.log(予測 + 1e-5)))/N
  10. ce_lossを返す
  11. クロスエントロピークロスエントロピー損失= クロスエントロピー(予測、ターゲット)
  12. print ("クロスエントロピー損失は: " + str(cross_entropy_loss))

[この記事は51CTOコラム「Machine Heart」、WeChatパブリックアカウント「Machine Heart(id: Almosthuman2014)」からのオリジナル記事です]

この著者の他の記事を読むにはここをクリックしてください

<<:  人工知能とビッグデータを開発する際に留意すべき12のこと

>>:  ディープラーニングとニューラルネットワーク: 注目すべき 6 つのトレンド

推薦する

中国科学院の専門家が人工知能の混乱を批判:AIチップなど存在しない

Titanium Media Note:先週日曜日、IEEE SMC 協会 (IEEE システム、人...

注意メカニズムにバグがあり、ソフトマックスが犯人であり、すべてのトランスフォーマーに影響を与えている

「私は、8年間誰も発見できなかった注目度の式のバグを発見しました。GPTやLLaMAを含むすべてのT...

中国と米国の差を縮め、人工知能開発の主導権を徐々に握る

60年以上の発展を経て、人工知能は人々の仕事や日常生活に入り込み、影響を与えており、新たな一般技術と...

今日のAIの優れた使用例

企業は AI パイロットを実施し、AI を本番環境に移行しています。大手組織はここに賭けており、すで...

仕事と生産を再開、「新しいインフラ」が人工知能の能力を加速させる

「この突然の流行は人類にとって大きな災害だが、人工知能産業の発展にとってはまたとない新たなチャンスで...

人工知能のいくつかの重要な技術をご存知ですか?

今日は人工知能の開発におけるいくつかの重要な技術を紹介します。音声認識からスマートホーム、人間と機械...

単一のGPUではGPT-3をトレーニングすることはできませんが、これを使用するとハイパーパラメータを調整できます。

偉大な科学的成果は試行錯誤だけでは達成できません。たとえば、宇宙計画におけるすべての打ち上げは、空気...

インテリジェント交通の時代に踏み出すには、これら 3 つのことをうまく行う必要があります。

[[438413]]都市の生命線であり動脈である交通の発展は極めて重要です。しかし、近年、都市化が...

...

CTOは「大きな衝撃を受けた」:GPT-4Vの自動運転テストを5回連続で実施

この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...

AIoT はセキュリティ業界にどのような影響を与えますか?

進化し続けるテクノロジーの世界における最新のトレンドやイノベーションを追い続ける中で、私たちが注目...

Java スパニングツリー構造 ポイント間の最短経路アルゴリズム

まずは二分木についてお話しましょう。二分木は、各ポイントが 2 つのポイントに接続されているツリー構...

人工知能:創薬の厳しい時代に革命を起こすもの

業界の専門家は、人工知能(AI)の強力なサポートにより、医薬品の研究開発分野は大きな変化の波に見舞わ...

クォンタムAIパーク、リアルタイム翻訳、Googleが革新的なAI製品を展示

[[434605]] Googleは11日、「発明家」をテーマにしたイベントを開催し、AI技術をベー...

AI軍拡競争により、将来のAIハードウェアアーキテクチャの開発に3つの主要な方向性が生まれました。

この記事はLeiphone.comから転載したものです。転載する場合は、Leiphone.com公式...