CRPS: ベイジアン機械学習モデルのスコアリング関数
連続順位付け確率スコア (CRPS) または「連続順位付け確率スコア」は、分布予測を真の値と比較する関数または統計です。
#機械学習ワークフローの重要な部分はモデルの評価です。プロセス自体は常識であると考えられます。データをトレーニング セットとテスト セットに分割し、トレーニング セットでモデルをトレーニングし、スコアリング関数を使用してテスト セットでのパフォーマンスを評価します。
スコアリング関数 (またはメトリック) は、真の値とその予測を単一の比較可能な値にマッピングします [1]。たとえば、継続的な予測の場合、RMSE、MAE、MAPE、R-squared などのスコアリング関数を使用できます。予測がポイントごとの推定ではなく、分布である場合はどうなるでしょうか?
ベイジアン機械学習では、予測は通常、点ごとの推定ではなく、値の分布です。たとえば、予測は分布の推定パラメーター、またはノンパラメトリックの場合は MCMC メソッドからのサンプルの配列にすることができます。
この場合、従来のスコアリング関数は統計設計には適していません。予測分布を平均値または中央値に集約すると、予測分布の分散と形状に関するかなりの情報が失われます。
CRPS
連続段階的確率スコア (CRPS) は、単一の真の値を累積分布関数 (CDF) と比較する分数関数です。
##これは 1970 年代に初めて導入され [4]、主に天気予報を目的としており、現在では文献や業界で再び注目を集めています [1] [6]。これは、ターゲット変数が連続であり、モデルがターゲットの分布を予測する場合に、モデルのパフォーマンスを評価するためのメトリクスとして使用できます。例には、ベイズ回帰またはベイズ時系列モデルが含まれます [5]。CRPS は、CDF を使用することでパラメトリック予測とノンパラメトリック予測の両方に役立ちます。多くの分布に対して、CRPS [3] には分析式があり、ノンパラメトリック予測に対しては、CRPS は経験的累積分布関数 (eCDF) を使用します。 )。
テスト セット内の各観測値の CRPS を計算した後、結果を 1 つの値に集計する必要もあります。 RMSE および MAE と同様に、これらは (おそらく加重された) 平均を使用して要約されます。
単一値を分布と比較する際の主な課題は、個々の値をどのように変換するかです。分布の表現。 CRPS は、指標関数を使用してグラウンド トゥルースを縮退分布に変換することで、この問題を解決します。たとえば、真の値が 7 の場合、次のように使用できます。CRPS は、有名な MAE (平均絶対誤差) と密接に関連しています。ポイントごとの予測を使用し、それを縮退 CDF として扱い、CRPS 方程式に注入すると、次の結果が得られます。
モデルの予測がパラメトリック分布である場合 (たとえば、分布パラメーターを予測する必要がある場合)、CRPS にはいくつかの一般的な分布に対する分析式があります [3]。モデルが正規分布のパラメーター μ と σ を予測する場合、CRPS は次の式を使用して計算できます。
予測がノンパラメトリックである場合、つまり予測が一連のシミュレーションである場合、eCDF の計算は面倒な作業になります。ただし、CRPS は次のように表すこともできます:
ここで、X、X' は F に独立しており、同一に分散されています。これらの式は計算が簡単ですが、それでもある程度の計算が必要です。
Python 実装
import numpy as np # Adapted to numpy from pyro.ops.stats.crps_empirical # Copyright (c) 2017-2019 Uber Technologies, Inc. # SPDX-License-Identifier: Apache-2.0 def crps(y_true, y_pred, sample_weight=None): num_samples = y_pred.shape[0] absolute_error = np.mean(np.abs(y_pred - y_true), axis=0) if num_samples == 1: return np.average(absolute_error, weights=sample_weight) y_pred = np.sort(y_pred, axis=0) diff = y_pred[1:] - y_pred[:-1] weight = np.arange(1, num_samples) * np.arange(num_samples - 1, 0, -1) weight = np.expand_dims(weight, -1) per_obs_crps = absolute_error - np.sum(diff * weight, axis=0) / num_samples**2 return np.average(per_obs_crps, weights=sample_weight)
CRPS 関数は NRG 形式 [2] に従って実装されます。 pyroppl[6]
import numpy as np def crps(y_true, y_pred, sample_weight=None): num_samples = y_pred.shape[0] absolute_error = np.mean(np.abs(y_pred - y_true), axis=0) if num_samples == 1: return np.average(absolute_error, weights=sample_weight) y_pred = np.sort(y_pred, axis=0) b0 = y_pred.mean(axis=0) b1_values = y_pred * np.arange(num_samples).reshape((num_samples, 1)) b1 = b1_values.mean(axis=0) / num_samples per_obs_crps = absolute_error + b0 - 2 * b1 return np.average(per_obs_crps, weights=sample_weight)
から引用 上記のコードは、PWM 形式 [2] に基づいて CRPS を実装しています。
概要
連続順位付け確率スコア (CRPS) は、単一の真の値をその予測分布と比較するスコアリング関数です。この特性により、モデルは通常、点ごとの推定ではなく分布予測を出力するベイジアン機械学習に関連します。これは、分布予測用のよく知られた MAE を一般化したものと見ることができます。
パラメトリック予測の分析式があり、ノンパラメトリック予測の簡単な計算を実行できます。 CRPS は、継続的な目標を持つベイジアン機械学習モデルのパフォーマンスを評価するための新しい標準手法となる可能性があります。
以上がCRPS: ベイジアン機械学習モデルのスコアリング関数の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









