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

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

目的に応じて異なる損失関数を使用できます。この記事では、いくつかの例を挙げながら、非常によく使用される損失関数について説明します。この記事で言及されているパラメータの詳細の一部は、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企業に対する制裁で目的を果たせなかったのか?

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

ブログ    

推薦する

...

2022 年のソフトウェア開発に関する 5 つの予測

[[435157]] [51CTO.com クイック翻訳]すべての企業がソフトウェア企業になりつつあ...

...

2024 年のクラウド コンピューティング セキュリティの 5 つのトレンドと進歩

クラウドの世界を探ってみましょう。ただし、単なるクラウドではなく、未来のクラウドです。具体的には、2...

...

人工知能にはどのような分野が含まれますか?どのように機能しますか?

現代の産業技術の発展により、私たちの生活は大きく改善されました。新しい家具が次々と登場しています。キ...

業界規模のナレッジグラフ:経験と課題

[[355133]] 【導入】この記事は、Stone Brothersが推奨するナレッジグラフに関す...

ドローンによるマッピング:建設業界の再考

[[392894]]建設業界は技術変革の瀬戸際に立っています。建設業界では新しい技術の導入が遅れるこ...

AI は教育にどのように役立つのでしょうか?

教育改革と人工知能の普及に伴い、キャンパスのインテリジェント構築もデジタルキャンパスからスマートキャ...

地下鉄路線図のための高速経路探索アルゴリズム

1. 概要過去2日間、Blog Parkで地下鉄マップの実装について話していました。その前に、私もク...

多くのビッグデータサイエンティストが仕事を辞めた?理由を説明しましょう。

はい、私はデータ サイエンティストです。はい、あなたはそれを正しく読みました。しかし、誰かがそれを言...

あなたが知らないかもしれないゲームにおける AI に関する 5 つの予測

コンピュータービジョン技術の急速な発展に伴い、機械学習はビデオゲーム業界、特に仮想現実の分野で広く使...

人工知能と人間の知能のギャップは何でしょうか?

AlphaGoがイ・セドルを破った後、人類の知能の最後の高みも人工知能によって征服されたと誰もが言...

...