目的に応じて異なる損失関数を使用できます。この記事では、いくつかの例を挙げながら、非常によく使用される損失関数について説明します。この記事で言及されているパラメータの詳細の一部は、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企業に対する制裁で目的を果たせなかったのか?
10月21日、2020年全国大衆起業・イノベーション週間の北京会場である2020年中関村国際フロンテ...
[51CTO.comからのオリジナル記事] 近年、自然言語処理技術は徐々に最も広く使用されている人工...
翻訳者 | 朱 仙中校正 | 梁哲、孫淑娟まとめ人工知能 (AI) ベースのシステムは大きな可能性を...
[51CTO.comよりオリジナル記事] 6月21日、WOT2019グローバル人工知能技術サミット...
過去20年間、一部の懐疑論者は、人工知能(AI)の発展が企業構造を混乱させ、大量の失業と富の格差の拡...
[[406628]]仮想環境 (ALE、MuJoCo、OpenAI Gym) は、エージェントの制御...
3D AI生成は近年急速に発展しており、最新の作品の多くは文章・画像から高品質な3Dモデルを生成で...
OpenAI の謎の Q* プロジェクトが AI コミュニティ全体を騒がせています。膨大な計算リソ...
IoT と AI が徐々に融合するにつれ、AIoT は人々の生活をまったく新しい形で変えようとして...
[[427578]]動物の知能は、環境と相互作用するにつれて、その体の形に合わせて進化します。例え...
企業ビジネスの継続的な拡大と電子化の発展に伴い、企業独自のデータや負荷データが急増し始めています。し...
ビデオの需要と視覚データの理解のための AI の使用が増加するにつれて、カメラの数と生成されるデータ...
レポート概要BIビジネスインテリジェンスの核心は、意思決定の価値を反映することです。 • 企業のデジ...