機械学習とデータ サイエンスの分野では、モデルの解釈可能性が常に研究者や実務家に焦点を当ててきました。深層学習やアンサンブル手法などの複雑なモデルが広く適用されるようになったことで、モデルの意思決定プロセスを理解することが特に重要になってきました。 Explainable AI|XAI は、モデルの透明性を高めることで、機械学習モデルに対する信頼と自信を構築するのに役立ちます。モデルの透明性の向上は、複数の複雑なモデルの普及や、モデルを説明するための意思決定プロセスなどの方法によって実現できます。これらの方法には、特徴重要度分析、モデル予測間隔推定、ローカル解釈可能性アルゴリズムなどが含まれます。特徴重要度分析では、入力特徴に対するモデルの影響度を評価することで、モデルの意思決定プロセスを説明できます。モデルの予測間隔の推定

C++ の機械学習アルゴリズムが直面する一般的な課題には、メモリ管理、マルチスレッド、パフォーマンスの最適化、保守性などがあります。解決策には、スマート ポインター、最新のスレッド ライブラリ、SIMD 命令、サードパーティ ライブラリの使用、コーディング スタイル ガイドラインの遵守、自動化ツールの使用が含まれます。実践的な事例では、Eigen ライブラリを使用して線形回帰アルゴリズムを実装し、メモリを効果的に管理し、高性能の行列演算を使用する方法を示します。

翻訳者 | Li Rui によるレビュー | 今日、人工知能 (AI) および機械学習 (ML) モデルはますます複雑になっており、これらのモデルによって生成される出力はブラックボックスになっており、関係者に説明することができません。 Explainable AI (XAI) は、利害関係者がこれらのモデルがどのように機能するかを理解できるようにし、これらのモデルが実際に意思決定を行う方法を確実に理解できるようにし、AI システムの透明性、信頼性、およびこの問題を解決するための説明責任を確保することで、この問題を解決することを目指しています。この記事では、さまざまな説明可能な人工知能 (XAI) 手法を検討して、その基礎となる原理を説明します。説明可能な AI が重要であるいくつかの理由 信頼と透明性: AI システムが広く受け入れられ、信頼されるためには、ユーザーは意思決定がどのように行われるかを理解する必要があります

機械学習は人工知能の重要な分野であり、明示的にプログラムしなくてもコンピューターにデータから学習して能力を向上させる機能を提供します。機械学習は、画像認識や自然言語処理から、レコメンデーションシステムや不正行為検出に至るまで、さまざまな分野で幅広く応用されており、私たちの生活様式を変えつつあります。機械学習の分野にはさまざまな手法や理論があり、その中で最も影響力のある 5 つの手法は「機械学習の 5 つの流派」と呼ばれています。 5 つの主要な学派は、象徴学派、コネクショニスト学派、進化学派、ベイジアン学派、およびアナロジー学派です。 1. 象徴主義は、象徴主義とも呼ばれ、論理的推論と知識の表現のためのシンボルの使用を強調します。この学派は、学習は既存の既存の要素を介した逆演繹のプロセスであると信じています。

MetaFAIR はハーバード大学と協力して、大規模な機械学習の実行時に生成されるデータの偏りを最適化するための新しい研究フレームワークを提供しました。大規模な言語モデルのトレーニングには数か月かかることが多く、数百、さらには数千の GPU を使用することが知られています。 LLaMA270B モデルを例にとると、そのトレーニングには合計 1,720,320 GPU 時間が必要です。大規模なモデルのトレーニングには、これらのワークロードの規模と複雑さにより、特有のシステム上の課題が生じます。最近、多くの機関が、SOTA 生成 AI モデルをトレーニングする際のトレーニング プロセスの不安定性を報告しています。これらは通常、損失スパイクの形で現れます。たとえば、Google の PaLM モデルでは、トレーニング プロセス中に最大 20 回の損失スパイクが発生しました。数値的なバイアスがこのトレーニングの不正確さの根本原因です。

C++ では、機械学習アルゴリズムの実装には以下が含まれます。 線形回帰: 連続変数を予測するために使用されるステップには、データの読み込み、重みとバイアスの計算、パラメーターと予測の更新が含まれます。ロジスティック回帰: 離散変数の予測に使用されます。このプロセスは線形回帰に似ていますが、予測にシグモイド関数を使用します。サポート ベクター マシン: サポート ベクターの計算とラベルの予測を含む強力な分類および回帰アルゴリズム。

1. SUM 関数は、列またはセルのグループ内の数値を合計するために使用されます (例: =SUM(A1:J10))。 2. AVERAGE 関数は、列またはセルのグループ内の数値の平均を計算するために使用されます (例: =AVERAGE(A1:A10))。 3. COUNT 関数。列またはセルのグループ内の数値またはテキストの数をカウントするために使用されます。例: =COUNT(A1:A10)。 4. IF 関数。指定された条件に基づいて論理的な判断を行い、結果を返すために使用されます。対応する結果。

機械学習の分野における Go 言語の応用可能性は次のとおりです。 同時実行性: 並列プログラミングをサポートし、機械学習タスクにおける計算量の多い操作に適しています。効率: ガベージ コレクターと言語機能により、大規模なデータ セットを処理する場合でもコードの効率が保証されます。使いやすさ: 構文が簡潔なので、機械学習アプリケーションの学習と作成が簡単です。
