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

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

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

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

ブログ    

推薦する

写真から3Dモデルを生成、GANとオートエンコーダが衝突して奇跡を起こす

この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...

2代目アメカ登場!よりリアルな表情で流暢に聴衆に話しかけ、数十の言語を話すことができる

ヒューマノイドロボット「アメカ」が第2世代にバージョンアップしました!最近、モバイル・ワールド・コン...

アルゴリズムの質問: 計算された π の値が正確かどうかをどのように判断するのでしょうか?

以下を読む前に、まず考えてみてください。 πの値を計算する世界記録保持者であるMysticialから...

アリババの顔認識セキュリティ技術が3Dマスク攻撃を防ぐ特許を取得

[[334032]]顔認識と 3D テクノロジーが融合したとき、最終的な勝者は誰になるでしょうか? ...

AIは寒さに晒されているのか?スタンフォード大学の年次AIレポートが秘密を明らかにする

2019年へのカウントダウンが始まり、今年はAIの発展に関する議論がたびたび取り上げられています。 ...

「アドビの父」が82歳で逝去!ガレージで始まり、PostScriptを発明し、伝説的な人生で世界を変えた

アドビの共同創業者ジョン・ワーノック氏が19日、82歳で亡くなった。本日、Adobe は公式に発表を...

T11 2019データインテリジェンステクノロジーサミット開催 AIは業界の破壊的変化をもたらす

[[283929]] 図: T11 2019 データインテリジェンステクノロジーサミット現在、データ...

Langchain、ChromaDB、GPT 3.5 に基づく検索強化型生成

翻訳者|朱 仙中レビュー | Chonglou概要:このブログでは、検索拡張生成と呼ばれるプロンプト...

今後 3 ~ 5 年で、機械学習のどの分野の人材が最も不足するでしょうか?

[[205598]]すでにこの業界にいる私としては、今後数年間で業界にどのような機械学習の才能が必...

トレンド | AIを学ぶには、まず2018年の人工知能に関する13の予測を理解する必要があります

[[214541]] 2017 年は、ウォール ストリート ジャーナル、フォーブス、フォーチュンなど...

人工知能オンライン機能システムのデータアクセス技術

1. オンライン機能システム主流のインターネット製品では、古典的な計算広告、検索、推奨から、垂直分野...

AI と IoT によって貨物輸送はどのようにスマート化されるのでしょうか?

スマートな車両監視 近年、IoT テクノロジーによりテレマティクスはまったく新しいレベルに到達しまし...

ガベージクリーニングは必須 - Java ガベージコレクションアルゴリズム

1. Javaガベージコレクションアルゴリズムの核となる考え方Java 言語は、使用中のオブジェクト...

Google の医療モデルが Nature に掲載、Med-PaLM が重要な秘密を明らかに! AI医師は人間と同等の能力を発揮する

5月のI/Oカンファレンスでは、Med-PaLM 2が大幅にアップグレードされ、エキスパートレベルに...