incrementalRegressionLinear
インクリメンタル学習用の線形回帰モデル
説明
incrementalRegressionLinear は incrementalRegressionLinear モデル オブジェクトを作成します。これは、回帰問題用のインクリメンタル線形モデルを表します。サポートされる学習器には、サポート ベクター マシン (SVM) と最小二乗が含まれます。
他の Statistics and Machine Learning Toolbox™ モデル オブジェクトとは異なり、incrementalRegressionLinear は直接呼び出すことができます。また、モデルをデータに当てはめる前に、パフォーマンス メトリクス構成、パラメーター値、および目的ソルバーなどの学習オプションを指定できます。incrementalRegressionLinear オブジェクトを作成すると、インクリメンタル学習用に準備されます。
incrementalRegressionLinear は、インクリメンタル学習に最適です。SVM または線形回帰モデルに学習させるための従来のアプローチ (データへの当てはめによるモデルの作成、交差検証の実行、ハイパーパラメーターの調整など) については、fitrsvm または fitrlinear を参照してください。
作成
incrementalRegressionLinear モデル オブジェクトは、次のいくつかの方法で作成できます。
関数の直接呼び出し — インクリメンタル学習オプションを構成するか、
incrementalRegressionLinearを直接呼び出して、線形モデル パラメーターとハイパーパラメーターの初期値を指定します。このアプローチは、データがまだない場合やインクリメンタル学習をすぐに開始したい場合に最適です。従来式の学習済みモデルの変換 — 学習済みモデル オブジェクトのモデル係数およびハイパーパラメーターを使用して、インクリメンタル学習用の線形回帰モデルを初期化するには、従来式の学習済みモデルを関数
incrementalLearnerに渡してincrementalRegressionLinearモデル オブジェクトに変換できます。この表には、適切なリファレンス ページへのリンクが含まれています。変換可能なモデル オブジェクト 変換関数 RegressionSVMまたはCompactRegressionSVMincrementalLearnerRegressionLinearincrementalLearnerインクリメンタル学習関数の呼び出し —
fit、updateMetrics、およびupdateMetricsAndFitは、構成済みのincrementalRegressionLinearモデル オブジェクトおよびデータを入力として受け入れ、入力モデルとデータから学習した情報で更新されたincrementalRegressionLinearモデル オブジェクトを返します。
説明
は線形回帰用の既定のインクリメンタル モデル オブジェクト Mdl = incrementalRegressionLinear()Mdl を返します。既定のモデルのプロパティには、未知のモデル パラメーター用のプレースホルダーが含まれています。既定のモデルは、パフォーマンスを追跡したり、予測を生成したりする前に学習させなければなりません。
は、名前と値の引数を使用して、プロパティと追加のオプションを設定します。それぞれの名前は引用符で囲みます。たとえば、Mdl = incrementalRegressionLinear(Name=Value)incrementalRegressionLinear(Beta=[0.1 0.3],Bias=1,MetricsWarmupPeriod=100) は、線形モデル係数 β のベクトルを [0.1 0.3] に、バイアス β0 を 1 に、およびメトリクスのウォームアップ期間を 100 に設定します。
名前と値の引数
オプションの引数のペアを Name1=Value1,...,NameN=ValueN として指定します。ここで、Name は引数名で、Value は対応する値です。名前と値の引数は他の引数の後に指定しなければなりませんが、ペアの順序は重要ではありません。
例: Standardize=true は、推定期間中に推定された予測子の平均と標準偏差を使用して、予測子データを標準化します。
インクリメンタル学習中に追跡するモデルのパフォーマンス メトリクス。組み込みの損失関数の名前、名前の string ベクトル、関数ハンドル (@metricName)、関数ハンドルの構造体配列、または名前、関数ハンドル、構造体配列の cell ベクトルとして指定します。
Mdl が "ウォーム" のとき (IsWarm を参照)、updateMetrics および updateMetricsAndFit は Mdl の Metrics プロパティのパフォーマンス メトリクスを追跡します。
次の表は、組み込みの損失関数名と、それらをサポートする学習器 (Learner で指定) の一覧です。string ベクトルを使用して、複数の損失関数を指定できます。
| 名前 | 説明 | メトリクスをサポートする学習器 |
|---|---|---|
"epsiloninsensitive" | イプシロン不感応損失 | 'svm' |
"mse" | 重み付けされた平均二乗誤差 | 'svm' および 'leastsquares' |
組み込み損失関数の詳細については、loss を参照してください。
例: 'Metrics',["epsiloninsensitive" "mse"]
パフォーマンス メトリクスを返すカスタム関数を指定するには、関数ハンドル表記を使用します。関数は次の形式でなければなりません。
metric = customMetric(Y,YFit)
出力引数
metricは n 行 1 列の数値ベクトルです。ここで、各要素は、学習サイクル中にインクリメンタル学習関数によって処理されたデータの対応する観測値の損失です。関数名 (
customMetric) を指定します。Yは、観測応答の長さ n の数値ベクトルです。ここで、n は標本サイズです。YFitは、対応する予測応答の長さ n の数値ベクトルです。
複数のカスタム メトリクスを指定し、それぞれにカスタム名を割り当てるには、構造体配列を使用します。組み込みメトリクスとカスタム メトリクスの組み合わせを指定するには、cell ベクトルを使用します。
例: 'Metrics',struct('Metric1',@customMetric1,'Metric2',@customMetric2)
例: 'Metrics',{@customMetric1 @customMetric2 'mse' struct('Metric3',@customMetric3)}
updateMetrics および updateMetricsAndFit は、table で指定したメトリクスをプロパティ Metrics に保存します。Metrics のデータ型によって、table の行名が決まります。
'Metrics' 値のデータ型 | Metrics プロパティの行名の説明 | 例 |
|---|---|---|
| string または文字ベクトル | 対応する組み込みメトリクスの名前 | "epsiloninsensitive" の行名は "EpsilonInsensitiveLoss" |
| 構造体配列 | フィールド名 | struct('Metric1',@customMetric1) の行名は "Metric1" |
| プログラム ファイルに格納されている関数への関数ハンドル | 関数名 | @customMetric の行名は "customMetric" |
| 無名関数 | CustomMetric_。ここで、 は Metrics のメトリクス | @(Y,YFit)customMetric(Y,YFit)... の行名は CustomMetric_1 |
既定の設定では、次のようになります。
Learnerが'svm'の場合、Metricsは"epsiloninsensitive"です。Learnerが'leastsquares'の場合、Metricsは"mse"です。
パフォーマンス メトリクス オプションの詳細については、パフォーマンス メトリクスを参照してください。
データ型: char | string | struct | cell | function_handle
各反復での観測値のシャッフル フラグ。次の表の値として指定します。
| 値 | 説明 |
|---|---|
true | ソフトウェアが、関数 fit でモデルを当てはめる前に、データの入力チャンク内の観測値をシャッフルします。このアクションにより、抽出スキームによって誘発されるバイアスが低減されます。 |
false | ソフトウェアが、受信した順序でデータを処理します。 |
このオプションは、Solver が 'scale-invariant' である場合のみ有効です。Solver が 'sgd' または 'asgd' である場合は、データを処理する前に、データの入力チャンク内の観測値が常にシャッフルされます。
例: 'Shuffle',false
データ型: logical
プロパティ
incrementalRegressionLinear を呼び出すときに名前と値の引数の構文のみを使用して、ほとんどのプロパティを設定できます。incrementalLearner を呼び出して従来式の学習済みモデルを変換するときに、いくつかのプロパティを設定できます。プロパティ FittedLoss、NumTrainingObservations、Mu、Sigma、SolverOptions、および IsWarm は設定できません。
回帰モデルのパラメーター
この プロパティ は読み取り専用です。
線形モデル係数 β。NumPredictors 行 1 列の数値ベクトルとして指定します。
インクリメンタル近似関数は学習中に Beta を推定します。Beta の既定の初期値は、モデルの作成方法に応じて異なります。
従来式の学習済みモデルを変換して
Mdlを作成する場合、初期値は従来式の学習済みモデルの対応するプロパティによって指定されます。それ以外の場合、初期値は
zeros(NumPredictors,1)です。
データ型: single | double
この プロパティ は読み取り専用です。
モデル切片 β0 またはバイアス項。数値スカラーとして指定します。
インクリメンタル近似関数は学習中に Bias を推定します。Bias の既定の初期値は、モデルの作成方法に応じて異なります。
従来式の学習済みモデルを変換して
Mdlを作成する場合、初期値は従来式の学習済みモデルの対応するプロパティによって指定されます。それ以外の場合、初期値は
0です。
データ型: single | double
この プロパティ は読み取り専用です。
イプシロン不感応区間の幅の半分。'auto' または非負のスカラーとして指定します。incrementalRegressionLinear は Epsilon 値を数値スカラーとして格納します。
incrementalRegressionLinear を呼び出すときに 'auto' を指定した場合、インクリメンタル近似関数は次の手順を使用して、EstimationPeriod で指定される推定期間中に Epsilon を推定します。
iqr(Y)≠ 0 の場合、Epsilonはiqr(Y)/13.49です。ここで、Yは推定期間の応答データです。iqr(Y)= 0 であるかMdlをデータに当てはめる前の場合、Epsilonは0.1です。
Epsilon の既定値は、モデルの作成方法に応じて異なります。
従来式の学習済み SVM 回帰モデルを変換する場合 (
Learnerが'svm')、Epsilonは従来式の学習済みモデルの対応するプロパティによって指定されます。それ以外の場合、既定値は
'auto'です。
Learner が 'leastsquares' の場合、Epsilon を設定することはできず、その値は NaN になります。
データ型: single | double
この プロパティ は読み取り専用です。
線形モデルの当てはめに使用する損失関数。'epsiloninsensitive' または 'mse' を指定します。
| 値 | アルゴリズム | 損失関数 | Learner の値 |
|---|---|---|---|
'epsiloninsensitive' | サポート ベクター マシン回帰 | イプシロン不感応: | 'svm' |
'mse' | 通常の最小二乗による線形回帰 | 平均二乗誤差 (MSE): | 'leastsquares' |
この プロパティ は読み取り専用です。
線形回帰モデルのタイプ。'svm' または 'leastsquares' を指定します。incrementalRegressionLinear は Learner 値を文字ベクトルとして格納します。
次の表では です。
β は
Betaです。x は p 個の予測子変数による観測値です。
β0 は
Biasです。
| 値 | アルゴリズム | 損失関数 | FittedLoss の値 |
|---|---|---|---|
'svm' | サポート ベクター マシン回帰 | イプシロン不感応: | 'epsiloninsensitive' |
'leastsquares' | 通常の最小二乗による線形回帰 | 平均二乗誤差 (MSE): | 'mse' |
Learner の既定値は、モデルの作成方法に応じて異なります。
従来式の学習済みモデルを変換して
Mdlを作成する場合、次のようになります。従来式の学習済みモデルが
RegressionSVMまたはCompactRegressionSVMの場合、Learnerは'svm'です。従来式の学習済みモデルが
RegressionLinearの場合、Learnerは従来式の学習済みモデルの対応するプロパティによって指定されます。
それ以外の場合、既定値は
'svm'です。
データ型: char | string
この プロパティ は読み取り専用です。
予測子変数の数。非負の数値スカラーとして指定します。
NumPredictors の既定値は、モデルの作成方法に応じて異なります。
従来式の学習済みモデルを変換して
Mdlを作成する場合、NumPredictorsは従来式の学習済みモデルの対応するプロパティによって指定されます。incrementalRegressionLinearを直接呼び出してMdlを作成する場合、NumPredictorsは名前と値の引数の構文を使用して指定できます。値を指定しない場合、既定値は0で、インクリメンタル近似関数は学習中に予測子データからNumPredictorsを推測します。
データ型: double
この プロパティ は読み取り専用です。
インクリメンタル モデル Mdl に当てはめる観測値の数。非負の数値スカラーとして指定します。NumTrainingObservations は、Mdl および学習データを fit または updateMetricsAndFit に渡すときに増加します。
メモ
従来式の学習済みモデルを変換して Mdl を作成する場合、incrementalRegressionLinear は、従来式の学習済みモデルに当てはめる観測値の数を NumTrainingObservations に追加しません。
データ型: double
この プロパティ は読み取り専用です。
応答変換関数。'none' または関数ハンドルとして指定します。incrementalRegressionLinear は ResponseTransform 値を文字ベクトルまたは関数ハンドルとして格納します。
ResponseTransform は、インクリメンタル学習関数が生の応答値を変換する方法を記述します。
MATLAB® 関数やユーザー定義関数の場合は、関数ハンドルを入力します。たとえば、'ResponseTransform',@function では、function が n 行 1 列のベクトル (元の応答) を受け入れ、同じ長さのベクトル (変換された応答) を返します。
ResponseTransform の既定値は、モデルの作成方法に応じて異なります。
従来式の学習済みモデルを変換して
Mdlを作成する場合、ResponseTransformは従来式の学習済みモデルの対応するプロパティによって指定されます。それ以外の場合、既定値は
"none"です。
データ型: char | string | function_handle
学習パラメーター
この プロパティ は読み取り専用です。
ハイパーパラメーターの推定のために、パフォーマンス メトリクスの学習または追跡の前にインクリメンタル モデルが処理する観測値の数。非負の整数として指定します。
メモ
Mdlをインクリメンタル学習用に準備する場合 (学習に必要なすべてのハイパーパラメーターを指定する必要があります)、incrementalRegressionLinearはEstimationPeriodを0に強制します。Mdlをインクリメンタル学習用に準備しない場合、incrementalRegressionLinearはEstimationPeriodを1000に設定します。
詳細は、推定期間を参照してください。
データ型: single | double
この プロパティ は読み取り専用です。
線形モデルの切片使用フラグ。true または false として指定します。
| 値 | 説明 |
|---|---|
true | incrementalRegressionLinear は、バイアス項 β0 を、インクリメンタル近似関数がデータに当てはめる線形モデルに含めます。 |
false | incrementalRegressionLinear は β0 = 0 に設定します。 |
Bias ≠ 0 の場合、FitBias は true でなければなりません。つまり、incrementalRegressionLinear は β0 の等式制約をサポートしません。
FitBias の既定値は、モデルの作成方法に応じて異なります。
従来式の学習済み線形回帰モデル (
RegressionLinear) を変換してMdlを作成する場合、FitBiasは従来式の学習済みモデルのModelParametersプロパティのFitBias値によって指定されます。それ以外の場合、既定値は
trueです。
データ型: logical
この プロパティ は読み取り専用です。
予測子の平均。数値ベクトルを指定します。
Mu が空の配列 [] で、'Standardize',true が指定されている場合、インクリメンタル近似関数は、Mu を EstimationPeriod で指定された推定期間中に推定された予測子変数の平均に設定します。
Mu を直接指定することはできません。
データ型: single | double
この プロパティ は読み取り専用です。
予測子の標準偏差。数値ベクトルを指定します。
Sigma が空の配列 [] で、'Standardize',true が指定されている場合、インクリメンタル近似関数は、Sigma を EstimationPeriod で指定された推定期間中に推定された予測子変数の標準偏差に設定します。
Sigma を直接指定することはできません。
データ型: single | double
この プロパティ は読み取り専用です。
目的関数の最小化手法。'scale-invariant'、'sgd' または 'asgd' を指定します。incrementalRegressionLinear は Solver 値を文字ベクトルとして格納します。
| 値 | 説明 | メモ: |
|---|---|---|
'scale-invariant' |
| |
'sgd' | 確率的勾配降下法 (SGD) [3][2] |
|
'asgd' | 平均化確率的勾配降下法 (ASGD) [4] |
|
Solver の既定値は、モデルの作成方法に応じて異なります。
incrementalRegressionLinearを直接呼び出してMdlを作成する場合、既定値は'scale-invariant'です。従来式の学習済み線形回帰モデル (
RegressionLinear) を変換してMdlを作成するときに、従来式の学習済みモデルのRegularizationプロパティが'ridge (L2)'でModelParameters.Solverが'sgd'または'asgd'の場合、Solverは従来式の学習済みモデルのModelParametersプロパティのSolver値によって指定されます。それ以外の場合、このプロパティの設定は関数
incrementalLearnerの名前と値の引数Solverで行います。この引数の既定値は'scale-invariant'です。
データ型: char | string
この プロパティ は読み取り専用です。
目的ソルバーの構成。構造体配列として指定します。SolverOptions のフィールドは、指定したソルバー Solver 固有のプロパティです。
データ型: struct
SGD および ASGD ソルバーのパラメーター
この プロパティ は読み取り専用です。
ミニバッチのサイズ。正の整数として指定します。学習中の各学習サイクルで、incrementalRegressionLinear は BatchSize 個の観測値を使用して劣勾配を計算します。
最後のミニバッチ (fit または updateMetricsAndFit の各関数呼び出しにおける最後の学習サイクル) に使用する観測値の数は、BatchSize より小さくてもかまいません。たとえば、fit または updateMetricsAndFit に 25 個の観測値を指定した場合、関数は最初の 2 つの学習サイクルに 10 個の観測値を使用し、最後の学習サイクルに 5 の観測値を使用します。
BatchSize の既定値は、モデルの作成方法に応じて異なります。
incrementalRegressionLinearを直接呼び出してMdlを作成する場合、既定値は10です。従来式の学習済み線形回帰モデル (
RegressionLinear) を変換してMdlを作成するときに、従来式の学習済みモデルのRegularizationプロパティが'ridge (L2)'でModelParameters.Solverが'sgd'または'asgd'の場合、BatchSizeは従来式の学習済みモデルのModelParametersプロパティのBatchSize値によって指定されます。それ以外の場合、このプロパティの設定は関数
incrementalLearnerの名前と値の引数BatchSizeで行います。この引数の既定値は10です。
データ型: single | double
この プロパティ は読み取り専用です。
リッジ (L2) 正則化項の強度。非負のスカラーとして指定します。
Lambda の既定値は、モデルの作成方法に応じて異なります。
incrementalRegressionLinearを直接呼び出してMdlを作成する場合、既定値は1e-5です。従来式の学習済み線形回帰モデル (
RegressionLinear) を変換してMdlを作成するときに、従来式の学習済みモデルのRegularizationプロパティが'ridge (L2)'でModelParameters.Solverが'sgd'または'asgd'の場合、Lambdaは従来式の学習済みモデルの対応するプロパティによって指定されます。それ以外の場合、このプロパティの設定は関数
incrementalLearnerの名前と値の引数Lambdaで行います。この引数の既定値は1e-5です。
データ型: double | single
この プロパティ は読み取り専用です。
初期学習率。'auto' または正のスカラーとして指定します。incrementalRegressionLinear は LearnRate 値を正のスカラーとして格納します。
学習率は、目的の劣勾配をスケールすることによって最適化のステップ サイズを制御します。LearnRate は学習率の初期値を指定し、LearnRateSchedule によって後続の学習サイクルの学習率が決まります。
'auto' を指定した場合、次のようになります。
初期学習率は
0.7となります。EstimationPeriod>0の場合、fitおよびupdateMetricsAndFitは、EstimationPeriodの最後にこの比率を1/sqrt(1+max(sum(X.^2,obsDim)))に変更します。obsDimの値は、観測値が推定期間に収集された予測子データXの列である場合は1、それ以外の場合は2です。
LearnRate の既定値は、モデルの作成方法に応じて異なります。
incrementalRegressionLinearを直接呼び出してMdlを作成する場合、既定値は'auto'です。従来式の学習済み線形回帰モデル (
RegressionLinear) を変換してMdlを作成するときに、従来式の学習済みモデルのRegularizationプロパティが'ridge (L2)'でModelParameters.Solverが'sgd'または'asgd'の場合、LearnRateは従来式の学習済みモデルのModelParametersプロパティのLearnRate値によって指定されます。それ以外の場合、このプロパティの設定は関数
incrementalLearnerの名前と値の引数LearnRateで行います。この引数の既定値は'auto'です。
例: 'LearnRate',0.001
データ型: single | double | char | string
この プロパティ は読み取り専用です。
学習率スケジュール。次の表の値として指定します。ここで、LearnRate は初期学習率 ɣ0 を指定します。incrementalRegressionLinear は LearnRateSchedule 値を文字ベクトルとして格納します。
| 値 | 説明 |
|---|---|
'constant' | すべての学習サイクルの学習率を ɣ0 とする。 |
'decaying' | 学習サイクル t での学習率を次とする。
|
LearnRateSchedule の既定値は、モデルの作成方法に応じて異なります。
従来式の学習済みモデルを変換して
Mdlを作成する場合、このプロパティの設定は関数incrementalLearnerの名前と値の引数LearnRateScheduleで行います。この引数の既定値は'decaying'です。それ以外の場合、既定値は
'decaying'です。
データ型: char | string
パフォーマンス メトリクス パラメーター
この プロパティ は読み取り専用です。
インクリメンタル モデルがパフォーマンス メトリクスを追跡するかどうかを示すフラグ。logical 0 (false) または 1 (true) として指定します。
インクリメンタル モデル Mdl は、インクリメンタル近似関数が (EstimationPeriod + MetricsWarmupPeriod) 個の観測値をインクリメンタル モデルに当てはめた後、"ウォーム" (IsWarm が true となる) になります。
| 値 | 説明 |
|---|---|
true または 1 | インクリメンタル モデル Mdl がウォームです。この結果、updateMetrics および updateMetricsAndFit が Mdl の Metrics プロパティのパフォーマンス メトリクスを追跡します。 |
false または 0 | updateMetrics および updateMetricsAndFit はパフォーマンス メトリクスを追跡しません。 |
データ型: logical
この プロパティ は読み取り専用です。
updateMetrics および updateMetricsAndFit によってインクリメンタル学習中に更新されたモデルのパフォーマンス メトリクス。m 行 2 列の table として指定します。ここで、m は、名前と値の引数 Metrics によって指定されたメトリクスの数です。
Metrics の列には Cumulative および Window のラベルが付けられます。
Cumulative:要素jは、メトリクスjで測定される、モデルがウォーム (IsWarmが1) になった時点からの、モデルの性能です。Window:要素jは、メトリクスjで測定され、MetricsWindowSizeプロパティで指定されたウィンドウ内のすべての観測値に対して評価される、モデルの性能です。ソフトウェアはMetricsWindowSize個の観測値を処理した後、Windowを更新します。
行には、指定したメトリクスのラベルが付けられます。詳細については、incrementalLearner または incrementalRegressionLinear の名前と値の引数 Metrics を参照してください。
データ型: table
この プロパティ は読み取り専用です。
インクリメンタル モデルが Metrics プロパティのパフォーマンス メトリクスを追跡する前に当てはめなければならない観測値の数。非負の整数として指定します。
MetricsWarmupPeriod の既定値は、モデルの作成方法に応じて異なります。
従来式の学習済みモデルを変換して
Mdlを作成する場合、このプロパティの設定は関数incrementalLearnerの名前と値の引数MetricsWarmupPeriodで行います。この引数の既定値は0です。それ以外の場合、既定値は
1000です。
詳細については、パフォーマンス メトリクスを参照してください。
データ型: single | double
この プロパティ は読み取り専用です。
ウィンドウ パフォーマンス メトリクスの計算に使用する観測値の数。正の整数として指定します。
MetricsWindowSize の既定値は、モデルの作成方法に応じて異なります。
従来式の学習済みモデルを変換して
Mdlを作成する場合、このプロパティの設定は関数incrementalLearnerの名前と値の引数MetricsWindowSizeで行います。この引数の既定値は200です。それ以外の場合、既定値は
200です。
パフォーマンス メトリクス オプションの詳細については、パフォーマンス メトリクスを参照してください。
データ型: single | double
オブジェクト関数
fit | インクリメンタル学習用の線形モデルの学習 |
updateMetricsAndFit | 線形インクリメンタル学習モデルの新しいデータに基づくパフォーマンス メトリクスの更新とモデルの学習 |
updateMetrics | 線形インクリメンタル学習モデルの新しいデータに基づくパフォーマンス メトリクスの更新 |
loss | データのバッチでの線形インクリメンタル学習モデルの損失 |
predict | 線形インクリメンタル学習モデルからの新しい観測の応答予測 |
perObservationLoss | インクリメンタル学習用モデルの観測値ごとの回帰誤差 |
reset | インクリメンタル回帰モデルのリセット |
例
回帰用の既定のインクリメンタル線形モデルを作成します。
Mdl = incrementalRegressionLinear()
Mdl =
incrementalRegressionLinear
IsWarm: 0
Metrics: [1×2 table]
ResponseTransform: 'none'
Beta: [0×1 double]
Bias: 0
Learner: 'svm'
Properties, Methods
Mdl.EstimationPeriod
ans = 1000
Mdl は incrementalRegressionLinear モデル オブジェクトです。そのプロパティはすべて読み取り専用です。
Mdl は、他の演算の実行に使用する前に、データに当てはめなければなりません。推定期間は、イプシロン不感応区間 Epsilon の幅の半分が不明であるため 1000 に設定されます。名前と値の引数 Epsilon を使用して Epsilon を正の浮動小数点スカラーに設定できます。このアクションにより、推定期間が既定の 0 になります。
ロボット アームのデータ セットを読み込みます。
load robotarmデータ セットの詳細については、コマンド ラインで Description を入力してください。
関数 updateMetricsAndFit を使用して、インクリメンタル モデルを学習データに当てはめます。一度に 50 個の観測値のチャンクにモデルを当てはめて、データ ストリームをシミュレートします。各反復で次を行います。
50 個の観測値を処理します。
前のインクリメンタル モデルを、入力観測値に当てはめた新しいモデルで上書きします。
、累積メトリクス、およびウィンドウ メトリクスを保存し、インクリメンタル学習中にそれらがどのように進化するかを確認。
% Preallocation n = numel(ytrain); numObsPerChunk = 50; nchunk = floor(n/numObsPerChunk); ei = array2table(zeros(nchunk,2),'VariableNames',["Cumulative" "Window"]); beta1 = zeros(nchunk+1,1); % Incremental fitting rng("default"); % For reproducibility for j = 1:nchunk ibegin = min(n,numObsPerChunk*(j-1) + 1); iend = min(n,numObsPerChunk*j); idx = ibegin:iend; Mdl = updateMetricsAndFit(Mdl,Xtrain(idx,:),ytrain(idx)); ei{j,:} = Mdl.Metrics{"EpsilonInsensitiveLoss",:}; beta1(j + 1) = Mdl.Beta(1); end
Mdl は、ストリーム内のすべてのデータで学習させた incrementalRegressionLinear モデル オブジェクトです。updateMetricsAndFit は、最初の 1000 個の観測値の処理で Epsilon を推定するための応答値を格納します。この推定期間が経過するまでは係数は当てはめられません。インクリメンタル学習中およびモデルがウォームアップされた後、updateMetricsAndFit は入力観測値でモデルの性能をチェックし、モデルをその観測値に当てはめます。
パフォーマンス メトリクスと が学習中にどのように進化するかを確認するには、それらを別々のタイルにプロットします。
t = tiledlayout(2,1); nexttile plot(beta1) ylabel('\beta_1') xlim([0 nchunk]) xline(Mdl.EstimationPeriod/numObsPerChunk,'r-.') nexttile h = plot(ei.Variables); xlim([0 nchunk]) ylabel('Epsilon Insensitive Loss') xline(Mdl.EstimationPeriod/numObsPerChunk,'r-.') xline((Mdl.EstimationPeriod + Mdl.MetricsWarmupPeriod)/numObsPerChunk,'g-.') legend(h,ei.Properties.VariableNames) xlabel(t,'Iteration')

