OpenCV 4.13.0
Open Source Computer Vision
読み込み中...
検索中...
見つかりません
🤖 AIによる機械翻訳(非公式) — これは OpenCV 4.13.0 公式リファレンス(英語)を AI (Claude) で自動翻訳したものです。訳に誤りを含む場合があります。正確な情報は 公式英語版(原文) を参照してください。
cv::ml::ANN_MLP クラスabstract

人工ニューラルネットワーク — 多層パーセプトロン。 続き...

#include <opencv2/ml.hpp>

Collaboration diagram for cv::ml::ANN_MLP:

公開型

enum  ActivationFunctions {
  IDENTITY = 0 ,
  SIGMOID_SYM = 1 ,
  GAUSSIAN = 2 ,
  RELU = 3 ,
  LEAKYRELU = 4
}
 
enum  TrainFlags {
  UPDATE_WEIGHTS = 1 ,
  NO_INPUT_SCALE = 2 ,
  NO_OUTPUT_SCALE = 4
}
 
enum  TrainingMethods {
  BACKPROP =0 ,
  RPROP = 1 ,
  ANNEAL = 2
}
 
- Public Types inherited from cv::ml::StatModel
enum  Flags {
  UPDATE_MODEL = 1 ,
  RAW_OUTPUT =1 ,
  COMPRESSED_INPUT =2 ,
  PREPROCESSED_INPUT =4
}
 

公開メンバ関数

virtual double getAnnealCoolingRatio () const =0
 
virtual double getAnnealFinalT () const =0
 
virtual double getAnnealInitialT () const =0
 
virtual int getAnnealItePerStep () const =0
 
virtual double getBackpropMomentumScale () const =0
 
virtual double getBackpropWeightScale () const =0
 
virtual cv::Mat getLayerSizes () const =0
 
virtual double getRpropDW0 () const =0
 
virtual double getRpropDWMax () const =0
 
virtual double getRpropDWMin () const =0
 
virtual double getRpropDWMinus () const =0
 
virtual double getRpropDWPlus () const =0
 
virtual TermCriteria getTermCriteria () const =0
 
virtual int getTrainMethod () const =0
 
virtual Mat getWeights (int layerIdx) const =0
 
virtual void setActivationFunction (int type, double param1=0, double param2=0)=0
 
virtual void setAnnealCoolingRatio (double val)=0
 
virtual void setAnnealEnergyRNG (const RNG &rng)=0
 アニーリング用の RNG を設定/初期化する。
 
virtual void setAnnealFinalT (double val)=0
 
virtual void setAnnealInitialT (double val)=0
 
virtual void setAnnealItePerStep (int val)=0
 
virtual void setBackpropMomentumScale (double val)=0
 
virtual void setBackpropWeightScale (double val)=0
 
virtual void setLayerSizes (InputArray _layer_sizes)=0
 
virtual void setRpropDW0 (double val)=0
 
virtual void setRpropDWMax (double val)=0
 
virtual void setRpropDWMin (double val)=0
 
virtual void setRpropDWMinus (double val)=0
 
virtual void setRpropDWPlus (double val)=0
 
virtual void setTermCriteria (TermCriteria val)=0
 
virtual void setTrainMethod (int method, double param1=0, double param2=0)=0
 
- Public Member Functions inherited from cv::ml::StatModel
virtual float calcError (const Ptr< TrainData > &data, bool test, OutputArray resp) const
 学習用またはテスト用データセットに対する誤差を計算する。
 
virtual bool empty () const CV_OVERRIDE
 Algorithm が空の場合(たとえば開始直後や読み込みに失敗した後)に true を返す。
 
virtual int getVarCount () const =0
 学習サンプル内の変数の数を返す。
 
virtual bool isClassifier () const =0
 モデルが分類器であれば true を返す。
 
virtual bool isTrained () const =0
 モデルが学習済みであれば true を返す。
 
virtual float predict (InputArray samples, OutputArray results=noArray(), int flags=0) const =0
 指定されたサンプルに対するレスポンスを予測する。
 
