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

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

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

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

ブログ    
ブログ    

推薦する

人工知能技術が現代農業の発展を促進する

わが国の著名な学者である周海中氏は、1990年代に「科学技術の進歩により、人工知能の時代が到来しよう...

Google のような大企業を辞めた後、彼らはどうやって次の仕事を見つけるのでしょうか?

今年上半期、中国と米国のインターネット・テクノロジー企業は、程度の差はあれ、レイオフや人員削減を経験...

アルゴリズム実践者が知っておくべき TensorFlow のヒント 10 選

導入これらを習得することで、モデルをより効率的にして開発効率を向上させることができます。 [[343...

...

人工知能(AI)が商業ビルのアプリケーションで成功を収める

[[359215]]今日、ビッグデータやモノのインターネットなどのテクノロジーが広く応用されるように...

絵が醜すぎて見せられない?機械学習用の描画テンプレートセットを作った人がいます。ダークモードもあります

機械学習の専門家は、ニューラル ネットワーク図の描き方について心配する必要がなくなりました。論文やブ...

人工知能タスクに知っておくべき 11 個の Python ライブラリ

[[399295]]この記事はWeChatのパブリックアカウント「Python Society」から...

Baidu Brainは、顔をスキャンしてWeChat Momentsで拡散できるAIベースの春節連句をサポート

大晦日、家族が集まる夜。 1月28日、オンライン春節祝賀会(略称オンライン春節祝賀会)が予定通り開催...

人工知能は、優秀な人材が良い就職機会を見つけるのにどのように役立つのでしょうか?

人工知能は、大企業が従業員を管理する方法に大きな影響を与えています。 [[360624]]世界経済は...

人工知能は「高度な感情知能」に向かって発展している

[[265376]] [51CTO.com クイック翻訳] 機械知能の分野における現在の成功は主に計...

ニューラル ネットワークの父、ヒントン氏の最新の演説: デジタル インテリジェンスは生物学的インテリジェンスに取って代わるでしょうか?

「人工知能のゴッドファーザー」として知られるジェフリー・ヒントン教授は、英国王立協会 (FRS) ...

Meta主任AI研究者ヤン・リクン氏:今日のAIは愚かであり、規制当局は我々に干渉すべきではない

ソーシャルメディアFacebookの親会社Metaの主任人工知能研究者ヤン・ルカン氏は10月20日、...

知っておくべき6つのAIバイアス

[[441742]]子どもは成長するにつれて、聴覚、視覚、触覚などの感覚を通して周囲の世界について学...

AIGCの6つの主なリスク

ChatGPTを運営するOpenAIのCEOサム・アルトマン氏は最近、議会公聴会で政府によるAIの規...

2019年のテクノロジートレンド予測: 5Gが爆発的に普及し、人工知能も勢いを増す

テクノロジー業界にとって、2018年は忘れられない年になる運命にある。結局、シェアサイクルのバブルは...