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

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

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

[[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 つのトレンド

ブログ    
ブログ    
ブログ    

推薦する

なぜソートするのですか?ソートアルゴリズムのパフォーマンスを向上させる方法

この記事は、公開アカウント「Reading the Core」(ID: AI_Discovery)か...

「翼竜」が飛び立ち、その威力を発揮。固定翼ドローンについて、あなたはどのくらい知っていますか?

空を飛ぶ龍、数千マイル離れたところから救援に駆けつける!最近、「翼龍」無人機が飛び立ち、被災地に急行...

2017 年グローバル人工知能人材ホワイトペーパー: 世界トップクラスの AI 人材の秘密を解明!

人工知能における競争は優秀な人材に基づいて行われます。国の将来の発展方向として、AI技術は経済発展、...

Google の内部対立が激化!従業員が共同書簡に署名:AIマスターのジェフ・ディーン氏は謝罪すべき!

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

Llama2がオープンソース化された後、国内の大型モデルはどのような展開を見せるのでしょうか?

7 月 19 日、オープン ソース コミュニティの最も強力な大規模モデルが Llama から Ll...

...

...

スマートカーのステアバイワイヤ技術の詳細な説明

電動化とインテリジェント化という2つの大きな発展の流れの下、わが国は機能車からスマート車への転換点に...

2021年の人工知能トレンドに関する5つの予測

人工知能は人々の生活を変える可能性を秘めた分野です。ヘルスケア、ビジネス、金融、その他の分野での応用...

IoT が成功するために AI が必要な理由

モノのインターネットは膨大な量のデータを生成します。そのデータは、都市が事故や犯罪を予測するのに役立...

AIの未来: 汎用人工知能

人工知能を真に理解するために、研究者は、環境に対する人間のような理解を再現できる基礎的な AGI 技...

ブラックボックス問題が依然としてディープラーニングの普及を妨げている

[[211063]]現在、ディープラーニングは人工知能の旗印を掲げており、将来、インテリジェントマシ...

AIが業界全体でビジネス成果をどのように変革しているか

昨年末以来、人工知能の発展の勢いは止められないようです。 GPT-4 のような並外れた認知能力を備え...

市場規模は約16.8億元に達しました!物流と配送がドローンと出会う

現在、ナビゲーションや通信などの技術が継続的に進歩し、ドローンの開発はより成熟し、業界の規模も拡大し...

人工知能がいかに「知的」であっても、それは人類の奇跡である

テレビ番組「ザ・ブレイン」が巻き起こした「人間対機械」、そして自動運転車、顔認識、アルファ囲碁など一...