プロットは、updateMetricsAndFit が次を行うことを示しています。
推定期間 (最初の 20 回の反復) の後、 をインクリメンタル学習のすべての反復で当てはめます。
パフォーマンス メトリクスをメトリクスのウォームアップ期間後にのみ計算します。
累積メトリクスを各反復中に計算します。
ウィンドウ メトリクスを 500 個の観測値 (4 回の反復) の処理後に計算。
メトリクスのウォームアップ期間を指定して、インクリメンタル回帰学習器を準備します。その間、関数 updateMetricsAndFit はモデルの当てはめのみを行います。メトリクス ウィンドウ サイズを観測値 500 個に指定します。SGD を使用してモデルに学習させ、SGD バッチ サイズ、学習率、および正則化パラメーターを調整します。
ロボット アームのデータ セットを読み込みます。
load robotarm
n = numel(ytrain);データ セットの詳細については、コマンド ラインで Description を入力してください。
回帰用のインクリメンタル線形モデルを作成します。次のようにモデルを構成します。
SGD ソルバーを指定します。
リッジ正則化パラメーター値 0.001、SGD バッチ サイズ 20、学習率 0.002、および SVM のイプシロン不感応区間の幅の半分 0.05 という設定で、問題に対して十分に機能すると仮定します。
インクリメンタル近似関数で生の (標準化されていない) 予測子データを処理するように指定します。
メトリクスのウォームアップ期間を観測値 1000 個に指定します。
メトリクス ウィンドウ サイズを観測値 500 個に指定します。
イプシロン不感応損失、MSE、および平均絶対誤差 (MAE) を追跡してモデルの性能を測定します。ソフトウェアは、イプシロン不感応損失および MSE をサポートしています。新しい各観測値の絶対誤差を測定する無名関数を作成します。名前
MeanAbsoluteErrorとそれに対応する関数を含む構造体配列を作成します。
maefcn = @(z,zfit)abs(z - zfit); maemetric = struct("MeanAbsoluteError",maefcn); Mdl = incrementalRegressionLinear('Epsilon',0.05, ... 'Solver','sgd','Lambda',0.001,'BatchSize',20,'LearnRate',0.002, ... 'Standardize',false, ... 'MetricsWarmupPeriod',1000,'MetricsWindowSize',500, ... 'Metrics',{'epsiloninsensitive' 'mse' maemetric})
Mdl =
incrementalRegressionLinear
IsWarm: 0
Metrics: [3×2 table]
ResponseTransform: 'none'
Beta: [0×1 double]
Bias: 0
Learner: 'svm'
Properties, Methods
Mdl はインクリメンタル学習用に推定期間なしで構成された incrementalRegressionLinear モデル オブジェクトです。
関数 updateMetricsAndFit を使用して、インクリメンタル モデルをデータに当てはめます。各反復で次を行います。
50 個の観測値のチャンクを処理して、データ ストリームをシミュレートします。チャンクのサイズと SGD バッチ サイズは異なることに注意してください。
前のインクリメンタル モデルを、入力観測値に当てはめた新しいモデルで上書きします。
推定係数 、累積メトリクス、およびウィンドウ メトリクスを保存し、インクリメンタル学習中にそれらがどのように進化するかを確認します。
% Preallocation numObsPerChunk = 50; nchunk = floor(n/numObsPerChunk); ei = array2table(zeros(nchunk,2),'VariableNames',["Cumulative" "Window"]); mse = array2table(zeros(nchunk,2),'VariableNames',["Cumulative" "Window"]); mae = array2table(zeros(nchunk,2),'VariableNames',["Cumulative" "Window"]); beta10 = zeros(nchunk+1,1); % Incremental fitting rng("default"); % For reproducibility for j = 1:nchunk ibegin = min(n,numObsPerChunk*(j-1) + 1); iend = min(n,numObsPerChunk*j); idx = ibegin:iend; Mdl = updateMetricsAndFit(Mdl,Xtrain(idx,:),ytrain(idx)); ei{j,:} = Mdl.Metrics{"EpsilonInsensitiveLoss",:}; mse{j,:} = Mdl.Metrics{"MeanSquaredError",:}; mae{j,:} = Mdl.Metrics{"MeanAbsoluteError",:}; beta10(j + 1) = Mdl.Beta(10); end
Mdl は、ストリーム内のすべてのデータで学習させた incrementalRegressionLinear モデル オブジェクトです。インクリメンタル学習中およびモデルがウォームアップされた後、updateMetricsAndFit は入力観測値でモデルの性能をチェックし、モデルをその観測値に当てはめます。
パフォーマンス メトリクスと が学習中にどのように進化するかを確認するには、それらを別々のタイルにプロットします。
tiledlayout(2,2) nexttile plot(beta10) ylabel('\beta_{10}') xlim([0 nchunk]) xline(Mdl.MetricsWarmupPeriod/numObsPerChunk,'g-.') xlabel('Iteration') nexttile h = plot(ei.Variables); xlim([0 nchunk]) ylabel('Epsilon Insensitive Loss') xline(Mdl.MetricsWarmupPeriod/numObsPerChunk,'g-.') legend(h,ei.Properties.VariableNames) xlabel('Iteration') nexttile h = plot(mse.Variables); xlim([0 nchunk]) ylabel('MSE') xline(Mdl.MetricsWarmupPeriod/numObsPerChunk,'g-.') legend(h,mse.Properties.VariableNames) xlabel('Iteration') nexttile h = plot(mae.Variables); xlim([0 nchunk]) ylabel('MAE') xline(Mdl.MetricsWarmupPeriod/numObsPerChunk,'g-.') legend(h,mae.Properties.VariableNames) xlabel('Iteration')

