メインコンテンツ

ドリフトの検出

ドリフト検出器の状態とドリフト ステータスを新しいデータで更新

R2024b 以降

  • Detect Drift Block Icon

ライブラリ:
Statistics and Machine Learning Toolbox / Incremental Learning / Drift Detection

説明

Detect Drift ブロックは、新しいデータが与えられると、ドリフト検出器の内部の統計量とドリフト ステータスを更新します。

オブジェクトを含むワークスペース変数の名前を指定することにより、初期化されたインクリメンタルな概念ドリフト検出器オブジェクト (incrementalConceptDriftDetector) をブロックにインポートします。入力端子 x は、ドリフトを評価するデータ ストリームを受け取ります。入力端子 reset は、ドリフト検出器の内部状態をリセットする信号を受け取ります。出力端子 IsWarm は、ドリフト検出器がウォームであるかどうか、つまりドリフト ステータスを追跡するかどうかを示す値を返します。出力端子 status は、現在のドリフト ステータスを返します。オプションの入力端子 w は、観測値の重みを受け取ります。

端子

入力

すべて展開する

入力データ。"n" 行 1 列の数値ベクトル、または logical ベクトルとして指定します。ここで、"n" は観測値の数です。モデルの初期化時は次のようになります。

  • incrementalConceptDriftDetector の呼び出しで InputType の値が "continuous" の場合、x は数値ベクトルでなければなりません。

  • incrementalConceptDriftDetector の呼び出しで InputType の値が "binary" の場合、x は logical ベクトルにすることができます。

データ型: single | double | half | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point

リセット信号。0 (false)、1 (true)、または数値スカラーとして指定します。reset 信号が正の (0 より大きい) スカラーの場合、ドリフト検出器は、PreviousDriftStatusDriftStatus など、incrementalConceptDriftDetector の内部状態をリセットします。データ内でドリフトが検出されると、ブロックはユーザー定義のリセット ロジック サブシステムを使用して検出器をリセットします。

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point

観測値の重み。数値ベクトルとして指定します。ドリフトの検出 ブロックは、x に含まれている観測値に w の対応する値で重みを付けます。w のサイズは x の観測値の数と等しくなければなりません。

観測値の重みは、指数加重移動平均を使用する Hoeffding 境界のドリフト検出法 (HDDMW) に対しては指定できません。観測値の重みを使用するには、incrementalConceptDriftDetector の呼び出しで DetectionMethod"ddm" または "hddma" として指定します。

依存関係

この端子を有効にするには、[ブロック パラメーター] ダイアログ ボックスの [メイン] タブで [観測値の重みの入力端子を追加] のチェック ボックスをオンにします。

データ型: single | double

出力

すべて展開する

Detect Drift ブロックがドリフト ステータスを追跡するかどうかを示すフラグ。logical 0 (false) または 1 (true) として返されます。

説明
1 (true)incrementalConceptDriftDetector オブジェクトがウォームです。したがって、ブロックは信号出力でドリフト ステータスを追跡します。
0 (false)incrementalConceptDriftDetector オブジェクトがウォームではありません。したがって、ブロックは内部の統計量の更新のみを行い、ドリフト ステータスは追跡しません。

データ型: Boolean

現在のドリフト ステータス。0 (安定、ドリフトなし)、1 (ドリフトの警告)、または 2 (ドリフトを検出) として指定されます。

データ型: single | double | half | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point

パラメーター

すべて展開する

ブロック パラメーターを対話的に編集するには、プロパティ インスペクターを使用します。Simulink® ツールストリップの [シミュレーション] タブにある [準備] ギャラリーで [プロパティ インスペクター] を選択します。

メイン

構成済みの incrementalConceptDriftDetector オブジェクトを含むワークスペース変数の名前を指定します。

プログラムでの使用

ブロック パラメーター: DriftDetector
型: 文字ベクトルまたは string
値: incrementalConceptDriftDetector オブジェクトの名前
既定の設定: "IncCDDetector"

チェック ボックスをオンにすると、ドリフトの検出 ブロックに観測値の重み用の入力端子 "w" が追加されます。

プログラムでの使用

ブロック パラメーター: ShowInputWeights
型: 文字ベクトル
値: "off" | "on"
既定の設定: "off"

サンプル時間のヒット間の離散間隔を指定するか、連続 (0) や継承 (–1) など、別のタイプのサンプル時間を指定します。その他のオプションについては、サンプル時間のタイプ (Simulink)を参照してください。

既定では、ドリフトの検出 ブロックはモデル内の前後関係に基づいてサンプル時間を継承します。

プログラムでの使用

