目的に応じて異なる損失関数を使用できます。この記事では、いくつかの例を挙げながら、非常によく使用される損失関数について説明します。この記事で言及されているパラメータの詳細の一部は、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企業に対する制裁で目的を果たせなかったのか?
ロボット工学は、特にスマートテクノロジーと組み合わせると、無限の可能性を秘めたテクノロジーです。近年...
韓国のソウルで人間の翻訳者と人工知能(AI)翻訳機の対決が行われる。人間の翻訳者が明らかに有利である...
企業は現在、AIGC の可能性を活かすためにデータ、人材、プロセスを準備することが今後の課題であると...
サイエンス フィクションの世界では、デジタル ツインの概念は長い間定番であり、作家たちは、人間が操作...
海外メディアの報道によると、研究者らは、マスクはCOVID-19などの空気感染する病気の拡散を効果的...
Microsoft Research Asia (MSRA) と Orient Overseas C...
[[423663]] 2021-22シーズンのイングランド・プレミアリーグが開幕し、初日にアーセナ...
シュメール王国の時代から、この賢明な王国の人々はデータを記録し、国勢調査を実施し、食糧を配給し始めま...
グーグルは10月16日、今月13日に自社の生成AI製品のユーザーが当局によって保護されると発表した。...
著者: 張傑[51CTO.com からのオリジナル記事]コンピューター ビジョン (CV) は、人工...
Audi A8L を運転しているとき、簡単な言葉を発するだけで、旅に必要なものがすべて手に入ると想像...
企業で人工知能が応用され、開発されるにつれて、ビジネスリーダーは市場競争力を向上させるためにクラウド...
一夜にして、新しいオープンソースモデル「OpenLLM」がChatGPTを打ち負かしたというニュース...
ソースコードのダウンロードアドレス: https://share.weiyun.com/a0c166...