virtual bool train (const Ptr< TrainData > &trainData, int flags=0)
 統計モデルを学習する。
 
virtual bool train (InputArray samples, int layout, InputArray responses)
 統計モデルを学習する。
 
- Public Member Functions inherited from cv::Algorithm
 Algorithm ()
 
virtual ~Algorithm ()
 
virtual void clear ()
 アルゴリズムの状態をクリアする。
 
virtual String getDefaultName () const
 
virtual void read (const FileNode &fn)
 ファイルストレージからアルゴリズムの引数を読み込む。
 
virtual void save (const String &filename) const
 
void write (const Ptr< FileStorage > &fs, const String &name=String()) const
 
virtual void write (FileStorage &fs) const
 アルゴリズムの引数をファイルストレージに保存する。
 
void write (FileStorage &fs, const String &name) const
 

静的公開メンバ関数

static Ptr< ANN_MLPcreate ()
 空のモデルを作成する。
 
static Ptr< ANN_MLPload (const String &filepath)
 シリアライズされた ANN をファイルから読み込んで作成する。
 
- Static Public Member Functions inherited from cv::ml::StatModel
template<typename _Tp >
static Ptr< _Tptrain (const Ptr< TrainData > &data, int flags=0)
 デフォルト引数でモデルを生成して学習する。
 
- Static Public Member Functions inherited from cv::Algorithm
template<typename _Tp >
static Ptr< _Tpload (const String &filename, const String &objname=String())
 ファイルからアルゴリズムを読み込む。
 
template<typename _Tp >
static Ptr< _TploadFromString (const String &strModel, const String &objname=String())
 文字列からアルゴリズムを読み込む。
 
template<typename _Tp >
static Ptr< _Tpread (const FileNode &fn)
 ファイルノードからアルゴリズムを読み込む。
 

Additional Inherited Members

- Protected Member Functions inherited from cv::Algorithm
void writeFormat (FileStorage &fs) const
 

詳細説明

人工ニューラルネットワーク — 多層パーセプトロン。

MLモデルの多くが一度に構築・学習されるのとは異なり、MLPモデルではこれらのステップが分離されている。まず、指定したトポロジを持つネットワークを、非デフォルトのコンストラクタまたはメソッド ANN_MLP::create を用いて作成する。すべての重みはゼロに設定される。次に、入力ベクトルと出力ベクトルの集合を用いてネットワークを学習する。学習手順は複数回繰り返すことができ、新しい学習データに基づいて重みを調整できる。

StatModel::train には追加のフラグが利用できる: ANN_MLP::TrainFlags

参照
Neural Networks

列挙型メンバ詳解

◆ ActivationFunctions

利用可能な活性化関数

列挙値
IDENTITY 

恒等関数: \(f(x)=x\)

SIGMOID_SYM 

対称シグモイド関数: \(f(x)=\beta*(1-e^{-\alpha x})/(1+e^{-\alpha x})\)

覚え書き
デフォルトのシグモイド活性化関数をデフォルトの引数値 fparam1=0 および fparam2=0 で使用する場合、実際に用いられる関数は y = 1.7159*tanh(2/3 * x) となるため、出力範囲は [0,1] ではなく [-1.7159, 1.7159] となる。
GAUSSIAN 

ガウス関数: \(f(x)=\beta e^{-\alpha x*x}\)

RELU 

ReLU関数: \(f(x)=max(0,x)\)

LEAKYRELU 

Leaky ReLU関数: x>0 のとき \(f(x)=x \)、x<=0 のとき \(f(x)=\alpha x \)

◆ TrainFlags

学習オプション

列挙値
UPDATE_WEIGHTS 

ネットワークの重みを最初から計算するのではなく、更新する。後者の場合、重みは Nguyen-Widrow アルゴリズムを用いて初期化される。

NO_INPUT_SCALE 

入力ベクトルを正規化しない。このフラグが設定されていない場合、学習アルゴリズムは各入力特徴を独立に正規化し、平均値を0にシフトし、標準偏差を1にする。ネットワークが頻繁に更新されると想定される場合、新しい学習データが元のデータと大きく異なる可能性がある。この場合は、適切な正規化に注意を払う必要がある。