ブロック パラメーター: SystemSampleTime
型: string スカラーまたは文字ベクトル
値: スカラー
既定: "–1"

データ型

固定小数点が使用可能なパラメーター

固定小数点演算の丸めモードを指定します。詳細については、丸めモード (Fixed-Point Designer)を参照してください。

ブロック パラメーターは常に、最も近い表現可能な値に丸められます。ブロック パラメーターの丸めを制御するには、マスク フィールドに MATLAB® の丸め関数を使用して式を入力します。

プログラムでの使用

ブロック パラメーター: RndMeth
型: 文字ベクトル
値: "Ceiling" | "Convergent" | "Floor" | "Nearest" | "Round" | "Simplest" | "Zero"
既定の設定: "Floor"

オーバーフローの際に飽和するか折り返すかを指定します。

アクション理由オーバーフローの際の影響

このチェック ボックスをオンにする (on)。

モデルにオーバーフローの可能性があり、生成されたコードで明示的な飽和保護が必要である。

オーバーフローの際は、データ型が表現できる最小値または最大値に飽和します。

データ型 int8 (8 ビット負号付き整数) が表現できる最大値は 127 です。この最大値よりも大きいブロック演算結果は、8 ビット整数のオーバーフローを引き起こします。チェック ボックスをオンにすると、ブロック出力は 127 で飽和します。同様に、ブロック出力は最小出力値の -128 で飽和します。

このチェック ボックスをオフにする (off)。

生成されたコードの効率を最適化したい。

ブロックが範囲外の信号を処理する方法を過剰指定したくない。詳細については、信号範囲のエラーのトラブルシューティング (Simulink)を参照してください。

オーバーフローの際は、データ型が表現できる適切な値で折り返します。

データ型 int8 (8 ビット負号付き整数) が表現できる最大値は 127 です。この最大値よりも大きいブロック演算結果は、8 ビット整数のオーバーフローを引き起こします。チェック ボックスをオフにすると、オーバーフローを引き起こす値が int8 として解釈され、意図しない結果になる可能性があります。たとえば、130 (バイナリでは 1000 0010) というブロック結果が int8 として表現されると、-126 になります。

プログラムでの使用

ブロック パラメーター: SaturateOnIntegerOverflow
型: 文字ベクトル
値: "off" | "on"
既定の設定: "off"

このパラメーターを選択して、ブロックに指定したデータ型を固定小数点ツールがオーバーライドしないようにします。詳細については、[出力データ型の設定をロックする] の使用 (Fixed-Point Designer)を参照してください。

プログラムでの使用

ブロック パラメーター: LockScale
型: 文字ベクトル
値: "off" | "on"
既定の設定: "off"

データ型

ドリフト "status" 出力のデータ型を指定します。データ型は継承するか、直接指定するか、Simulink.NumericType のようにデータ型オブジェクトとして表現することができます。

[Inherit: auto] を選択すると、ブロックはデータ型を継承するルールを使用します。

データ型の詳細については、信号のデータ型の制御 (Simulink)を参照してください。

[データ型アシスタントを表示] ボタン をクリックすると、[データ型アシスタント] が表示されます。これは、データ型の属性を設定する際に役立ちます。詳細については、データ型アシスタントを利用したデータ型の指定 (Simulink)を参照してください。

プログラムでの使用

ブロック パラメーター: DriftStatusDataTypeStr
: 文字ベクトルまたは string
: "Inherit: auto" | "double" | "single" | "half" | "int8" | "uint8" | "int16" | "uint16" | "int32" | "uint32" | "int64" | "uint64" | "boolean" | "fixdt(1,16,0)" | "fixdt(1,16,2^0,0)" | "<data type expression>"
既定の設定: "Inherit: auto"

Simulink がチェックするドリフト "status" の範囲の下限値を指定します。

Simulink は以下を実行するために最小値を使用します。

プログラムでの使用

ブロック パラメーター: DriftStatusOutMin
: 文字ベクトル
: '[]' | スカラー
既定の設定: '[]'

Simulink がチェックするドリフト "status" の範囲の上限値を指定します。

Simulink は以下を実行するために最大値を使用します。

プログラムでの使用

ブロック パラメーター: DriftStatusOutMax
: 文字ベクトル
: '[]' | スカラー
既定の設定: '[]'

平均 (入力観測値の移動平均) のデータ型を指定します。データ型は継承するか、直接指定するか、Simulink.NumericType のようにデータ型オブジェクトとして表現することができます。

データ型の詳細については、信号のデータ型の制御 (Simulink)を参照してください。