プロットは、updateMetricsAndFit が次を行うことを示しています。
をインクリメンタル学習のすべての反復で当てはめます。
パフォーマンス メトリクスをメトリクスのウォームアップ期間後にのみ計算します。
累積メトリクスを各反復中に計算します。
ウィンドウ メトリクスを 500 個の観測値 (10 回の反復) の処理後に計算します。
fitrlinear を使用して線形回帰モデルに学習させ、それをインクリメンタル学習器に変換し、その性能を追跡し、ストリーミング データに当てはめます。学習オプションを従来式からインクリメンタル学習に引き継ぎます。
データの読み込みと前処理
2015 年のニューヨーク市住宅データ セットを読み込み、データをシャッフルします。このデータの詳細については、NYC Open Data を参照してください。
load NYCHousing2015 rng(1); % For reproducibility n = size(NYCHousing2015,1); idxshuff = randsample(n,n); NYCHousing2015 = NYCHousing2015(idxshuff,:);
マンハッタンから収集されたデータ (BOROUGH = 1) が、品質を 2 倍にする新しい方法を使用して収集されたとします。マンハッタンから収集した観測値に 2 を割り当て、その他すべての観測値に 1 を割り当てる重み変数を作成します。
NYCHousing2015.W = ones(n,1) + (NYCHousing2015.BOROUGH == 1);
table から応答変数 SALEPRICE を抽出します。数値安定性を得るために、SALEPRICE を 1e6 の尺度でスケールします。
Y = NYCHousing2015.SALEPRICE/1e6; NYCHousing2015.SALEPRICE = [];
カテゴリカル予測子からダミー変数メトリクスを作成します。
catvars = ["BOROUGH" "BUILDINGCLASSCATEGORY" "NEIGHBORHOOD"]; dumvarstbl = varfun(@(x)dummyvar(categorical(x)),NYCHousing2015, ... 'InputVariables',catvars); dumvarmat = table2array(dumvarstbl); NYCHousing2015(:,catvars) = [];
table 内の他のすべての数値変数を売価の線形予測子として扱います。ダミー変数の行列を予測子データの残りに連結します。結果の予測子行列を転置します。
idxnum = varfun(@isnumeric,NYCHousing2015,'OutputFormat','uniform'); X = [dumvarmat NYCHousing2015{:,idxnum}]';
線形回帰モデルの学習
線形回帰モデルを、データの半分から取った無作為標本に当てはめます。
idxtt = randsample([true false],n,true); TTMdl = fitrlinear(X(:,idxtt),Y(idxtt),'ObservationsIn','columns', ... 'Weights',NYCHousing2015.W(idxtt))
TTMdl =
RegressionLinear
ResponseName: 'Y'
ResponseTransform: 'none'
Beta: [313×1 double]
Bias: 0.1116
Lambda: 2.1977e-05
Learner: 'svm'
Properties, Methods
TTMdl は従来式の学習済み線形回帰モデルを表す RegressionLinear モデル オブジェクトです。
学習済みモデルの変換
従来式の学習済み線形回帰モデルを、インクリメンタル学習用の線形回帰モデルに変換します。
IncrementalMdl = incrementalLearner(TTMdl)
IncrementalMdl =
incrementalRegressionLinear
IsWarm: 1
Metrics: [1×2 table]
ResponseTransform: 'none'
Beta: [313×1 double]
Bias: 0.1116
Learner: 'svm'
Properties, Methods
パフォーマンス メトリクスの追跡とモデルの当てはめの個別の実行
関数 updateMetrics および fit を使用して、残りのデータに対してインクリメンタル学習を実行します。500 個の観測値を一度に処理して、データ ストリームをシミュレートします。各反復で次を行います。
updateMetricsを呼び出し、観測値の入力チャンクを所与として、モデルのイプシロン不感応損失の累積とウィンドウを更新します。前のインクリメンタル モデルを上書きして、Metricsプロパティ内の損失を更新します。関数がモデルをデータ チャンクに当てはめないことに注意してください。チャンクはモデルに対して "新しい" データです。観測値の向きを列方向に指定し、観測値の重みを指定します。fitを呼び出して、観測値の入力チャンクにモデルを当てはめます。前のインクリメンタル モデルを上書きして、モデル パラメーターを更新します。観測値の向きを列方向に指定し、観測値の重みを指定します。損失および最後に推定された係数 を保存します。
% Preallocation idxil = ~idxtt; nil = sum(idxil); numObsPerChunk = 500; nchunk = floor(nil/numObsPerChunk); ei = array2table(zeros(nchunk,2),'VariableNames',["Cumulative" "Window"]); beta313 = [IncrementalMdl.Beta(end); zeros(nchunk,1)]; Xil = X(:,idxil); Yil = Y(idxil); Wil = NYCHousing2015.W(idxil); % Incremental fitting for j = 1:nchunk ibegin = min(nil,numObsPerChunk*(j-1) + 1); iend = min(nil,numObsPerChunk*j); idx = ibegin:iend; IncrementalMdl = updateMetrics(IncrementalMdl,Xil(:,idx),Yil(idx), ... 'ObservationsIn','columns','Weights',Wil(idx)); ei{j,:} = IncrementalMdl.Metrics{"EpsilonInsensitiveLoss",:}; IncrementalMdl = fit(IncrementalMdl,Xil(:,idx),Yil(idx),'ObservationsIn','columns', ... 'Weights',Wil(idx)); beta313(j + 1) = IncrementalMdl.Beta(end); end
IncrementalMdl は、ストリーム内のすべてのデータで学習させた incrementalRegressionLinear モデル オブジェクトです。
あるいは、updateMetricsAndFit を使用して、新しいデータ チャンクに対するモデルのパフォーマンス メトリクスを更新し、モデルをデータに当てはめることもできます。
パフォーマンス メトリクスと推定された係数 のトレース プロットをプロットします。
t = tiledlayout(2,1); nexttile h = plot(ei.Variables); xlim([0 nchunk]) ylabel('Epsilon Insensitive Loss') legend(h,ei.Properties.VariableNames) nexttile plot(beta313) ylabel('\beta_{313}') xlim([0 nchunk]) xlabel(t,'Iteration')