NO_OUTPUT_SCALE 

出力ベクトルを正規化しない。このフラグが設定されていない場合、学習アルゴリズムは各出力特徴を独立に正規化し、使用する活性化関数に応じた特定の範囲に変換する。

◆ TrainingMethods

利用可能な学習手法

列挙値
BACKPROP 

誤差逆伝播 (back-propagation) アルゴリズム。

RPROP 

RPROP アルゴリズム。詳細は [232] を参照。

ANNEAL 

シミュレーテッドアニーリング (simulated annealing) アルゴリズム。詳細は [152] を参照。

メンバ関数詳解

◆ create()

static Ptr< ANN_MLP > cv::ml::ANN_MLP::create ( )
static
Python:
cv.ml.ANN_MLP.create() -> retval
cv.ml.ANN_MLP_create() -> retval

空のモデルを作成する。

モデルの学習には StatModel::train を使用し、学習済みモデルの読み込みには Algorithm::load<ANN_MLP>(filename) を使用する。train メソッドには省略可能なフラグがあることに注意: ANN_MLP::TrainFlags

◆ getAnnealCoolingRatio()

virtual double cv::ml::ANN_MLP::getAnnealCoolingRatio ( ) const
pure virtual
Python:
cv.ml.ANN_MLP.getAnnealCoolingRatio() -> retval

ANNEAL: 冷却率を更新する。>0 かつ 1 未満でなければならない。デフォルト値は 0.95。

参照
setAnnealCoolingRatio

◆ getAnnealFinalT()

virtual double cv::ml::ANN_MLP::getAnnealFinalT ( ) const
pure virtual
Python:
cv.ml.ANN_MLP.getAnnealFinalT() -> retval

ANNEAL: 最終温度を更新する。>=0 かつ initialT 未満でなければならない。デフォルト値は 0.1。

参照
setAnnealFinalT

◆ getAnnealInitialT()

virtual double cv::ml::ANN_MLP::getAnnealInitialT ( ) const
pure virtual
Python:
cv.ml.ANN_MLP.getAnnealInitialT() -> retval

ANNEAL: 初期温度を更新する。>=0 でなければならない。デフォルト値は 10。

参照
setAnnealInitialT

◆ getAnnealItePerStep()

virtual int cv::ml::ANN_MLP::getAnnealItePerStep ( ) const
pure virtual
Python:
cv.ml.ANN_MLP.getAnnealItePerStep() -> retval

ANNEAL: ステップごとの反復回数を更新する。>0 でなければならない。デフォルト値は 10。

参照
setAnnealItePerStep

◆ getBackpropMomentumScale()

virtual double cv::ml::ANN_MLP::getBackpropMomentumScale ( ) const
pure virtual
Python:
cv.ml.ANN_MLP.getBackpropMomentumScale() -> retval

BPROP: モーメンタム項の強さ(直前2回の反復における重みの差分)。この引数は重みのランダムな変動を平滑化するための慣性を与える。0(機能無効)から1、さらにそれ以上まで変化させられる。0.1 程度の値で十分よい。デフォルト値は 0.1。

参照
setBackpropMomentumScale

◆ getBackpropWeightScale()

virtual double cv::ml::ANN_MLP::getBackpropWeightScale ( ) const
pure virtual
Python:
cv.ml.ANN_MLP.getBackpropWeightScale() -> retval

BPROP: 重み勾配項の強さ。推奨値は約 0.1。デフォルト値は 0.1。

参照
setBackpropWeightScale

◆ getLayerSizes()

virtual cv::Mat cv::ml::ANN_MLP::getLayerSizes ( ) const
pure virtual
Python:
cv.ml.ANN_MLP.getLayerSizes() -> retval

入力層と出力層を含む各層のニューロン数を指定する整数ベクトル。先頭の要素は入力層の要素数を指定する。末尾の要素は出力層の要素数である。

参照
setLayerSizes

◆ getRpropDW0()

virtual double cv::ml::ANN_MLP::getRpropDW0 ( ) const
pure virtual
Python:
cv.ml.ANN_MLP.getRpropDW0() -> retval