[データ型アシスタントを表示] ボタン をクリックすると、[データ型アシスタント] が表示されます。これは、データ型の属性を設定する際に役立ちます。詳細については、データ型アシスタントを利用したデータ型の指定 (Simulink)を参照してください。

プログラムでの使用

ブロック パラメーター: MeanDataTypeStr
: 文字ベクトルまたは string
: "Inherit: auto" | "double" | "single" | "half" | "int8" | "uint8" | "int16" | "uint16" | "int32" | "uint32" | "int64" | "uint64" | "fixdt(1,16,0)" | "fixdt(1,16,2^0,0)" | "<data type expression>"
既定の設定: "Inherit: auto"

Simulink がチェックする平均の範囲の下限値を指定します。

Simulink は以下を実行するために最小値を使用します。

プログラムでの使用

ブロック パラメーター: MeanOutMin
: 文字ベクトル
: '[]' | スカラー
既定の設定: '[]'

Simulink がチェックする平均の範囲の上限値を指定します。

Simulink は以下を実行するために最大値を使用します。

プログラムでの使用

ブロック パラメーター: MeanOutMax
: 文字ベクトル
: '[]' | スカラー
既定の設定: '[]'

分散 (入力観測値の移動分散) のデータ型を指定します。データ型は継承するか、直接指定するか、Simulink.NumericType のようにデータ型オブジェクトとして表現することができます。

データ型の詳細については、信号のデータ型の制御 (Simulink)を参照してください。

[データ型アシスタントを表示] ボタン をクリックすると、[データ型アシスタント] が表示されます。これは、データ型の属性を設定する際に役立ちます。詳細については、データ型アシスタントを利用したデータ型の指定 (Simulink)を参照してください。

プログラムでの使用

ブロック パラメーター: VarianceDataTypeStr
: 文字ベクトルまたは string
: "Inherit: auto" | "double" | "single" | "half" | "int8" | "uint8" | "int16" | "uint16" | "int32" | "uint32" | "int64" | "uint64" | "fixdt(1,16,0)" | "fixdt(1,16,2^0,0)" | "<data type expression>"
既定の設定: "Inherit: auto"

Simulink がチェックする分散の範囲の下限値を指定します。

Simulink は以下を実行するために最小値を使用します。

プログラムでの使用

ブロック パラメーター: VarianceOutMin
: 文字ベクトル
: '[]' | スカラー
既定の設定: '[]'

Simulink がチェックする分散の範囲の上限値を指定します。

Simulink は以下を実行するために最大値を使用します。

プログラムでの使用

ブロック パラメーター: VarianceOutMax
: 文字ベクトル
: '[]' | スカラー
既定の設定: '[]'

重み合計 (重み付き入力観測値の移動合計) のデータ型を指定します。データ型は継承するか、直接指定するか、Simulink.NumericType のようにデータ型オブジェクトとして表現することができます。

データ型の詳細については、信号のデータ型の制御 (Simulink)を参照してください。

[データ型アシスタントを表示] ボタン をクリックすると、[データ型アシスタント] が表示されます。これは、データ型の属性を設定する際に役立ちます。詳細については、データ型アシスタントを利用したデータ型の指定 (Simulink)を参照してください。

プログラムでの使用

ブロック パラメーター: WeightsSumDataTypeStr
: 文字ベクトルまたは string
: "Inherit: auto" | "double" | "single" | "half" | "int8" | "uint8" | "int16" | "uint16" | "int32" | "uint32" | "int64" | "uint64" | "fixdt(1,16,0)" | "fixdt(1,16,2^0,0)" | "<data type expression>"
既定の設定: "Inherit: auto"

Simulink がチェックする重み合計の範囲の下限値を指定します。

Simulink は以下を実行するために最小値を使用します。

プログラムでの使用

ブロック パラメーター: WeightsSumOutMin
: 文字ベクトル
: '[]' | スカラー
既定の設定: '[]'

Simulink がチェックする重み合計の範囲の上限値を指定します。

Simulink は以下を実行するために最大値を使用します。

プログラムでの使用

ブロック パラメーター: WeightsSumOutMax
: 文字ベクトル
: '[]' | スカラー
既定の設定: '[]'

ブロックの特性

データ型

Boolean | double | enumerated | fixed point | half | integer | single

直達

yes

多次元信号

no

可変サイズの信号

no

ゼロクロッシング検出

no

拡張機能

すべて展開する

C/C++ コード生成
Simulink® Coder™ を使用して C および C++ コードを生成します。

固定小数点の変換
Fixed-Point Designer™ を使用して固定小数点システムの設計とシミュレーションを行います。

バージョン履歴

R2024b で導入