累積の損失は各反復 (500 個の観測値のチャンク) ごとに徐々に変化しますが、ウィンドウの損失には急な変動があります。メトリクス ウィンドウの既定値は 200 なので、updateMetrics は 500 個の観測値のチャンクごとに最新の 200 個の観測値に基づいて性能を測定します。
は急激に変動した後、fit が観測値のチャンクを処理するたびに平坦になります。
詳細
"インクリメンタル学習" ("オンライン学習") は、予測子変数の分布、予測関数や目的関数の素性 (調整パラメーターの値を含む)、観測値にラベル付けがされているか等についてほぼ知識が無い時に、データ ストリームから入ってくるデータを処理することに関係している機械学習の一分野です。従来の機械学習は、モデルへの当てはめに十分にラベル付けされたデータを使用でき、交差検証を実施してハイパーパラメーターを調整し、予測子の分布を推論するもので、インクリメンタル学習と異なります。
入力観測値に対し、インクリメンタル学習モデルは、次のいずれかの方法 (通常はこの順序) でデータを処理します。
ラベルを予測します。
予測性能を測定します。
モデルの構造的な破綻やドリフトについてチェックします。
入力観測値へモデルを当てはめます。
詳細については、インクリメンタル学習の概要を参照してください。
"インクリメンタル学習用の適応型スケール不変ソルバー" ([1]で紹介) は、線形予測モデルに学習させるための勾配降下法ベースの目的ソルバーです。ソルバーはハイパーパラメーターを持たず、予測子変数のスケールの違いの影響を受けず、予測子変数の分布の事前知識が不要です。これらの特徴は、インクリメンタル学習に適しています。
標準 SGD および ASGD ソルバーは、予測子変数間のスケールの違いの影響を受けやすいため、モデルの性能低下につながることがあります。SGD および ASGD を使用して精度を向上させるには、予測子データを標準化し、正則化と学習率のパラメーターを調整できます。従来の機械学習では、交差検証と予測子を標準化してハイパーパラメーター調整を行うのに十分なデータが利用できます。しかし、インクリメンタル学習の場合、十分なデータが利用できず (たとえば、観測値が一度に 1 つしか利用できない場合があります)、予測子の分布が未知である場合があります。このような特徴があるため、インクリメンタル学習中のパラメーター調整と予測子の標準化は困難または不可能です。
回帰用のインクリメンタル近似関数 fit および updateMetricsAndFit は、アルゴリズムのより保守的な ScInOL1 バージョンを使用します。
ヒント
モデルを作成した後で、データ ストリームについてインクリメンタル学習を実行する C/C++ コードを生成できます。C/C++ コードの生成には MATLAB Coder™ が必要です。詳細については、コード生成の紹介を参照してください。
アルゴリズム
推定期間中、インクリメンタル近似関数 fit および updateMetricsAndFit は、最初の EstimationPeriod 個の入力観測値を使用して、インクリメンタル学習に必要なハイパーパラメーターを推定 (調整) します。推定は EstimationPeriod が正の場合にのみ発生します。次の表は、ハイパーパラメーターとそれらが推定または調整される条件について説明します。
| ハイパーパラメーター | モデル プロパティ | 使用法 | 条件 |
|---|---|---|---|
| 予測子の平均および標準偏差 |
| 標準化された予測子データ | 次のいずれの条件にも当てはまる場合は、ハイパーパラメーターが推定されます。
|
| 学習率 | LearnRate | ソルバーのステップ サイズの調整 | 次のいずれの条件にも当てはまる場合は、ハイパーパラメーターが推定されます。
|
| イプシロン不感応区間の幅の半分 | Epsilon | サポート ベクターの数の制御 | 次のいずれの条件にも当てはまる場合は、ハイパーパラメーターが推定されます。
|
推定期間中には、fit がモデルを当てはめることも、updateMetricsAndFit がモデルを当てはめたりパフォーマンス メトリクスを更新したりすることもありません。推定期間の満了時に、関数はハイパーパラメーターを格納するプロパティを更新します。
予測子変数を標準化するようにインクリメンタル学習関数が構成されている場合、インクリメンタル学習モデル Mdl の Mu および Sigma プロパティに保存されている平均と標準偏差を使用して標準化が行われます。
'Standardize',trueと正の推定期間 (EstimationPeriodを参照) が設定されていて、Mdl.MuとMdl.Sigmaが空の場合、インクリメンタル近似関数は、推定期間の観測値を使用して平均と標準偏差を推定します。'Standardize','auto'を設定すると (既定の設定)、次の条件が適用されます。従来式の学習済み SVM 回帰モデル (
CompactRegressionSVMまたはRegressionSVM) を変換してincrementalRegressionLinearを作成する場合、変換元のモデルのMuおよびSigmaプロパティは空の配列[]となり、インクリメンタル学習関数は予測子変数を標準化しません。変換元のモデルのMuおよびSigmaプロパティが空でない場合、インクリメンタル学習関数は、指定された平均と標準偏差を使用して予測子変数を標準化します。インクリメンタル近似関数は、推定期間の長さにかかわらず、新しい平均と標準偏差を推定しません。線形回帰モデル (
RegressionLinear) を変換してincrementalRegressionLinearを作成する場合、インクリメンタル学習関数は、推定期間の長さにかかわらず、データを標準化しません。従来式の学習済みモデルを変換するのでない場合、インクリメンタル学習関数は、SGD ソルバー (
Solverを参照) と正の推定期間 (EstimationPeriodを参照) が指定されている場合にのみ予測子データを標準化します。
インクリメンタル近似関数が予測子の平均と標準偏差を推定するとき、関数は推定期間の観測値を使用して加重平均と加重標準偏差を計算します。具体的には、関数は予測子 j (xj) の標準化のために次を使用します。
xj は予測子 j、xjk は推定期間内の予測子 j の観測値 k です。
wj は観測値の重み j です。
関数
updateMetricsおよびupdateMetricsAndFitは、インクリメンタル モデルが "ウォーム" (IsWarm プロパティ) のときに、新しいデータからモデルのパフォーマンス メトリクス ('Metrics') を追跡します。インクリメンタル モデルは、fitまたはupdateMetricsAndFitがインクリメンタル モデルを MetricsWarmupPeriod 個の観測値 ("メトリクスのウォームアップ期間") に当てはめた後、ウォームになります。EstimationPeriod > 0 の場合、関数はモデルをデータに当てはめる前にハイパーパラメーターを推定します。そのため、関数は、モデルがメトリクスのウォームアップ期間を開始する前に
EstimationPeriod個の観測値を追加で処理しなければなりません。インクリメンタル モデルの
Metricsプロパティは、各パフォーマンス メトリクスの 2 つの形式を table の変数 (列)CumulativeおよびWindowとし、個々のメトリクスを行に格納します。インクリメンタル モデルがウォームになると、updateMetricsおよびupdateMetricsAndFitは次の頻度でメトリクスを更新します。Cumulative— 関数は、モデルの性能追跡の開始以降の累積メトリクスを計算します。関数は、関数が呼び出されるたびにメトリクスを更新し、提供されたデータ セット全体に基づいて計算を行います。Window— 関数は、名前と値のペアの引数 MetricsWindowSize によって決定されたウィンドウ内のすべての観測値に基づいてメトリクスを計算します。MetricsWindowSizeによってソフトウェアがWindowメトリクスを更新する頻度も決まります。たとえば、MetricsWindowSizeが 20 の場合、関数は提供されたデータの最後の 20 個の観測値に基づいてメトリクスを計算します (X((end – 20 + 1):end,:)およびY((end – 20 + 1):end))。ウィンドウ内のパフォーマンス メトリクスを追跡するインクリメンタル関数は、次のプロセスを使用します。
指定された各メトリクスについて長さ
MetricsWindowSizeのバッファーを保存し、観測値の重みのバッファーを保存します。入力観測値のバッチに基づくモデル性能をメトリクス バッファーの要素に入力し、対応する観測値の重みを重みバッファーに格納します。
バッファーがいっぱいになると、
Mdl.Metrics.Windowをメトリクス ウィンドウの性能の加重平均で上書きします。関数が観測値のバッチを処理するときにバッファーがあふれる場合、最新の入力観測値MetricsWindowSizeがバッファーに入り、最も古い観測値がバッファーから削除されます。たとえば、MetricsWindowSizeが 20 で、メトリクス バッファーには前に処理されたバッチからの 10 個の値が存在し、15 個の値が入力されるとします。長さ 20 のウィンドウを構成するため、関数は 15 個の入力観測値からの測定値と前のバッチからの最新の 5 個の測定値を使用します。
CumulativeとWindowのパフォーマンス メトリクスの値を計算する際、予測がNaNの観測値は省略されます。
参照
[1] Kempka, Michał, Wojciech Kotłowski, and Manfred K. Warmuth. "Adaptive Scale-Invariant Online Algorithms for Learning Linear Models." Preprint, submitted February 10, 2019. https://arxiv.org/abs/1902.07528.
[2] Langford, J., L. Li, and T. Zhang. “Sparse Online Learning Via Truncated Gradient.” J. Mach. Learn. Res., Vol. 10, 2009, pp. 777–801.
[3] Shalev-Shwartz, S., Y. Singer, and N. Srebro. “Pegasos: Primal Estimated Sub-Gradient Solver for SVM.” Proceedings of the 24th International Conference on Machine Learning, ICML ’07, 2007, pp. 807–814.
[4] Xu, Wei. “Towards Optimal One Pass Large Scale Learning with Averaged Stochastic Gradient Descent.” CoRR, abs/1107.2490, 2011.
拡張機能
使用上の注意および制限:
incrementalRegressionLinearモデル オブジェクトのすべてのオブジェクト関数でコード生成がサポートされます。データをシャッフルするように
Mdlを構成した場合 (Solver および Shuffle を参照)、関数fitは、モデルをバッチに当てはめる前に観測値の各入力バッチを無作為にシャッフルします。シャッフルされた観測値の順序は、MATLAB で生成される順序と一致しないことがあります。incrementalRegressionLinearモデル オブジェクトを読み込むか作成するコードを生成する場合、予測子変数の数をNumPredictorsプロパティに反映しなければなりません。
詳細は、コード生成の紹介を参照してください。
バージョン履歴
R2020b で導入
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
- Canada (English)
- United States (English)
ヨーロッパ
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)