ニューラルネットワークにおけるさまざまな損失関数の紹介

ニューラルネットワークにおけるさまざまな損失関数の紹介

目的に応じて異なる損失関数を使用できます。この記事では、いくつかの例を挙げながら、非常によく使用される損失関数について説明します。この記事で言及されているパラメータの詳細の一部は、Tensorflow または Keras の実装の詳細です。

損失関数の簡単な紹介

損失関数は、ニューラル ネットワークのパラメータを最適化するのに役立ちます。私たちの目標は、ニューラル ネットワークのパラメータ (重み) を最適化することで、ニューラル ネットワークの損失を最小限に抑えることです。目標(実際)値はニューラルネットワークを通じて予測値と照合され、損失関数を通じて損失を計算できます。次に、勾配降下法を使用してネットワークの重みを最適化し、損失を最小限に抑えます。これがニューラル ネットワークをトレーニングする方法です。

平均二乗誤差

回帰タスクを実行するときに、この損失関数を選択できます。名前が示すように、この損失は実際の(目標)値と予測値の差の二乗の平均を取ることによって計算されます。

たとえば、住宅に関するデータを取得してその価格を予測するニューラル ネットワークがあるとします。この場合、MSE (平均二乗誤差) 損失を使用できます。基本的に、この損失関数は出力が実数の場合に使用する必要があります。

バイナリクロスエントロピー

バイナリ分類タスクを実行するときに、この損失関数を選択できます。 BCE (バイナリクロスエントロピー) 損失関数を使用する場合、データを 2 つのカテゴリに分類するために必要な出力ノードは 1 つだけです。出力値は、出力が (0-1) の範囲になるようにシグモイド活性化関数に渡される必要があります。

たとえば、大気に関するデータを取得して雨が降るかどうかを予測するニューラル ネットワークがあるとします。出力が 0.5 より大きい場合、ネットワークは雨が降ると分類します。出力が 0.5 より小さい場合、ネットワークは雨が降らないと分類します。つまり、確率スコアが大きいほど、雨が降る可能性が高くなります。

ネットワークをトレーニングする場合、ネットワークに入力されるターゲット値は、ラベルが雨が降っている場合は 1、そうでない場合は 0 にする必要があります。

重要な点は、BCE 損失関数を使用する場合、ノードの出力は (0-1) の範囲になる必要があるということです。つまり、最終出力ではシグモイド活性化関数を使用する必要があります。シグモイド関数は任意の実数値を範囲 (0~1) に変換できるためです。 (つまり、出力確率値)

最後のレイヤーでシグモイド活性化関数を明示的に使用したくない場合は、損失関数パラメータで logits を true に設定できます。これにより、出力値に対してシグモイド関数が内部的に呼び出されます。

多分類クロスエントロピー

マルチクラス分類タスクを実行するときに、この損失関数を選択できます。 CCE (Multi-Class Cross Entropy) 損失関数を使用する場合、出力ノードの数はクラスと同じである必要があります。最後のレイヤーの出力は、各ノードが (0-1) の間の確率値を出力するように、ソフトマックス活性化関数に渡される必要があります。

たとえば、画像を読み取って猫か犬かに分類するニューラル ネットワークがあるとします。猫のノードの確率スコアが高い場合、画像は猫として分類され、そうでない場合は犬として分類されます。基本的に、クラス ノードの確率スコアが高い場合、画像はそのクラスに分類されます。

トレーニング時に目標値を提供するには、それらをワンホットエンコードする必要があります。画像が猫の場合、ターゲット ベクトルは (1, 0) になり、画像が犬の場合、ターゲット ベクトルは (0, 1) になります。基本的に、ターゲット ベクトルはクラスの数と同じサイズになり、実際のクラスに対応するインデックス位置は 1 になり、その他の位置はすべて 0 になります。

最後のレイヤーでソフトマックス活性化関数を明示的に使用したくない場合は、損失関数パラメータで logits を true に設定できます。これにより、出力値に対してソフトマックス関数が内部的に呼び出されます。同上。

スパース多分類クロスエントロピー

この損失関数は、いくつかの小さな変更を除いて、マルチクラスクロスエントロピーとほぼ同じです。

SCCE (スパース マルチクラス クロス エントロピー) 損失関数を使用する場合、ワンホット ターゲット ベクトルは必要ありません。たとえば、ターゲット画像が猫の場合は 0 を渡し、そうでない場合は 1 を渡します。基本的に、クラスが何であれ、そのクラスのインデックスを渡すだけです。

これらは最も重要な損失関数です。ニューラル ネットワークをトレーニングするときに、これらの損失関数のいずれかを使用する場合があります。

以下のリンクは、Keras で利用可能なすべての損失関数のソース コードです。

(https://github.com/keras-team/keras/blob/c658993cf596fbd39cf800873bc457e69cfb0cdb/keras/backend/numpy_backend.py)

<<:  米国は中国のAI企業に対する制裁で目的を果たせなかったのか?

>>:  あなたの顔データはどこに保存されますか?

ブログ    
ブログ    
ブログ    

推薦する

2021年にAIスマートカメラがもたらす新たな市場

[[393303]] 2020年から2021年にかけて、ほぼすべてのビジネス分野の組織が多くの予期せ...

百度、中国初の「工業用」医療用モデル「霊益大モデル」を発売

百度は9月19日、国内初の「産業レベル」医療ビッグモデル「霊益ビッグモデル」を発表し、霊益ビッグモデ...

AIがピークを迎える中、CIOはクラウドコンピューティングのコスト戦略を強化

AIがピークを迎える中、CIOはクラウドコンピューティングのコスト戦略を強化クラウド コンピューティ...

...

エッジインテリジェンス: リアルタイムのデータ処理とインテリジェントな意思決定を実現する新世代のテクノロジー

ラボガイドエッジインテリジェンスは、人工知能 (AI) とエッジコンピューティングを組み合わせた新し...

...

AIとビッグデータに焦点を当て、インテルとToutiaoが技術革新研究所を設立

[原文は51CTO.comより] 8月22日、インテルとToutiaoの共同戦略協力記者会見と「デー...

機械学習を利用するハッカーを心配していますか?データを盗む7つの新しい方法を知る

機械学習は、大規模なデータセットを分析してパターンを識別する能力があることで知られています。基本的に...

機械学習におけるクラス不均衡に対処するための 10 のヒント

導入あるクラスの観測値が他のクラスの観測値よりも高い場合、クラスの不均衡が生じます。例: 不正なクレ...

美団における短編動画コンテンツ理解・生成技術の革新的実践

著者 |馬斌映像データに関しては、コンピュータビジョン技術を通じて関連データを活用し、ユーザーや企業...

Windows Update で使用される指数アルゴリズムにより、XP マシンの速度が大幅に低下する

Windows XP ユーザーは、現在の XP が 2001 年にリリースされた XP よりも遅いこ...

...

オープンソースモデルの新記録:Mixtral 8x7B Instructを超えるモデルが登場

Llama、Llama 2 から Mixtral 8x7B まで、オープンソース モデルのパフォーマ...

NLPの問題の90%を解決する方法を段階的に教えます

[[223595]]はじめに: この記事では、著者の Emmanuel Ameisen が、機械学習...