RPROP: 更新値 \(\Delta_{ij}\) の初期値 \(\Delta_0\)。デフォルト値は 0.1。

参照
setRpropDW0

◆ getRpropDWMax()

virtual double cv::ml::ANN_MLP::getRpropDWMax ( ) const
pure virtual
Python:
cv.ml.ANN_MLP.getRpropDWMax() -> retval

RPROP: 更新値の上限 \(\Delta_{max}\)。>1 でなければならない。デフォルト値は 50。

参照
setRpropDWMax

◆ getRpropDWMin()

virtual double cv::ml::ANN_MLP::getRpropDWMin ( ) const
pure virtual
Python:
cv.ml.ANN_MLP.getRpropDWMin() -> retval

RPROP: 更新値の下限 \(\Delta_{min}\)。正の値でなければならない。デフォルト値は FLT_EPSILON。

参照
setRpropDWMin

◆ getRpropDWMinus()

virtual double cv::ml::ANN_MLP::getRpropDWMinus ( ) const
pure virtual
Python:
cv.ml.ANN_MLP.getRpropDWMinus() -> retval

RPROP: 減少係数 \(\eta^-\)。<1 でなければならない。デフォルト値は 0.5。

参照
setRpropDWMinus

◆ getRpropDWPlus()

virtual double cv::ml::ANN_MLP::getRpropDWPlus ( ) const
pure virtual
Python:
cv.ml.ANN_MLP.getRpropDWPlus() -> retval

RPROP: 増加係数 \(\eta^+\)。>1 でなければならない。デフォルト値は 1.2。

参照
setRpropDWPlus

◆ getTermCriteria()

virtual TermCriteria cv::ml::ANN_MLP::getTermCriteria ( ) const
pure virtual
Python:
cv.ml.ANN_MLP.getTermCriteria() -> retval

学習アルゴリズムの終了条件。最大反復回数 (maxCount)、および/または、アルゴリズムを継続させるために反復間で誤差がどれだけ変化しうるか (epsilon) を指定できる。デフォルト値は TermCriteria(TermCriteria::MAX_ITER + TermCriteria::EPS, 1000, 0.01)。

参照
setTermCriteria

◆ getTrainMethod()

virtual int cv::ml::ANN_MLP::getTrainMethod ( ) const
pure virtual
Python:
cv.ml.ANN_MLP.getTrainMethod() -> retval

現在の学習手法を返す

◆ getWeights()

virtual Mat cv::ml::ANN_MLP::getWeights ( int layerIdx) const
pure virtual
Python:
cv.ml.ANN_MLP.getWeights(layerIdx) -> retval

◆ load()

static Ptr< ANN_MLP > cv::ml::ANN_MLP::load ( const String & filepath)
static
Python:
cv.ml.ANN_MLP.load(filepath) -> retval
cv.ml.ANN_MLP_load(filepath) -> retval

シリアライズされた ANN をファイルから読み込んで作成する。

ANN をシリアライズしてディスクに保存するには ANN::save を使用する。この関数にファイルへのパスを与えて呼び出すことで、そのファイルから再び ANN を読み込める。

引数
filepathシリアライズされたANNへのパス

◆ setActivationFunction()

virtual void cv::ml::ANN_MLP::setActivationFunction ( int type,
double param1 = 0,
double param2 = 0 )
pure virtual
Python:
cv.ml.ANN_MLP.setActivationFunction(type[, param1[, param2]]) -> None

各ニューロンの活性化関数を初期化する。現在、デフォルトであり完全にサポートされている唯一の活性化関数は ANN_MLP::SIGMOID_SYM である。

引数
type活性化関数の種類。ANN_MLP::ActivationFunctions を参照。
param1活性化関数の第1引数 \(\alpha\)。デフォルト値は0。
param2活性化関数の第2引数 \(\beta\)。デフォルト値は0。

◆ setAnnealCoolingRatio()

virtual void cv::ml::ANN_MLP::setAnnealCoolingRatio ( double val)
pure virtual
Python:
cv.ml.ANN_MLP.setAnnealCoolingRatio(val) -> None

