回帰のコンテキストでは、クロスエントロピーコストは意味がありますか?


13

クロスエントロピーコストは、(分類ではなく)回帰のコンテキストで意味がありますか?もしそうなら、TensorFlowを通じておもちゃの例を挙げていただけますか?そうでない場合、なぜでしょうか?

私はマイケルニールセンによるニューラルネットワークとディープラーニングのクロスエントロピーについて読んでいましたが、それは回帰や分類に自然に使用できるもののようですが、TensorFlowでそれを効率的に適用する方法がわからないので、損失関数はロジットを取り(私もどちらも理解していません)、ここで分類の下にリストされています


2
この質問の回答として受け入れられているものとは異なると述べているquoraでここに見つかりまし
Siddharth Shakya

応答全体を読むと、彼はかなり優れたクロスエントロピーの「連続バージョン」を提供していることがわかりますが、それは平均二乗誤差(MSE)であることがわかります。
JacKeown

回答:


11

いいえ、tf.nn.sigmoid_cross_entropy_with_logits回帰タスクのようにTensorFlow関数を使用しても意味がありません。TensorFlowでは、「クロスエントロピー」は「カテゴリカルクロスエントロピー」の省略形(または専門用語)です。カテゴリカルクロスエントロピーは、確率に対する操作です。回帰問題は、分類ではなく継続的な結果を予測しようとします。

専門用語の「クロスエントロピー」は、誤解を招く可能性があります。クロスエントロピー損失関数がいくつもあるからです。ただし、この特定の損失を「クロスエントロピー」損失と呼ぶのは機械学習の慣例です。

リンクしているTensorFlow関数の先に目を向けると、当然、可能なクロスエントロピー関数はいくつもあります。これは、クロスエントロピーの一般的な概念が2つの確率分布の比較に関するものだからです。比較する2つの確率分布に応じて、典型的なカテゴリークロスエントロピー損失とは異なる損失が発生する場合があります。たとえば、平均が一定であるが対角共分散が固定されているガウスターゲットのクロスエントロピーは、平均2乗誤差に減少します。クロスエントロピーの一般的な概念は、次の質問で詳しく説明されています。


5
ただし、出力値が[0,1]の範囲の実際の値である回帰タスクで損失関数としてバイナリクロスエントロピーを使用することは、かなり合理的で有効なことです。
本日

[0,1]

5

@Sycoraxの答えは正しいです。ただし、出力値が[0,1]の範囲にある回帰タスクで(バイナリ)クロスエントロピーを使用することは、有効で妥当なことです。実際には、画像の自動エンコーダで使用されています(例:こここの論文)。この回答でこの場合に機能する理由の簡単な数学的証明をご覧ください。


[0,1]

@InfProbSciX " 出力が[0,1]の範囲にある場合の回帰を処理するのは妥当なアプローチではない可能性があります。" では、「合理的」とはどのような意味でしょうか。または、特定のタスクの損失関数の合理性をどのように定義しますか?損失関数については、この説明が当てはまるのではないかと思います。もちろん「合理的」なものを定義した後で、あらゆる種類の回帰タスクに使用するのに妥当な損失関数はありますか?
本日

Y=fθ(X)+ϵϵYBernoulli(pθ)バイナリクロスエントロピー。法則がcoefsの法線が前の正規回帰である場合、損失はL2ペナルティなどに対応します。可能であれば、私は法律を構築したい、その後の損失を導きます。
InfProbSciX

@InfProbSciXご返信ありがとうございます。したがって、前述したように、回帰タスク(およびデータの分布に関する仮定、エラーなど)によっては、損失関数を使用するのが妥当ではない場合があります。そして、私が述べたように、これはクロスエントロピーを含むすべての損失関数に当てはまります。もちろん、出力値が[0,1]の範囲にあるからといって、クロスエントロピーが最適な選択損失関数であることを保証するものではなく、そうでない場合は私が答えを出そうとしていなかったという点がわかります。
今日の

5

ディープラーニングフレームワークでは、多くの場合、モデル損失が混在しており、ソフトマックスの非線形性を持つ多項モデルのクロスエントロピーをで参照しますがcross_entropy、これは誤解を招きます。一般に、任意のモデルのクロスエントロピーを定義できます。

fθ(x)ylogfθ(x),
y


2

残念ながら、@ Sycoraxによって現在受け入れられている回答は、詳細ではありますが、正しくありません。

実際には、カテゴリのクロスエントロピーを通る回帰の典型的な例は、 - Wavenet -れている実施 TensorFlowに

原則は、出力スペースを離散化し、モデルはそれぞれのビンのみを予測することです。サウンドモデリングドメインの例については、論文のセクション2.2を参照してください。したがって、技術的にモデルは分類を実行しますが、解決される最終的なタスクは回帰です。

明らかな欠点は、出力解像度が失われることです。ただし、これは問題ではない可能性があります(少なくとも、Googleの人工アシスタントが非常に人間味のある声で話したと思います)。または、最も可能性の高いビンとその2つの隣の間を補間するなど、いくつかの後処理をいじることができます。

一方、このアプローチでは、通常の単一線形単位の出力に比べてモデルがはるかに強力になります。つまり、マルチモーダル予測を表現したり、信頼性を評価したりできます。ただし、後者は他の手段で自然に実現できることに注意してください。たとえば、変分オートエンコーダーのように明示的な(ログ)分散出力を作成するなどです。

とにかく、このアプローチは、より多くの次元の出力にうまくスケーリングできません。出力レイヤーのサイズが指数関数的に増加し、計算とモデリングの両方の問題が発生するためです。


1
私はあなたの言っていることはわかりますが、出力空間を離散化することは、分類を使用して回帰問題を近似しているのと同じくらい「回帰」を実行することを個人的には考えません...しかし、それは単に用語/慣習の問題だと思います。
JacKeown

1
同意した。32ビットの浮動小数点空間はとにかく離散的です:-)
dedObed

-1

以前に受け入れた答えに同意できないため、この質問を再検討しました。クロスエントロピー損失は回帰で使用できます(一般的ではありません)。

クロスエントロピーは、2つの確率分布を比較する場合にのみ意味がある概念であるという事実に帰着します。正規分布の平均と標準偏差を予測として出力するニューラルネットワークを考えることができます。そうすれば、悪い予測に自信を持つようになると、さらに厳しく罰せられるでしょう。そう、それは理にかなっていますが、ある意味でディストリビューションを出力している場合のみです。コメントの@SiddharthShakyaから私の元の質問へのリンクはこれを示しています。


1
この回答は、質問とは異なる方法で質問に回答するようです。あなたが質問でリンクした関数は特定の種類のクロスエントロピー損失に関するものであり、あなたの質問はそれらの関数が回帰で使用できるかどうかを尋ねるようであり、私の答えはそれらの関数の使用方法を尋ねているかのように書かれていますリンクします。ここでの答えは、「クロスエントロピーは分類を超えて一般化できるか」という質問に答えるようです。Qを編集すると、Tensorflow関数の使用方法に焦点を当てるのではなく、数学的な概念がどのように定義されるかに焦点が当てられることが明らかになります。
Sycorax氏は、モニカを

私はあなたの異議を理解しましたが、私が持っていた同じ質問を持つ人々を助けることができると感じる私の元のクエリを表すので、質問をそのままにするつもりです。とにかく、投稿全体には、全体として十分な情報が含まれている必要があります。
JacKeown
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.