◆ setAnnealEnergyRNG()

virtual void cv::ml::ANN_MLP::setAnnealEnergyRNG ( const RNG & rng)
pure virtual

アニーリング用の RNG を設定/初期化する。

◆ setAnnealFinalT()

virtual void cv::ml::ANN_MLP::setAnnealFinalT ( double val)
pure virtual
Python:
cv.ml.ANN_MLP.setAnnealFinalT(val) -> None

◆ setAnnealInitialT()

virtual void cv::ml::ANN_MLP::setAnnealInitialT ( double val)
pure virtual
Python:
cv.ml.ANN_MLP.setAnnealInitialT(val) -> None

◆ setAnnealItePerStep()

virtual void cv::ml::ANN_MLP::setAnnealItePerStep ( int val)
pure virtual
Python:
cv.ml.ANN_MLP.setAnnealItePerStep(val) -> None

◆ setBackpropMomentumScale()

virtual void cv::ml::ANN_MLP::setBackpropMomentumScale ( double val)
pure virtual
Python:
cv.ml.ANN_MLP.setBackpropMomentumScale(val) -> None

◆ setBackpropWeightScale()

virtual void cv::ml::ANN_MLP::setBackpropWeightScale ( double val)
pure virtual
Python:
cv.ml.ANN_MLP.setBackpropWeightScale(val) -> None

◆ setLayerSizes()

virtual void cv::ml::ANN_MLP::setLayerSizes ( InputArray _layer_sizes)
pure virtual
Python:
cv.ml.ANN_MLP.setLayerSizes(_layer_sizes) -> None

入力層と出力層を含む各層のニューロン数を指定する整数ベクトル。先頭の要素は入力層の要素数を指定する。末尾の要素は出力層の要素数である。デフォルト値は空の Mat

参照
getLayerSizes

◆ setRpropDW0()

virtual void cv::ml::ANN_MLP::setRpropDW0 ( double val)
pure virtual
Python:
cv.ml.ANN_MLP.setRpropDW0(val) -> None

参照
getRpropDW0

◆ setRpropDWMax()

virtual void cv::ml::ANN_MLP::setRpropDWMax ( double val)
pure virtual
Python:
cv.ml.ANN_MLP.setRpropDWMax(val) -> None

◆ setRpropDWMin()

virtual void cv::ml::ANN_MLP::setRpropDWMin ( double val)
pure virtual
Python:
cv.ml.ANN_MLP.setRpropDWMin(val) -> None

◆ setRpropDWMinus()

virtual void cv::ml::ANN_MLP::setRpropDWMinus ( double val)
pure virtual
Python:
cv.ml.ANN_MLP.setRpropDWMinus(val) -> None

◆ setRpropDWPlus()

virtual void cv::ml::ANN_MLP::setRpropDWPlus ( double val)
pure virtual
Python:
cv.ml.ANN_MLP.setRpropDWPlus(val) -> None

◆ setTermCriteria()

virtual void cv::ml::ANN_MLP::setTermCriteria ( TermCriteria val)
pure virtual
Python:
cv.ml.ANN_MLP.setTermCriteria(val) -> None

◆ setTrainMethod()

virtual void cv::ml::ANN_MLP::setTrainMethod ( int method,
double param1 = 0,
double param2 = 0 )
pure virtual
Python:
cv.ml.ANN_MLP.setTrainMethod(method[, param1[, param2]]) -> None

学習手法と共通の引数を設定する。

引数
methodデフォルト値は ANN_MLP::RPROPANN_MLP::TrainingMethods を参照。
param1ANN_MLP::RPROP では setRpropDW0 に、ANN_MLP::BACKPROP では setBackpropWeightScale に、ANN_MLP::ANNEAL では initialT に渡される。
param2ANN_MLP::RPROP では setRpropDWMin に、ANN_MLP::BACKPROP では setBackpropMomentumScale に、ANN_MLP::ANNEAL では finalT に渡される。

このクラス詳解は次のファイルから抽出されました: