主要内容

このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。

templateLinear

線形分類学習器テンプレート

説明

templateLinearは,マルチクラス問題の高次元データに線形分類モデルをあてはめるために適したテンプレートを作成します。

このテンプレートでは,バイナリ学習器モデル,正則化のタイプおよび強度,ソルバーなどを指定します。テンプレートの作成後,テンプレートとデータをfitcecocに渡して,モデルに学習をさせます。

t= templateLinear ()は,線形分類学習器テンプレートを返します。

既定のテンプレートを指定する場合,学習中のすべての入力引数には既定値が使用されます。

t= templateLinear (名称,值は1つ以上の名前と値のペアの引数で指定された追加オプションを使用してテンプレートを返します。たとえば,ロジスティック回帰の実装、正則化のタイプまたは強度、目的関数の最小化に使用するソルバーを指定できます。

tをコマンドウィンドウに表示した場合,名前と値のペアの引数を使用して指定したオプションを除くすべてのオプションが空([])として表示されます。学習中,空のオプションに既定値が使用されます。

すべて折りたたむ

複数のバイナリ線形分類モデルから構成されているECOCモデルに学習をさせます。

NLPのデータセットを読み込みます。

负载nlpdata

Xは予測子データのスパース行列,Yはクラスラベルの直言ベクトルです。データには2つを超えるクラスがあります。

既定の線形分類モデルテンプレートを作成します。

t = templateLinear ();

既定値を調整する方法については,templateLinearのページの名前と値のペアの引数を参照してください。

複数のバイナリ線形分類モデルから構成されているECOCモデルに学習をさせます。これらの分類モデルは,ドキュメンテーションWebページにおける単語の度数分布から製品を特定できます。学習時間を短縮するため,予測子データを転置し,観測値が列に対応することを指定します。

X = X ';rng (1);%的再现性Mdl = fitcecoc (X, Y,“学习者”t“ObservationsIn”“列”
Mdl = CompactClassificationECOC ResponseName: 'Y' ClassNames: [1x13 categorical] ScoreTransform: 'none' BinaryLearners: {78x1 cell} CodingMatrix: [13x78 double]属性,方法

または,“学习者”,“线性”を使用して,既定の線形分類モデルから構成されているECOCモデルに学習をさせることができます。

メモリを節約するため,fitcecocは線形分類学習器から構成されている学習済みのECOCモデルをCompactClassificationECOCモデルオブジェクトで返します。

入力引数

すべて折りたたむ

名前と値のペアの引数

オプションの名称,值引数のコンマ区切りペアを指定します。的名字は引数名で,价值は対応する値です。的名字は引用符で囲まなければなりません。Name1, Value1,…,的家のように,複数の名前と値のペアの引数を,任意の順番で指定できます。

例:“学习者”,“物流”、“正规化”,“套索”、“CrossVal”,“上”は,套索ペナルティがあるロジスティック回帰と10分割の交差検証を実装するように指定します。
線形分類のオプション

すべて折りたたむ

正則化項の強度。“λ”“汽车”,非負のスカラーまたは非負値のベクトルから構成されるコンマ区切りのペアとして指定します。

  • “汽车”の場合,gydF4y2Baλ= 1 / nです。

    • 交差検証の名前と値のペアの引数(CrossValなど)を指定した場合,nは分割内観測値の数です。

    • それ以外の場合,nは学習標本のサイズです。

  • 非負値のベクトルの場合,templateLinearは,λの異なる値それぞれについて目的関数の最適化を逐次的に昇順で実行します。

    • 解算器“sgd”または“asgd”正则化“套索”の場合,gydF4y2BatemplateLinearが前の係数の推定値を次の最適化反復のウォームスタートとして使用することはありません。それ以外の場合,templateLinearはウォームスタートを使用します。

    • 正则化“套索”の場合,gydF4y2BatemplateLinearλの以後の値を使用して最適化を行うときに,係数の推定値0は値が保持されます。

    • templateLinearは,指定された正則化強度ごとに係数の推定値を返します。

例:“λ”,10 ^ (- (10:2:2))

データ型:字符|字符串||

線形分類モデルのタイプ。“学习者”“支持向量机”または“物流”から構成されるコンマ区切りのペアとして指定します。

次の表では, f x x β + b です。

  • βはp個の係数のベクトルです。

  • xはp個の予測子変数による観測値です。

  • bはスカラーバイアスです。

アルゴリズム 応答の範囲 損失関数
“支持向量机” サポートベクターマシン Y∊{- 1,1}。陽性クラスの場合は1,それ以外の場合は1 ヒンジ: y f x 马克斯 0 1 y f x
“物流” ロジスティック回帰 “支持向量机”と同じ 逸脱度(ロジスティック): y f x 日志 1 + 经验值 y f x

例:“学习者”,“物流”

複雑度ペナルティのタイプ。“正规化”“套索”または“岭”から構成されるコンマ区切りのペアとして指定します。

最小化のための目的関数は,平均損失関数(学习者を参照)と次の表の正則化項を加算することにより作成されます。

説明
“套索” 套索(L1)ペナルティ: λ j 1 p | β j |
“岭” リッジ(L2)ペナルティ: λ 2 j 1 p β j 2

正則化項の強度(式のλ)を指定するには,λを使用します。

バイアス項(β0)は正則化ペナルティから除外されます。

解算器“sparsa”の場合,gydF4y2Ba正则化の既定値は“套索”になります。それ以外の場合は,既定値は“岭”です。

ヒント

  • 予測子変数を選択する場合は,“套索”を指定します。変数の選択の詳細については,特徴選択の紹介を参照してください。

  • 最適化の精度を向上させるには,“岭”を指定します。

例:“正规化”、“套索”

目的関数の最小化手法。“规划求解”と次の表の値をもつ文字ベクトル,字符串スカラー,字符串配列,または文字ベクトルの细胞配列から構成されるコンマ区切りのペアとして指定します。

説明 制限
“sgd” 確率的勾配降下法(SGD)[4][2]
“asgd” 平均化確率的勾配降下法(ASGD)[7]
“双重” 支持向量机用の双対SGD[1][6] 正则化“岭”学习者“支持向量机”でなければなりません。
“蓄热” Broyden-Fletcher-Goldfarb-Shanno準ニュートンアルゴリズム(高炉煤气)[3] Xの次元数が非常に多い場合は非効率的です。
“lbfgs” 記憶制限蓄热(LBFGS)[3] 正则化“岭”でなければなりません。
“sparsa” 可分近似によるスパース再構成(SpaRSA)[5] 正则化“套索”でなければなりません。

指定する項目によって,内容は次のように変わります。

  • 予測子データセットに100個以下の予測子変数が格納されている場合にリッジペナルティ(正则化を参照)を指定すると,既定のソルバーは“蓄热”になります。

  • 予測子データセットに100個より多い予測子変数が格納されている場合にSVMモデル(学习者を参照)とリッジペナルティを指定すると,既定のソルバーは“双重”になります。

  • 予測子データセットに100個以下の予測子変数が格納されている場合に套索ペナルティを指定すると,既定のソルバーは“sparsa”になります。

それ以外の場合,既定のソルバーは“sgd”になります。

選択するソルバーの詳細は,ヒントを参照してください。

例:“规划求解”,{‘sgd’,‘lbfgs}

線形係数の初期推定値(β)“β”とp次元の数値ベクトルまたはp行L列の数値行列から構成されるコンマ区切りのペアとして指定します。pはXの予測子変数の数Lは正則化強度値の数です(詳細については,λを参照)。

  • p次元ベクトルを指定した場合,次のプロセスを使用して目的関数がL回最適化されます。

    1. 初期値としてβ,正則化強度としてλの最小値を使用して最適化を行う。

    2. 前回の最適化で生成された推定値をウォームスタートとして使用し,λ内の次に小さい値を正則化強度として使用して,再度最適化を行う。

    3. λの値をすべて使用するまでステップ2を繰り返す。

  • p行L列の行列を指定した場合,目的関数がL回最適化されます。反復jでは,初期値としてβ(:,jが使用され,λを昇順で並べ替えた後で正則化強度としてλ(jが使用されます。

“规划求解”、“双”を設定した場合,βは無視されます。

データ型:|

切片の初期推定値(b)。“偏见”と数値スカラーまたはL次元の数値ベクトルから構成されるコンマ区切りのペアとして指定します。Lは正則化強度値の数です(詳細については,λを参照)。

  • スカラーを指定した場合,次のプロセスを使用して目的関数がL回最適化されます。

    1. 初期値として偏见,正則化強度としてλの最小値を使用して最適化を行う。

    2. 生成された推定値を次回の最適化の反復でウォームスタートとして使用し,λ内の次に小さい値を正則化強度として使用する。

    3. λの値をすべて使用するまでステップ2を繰り返す。

  • L次元ベクトルを指定した場合,目的関数がL回最適化されます。反復jでは,初期値として偏差(jが使用され,λを昇順で並べ替えた後で正則化強度としてλ(jが使用されます。

  • 既定の設定では,次のようになります。

    • 学习者“物流”の場合,gjY (jが陽性クラスであれば1,そうでなければ1になります。偏见は,学習の場合はgの交差検証の場合は分割内観測値の加重平均になります。

    • 学习者“支持向量机”の場合,gydF4y2Ba偏见は0になります。

データ型:|

線形モデルの切片使用フラグ。“FitBias”真正的またはから構成されるコンマ区切りのペアとして指定します。

説明
真正的 線形モデルにバイアス項bが追加され,推定されます。
推定時にb = 0に設定されます。

例:“FitBias”,假的

データ型:逻辑

最適化後に線形モデルの切片をあてはめるフラグ。“PostFitBias”真正的またはから構成されるコンマ区切りのペアとして指定します。

説明
最適化時にバイアス項bと係数βが推定されます。
真正的

bを推定するため,以下が行われます。

  1. モデルを使用してβとbを推定する

  2. 分類スコアを推定する

  3. 最大精度が得られる分類スコアのしきい値を設定してbを再度あてはめる

真正的を指定する場合,FitBiasは真正でなければなりません。

例:“PostFitBias”,真的

データ型:逻辑

詳細レベル。“详细”0または1のいずれかから構成されるコンマ区切りのペアとして指定します。详细的は,コマンドラインにおける診断情報の表示を制御します。

説明
0 templateLinearは診断情報を表示しません。
1 templateLinearは,目的関数の値,勾配の大きさ,および他の診断情報を定期的に表示します。

例:“详细”,1

データ型:|

SGDおよびASGDソルバーのオプション

すべて折りたたむ

ミニバッチのサイズ。“BatchSize”と正の整数から構成されるコンマ区切りのペアとして指定します。各反復では,学習データの観測値をBatchSize個使用して勾配が推定されます。

  • 予測子データが数値行列の場合,既定値は10です。

  • 予測子データがスパース行列の場合,既定値は马克斯([10日装天花板(sqrt (ff))))です。ここで,ff =元素个数(X) / nnz (X)X“スパース性係数”)です。

例:“BatchSize”,100年

データ型:|

学習率。“LearnRate”と正のスカラーで構成される,コンマ区切りのペアとして指定します。LearnRateは,劣勾配をスケールすることによって最適化のステップサイズを制御します。

  • 正则化“岭”の場合,gydF4y2BaLearnRateは初期学習率γ0を指定します。templateLinearは,次の式を使用して,反復t,γtについての学習率を決定します。

    γ t γ 0 1 + λ γ 0 t c

    • λはλの値です。

    • 解算器“sgd”の場合,c = 1です。

    • 解算器“asgd”0.75の場合cはです[7]

  • 正则化“套索”の場合,すべての反復についてLearnRateは一定になります。

既定の設定では,LearnRate1 /√(1 +马克斯(sum (x ^ 2, obsDim))))です。obsDimは,観測値が予測子データXの列から構成されている場合は1,それ以外の場合は2です。

例:“LearnRate”,0.01

データ型:|

発散(最小値の限度を超える状態)が検出された場合に学習率を減少させるフラグ。“OptimizeLearnRate”真正的またはから構成されるコンマ区切りのペアとして指定します。

OptimizeLearnRate“真正的”の場合,次のようになります。

  1. 数回の最適化反復について,LearnRateを学習率として使用して最適化が開始される。

  2. 目的関数の値が増加した場合,現在の学習率の半分の値を使用して再開される。

  3. 目的関数が減少するまで,ステップ2が繰り返される。

例:“OptimizeLearnRate”,真的

データ型:逻辑

套索切り捨て実行間のミニバッチの回数。“TruncationPeriod”と正の整数から構成されるコンマ区切りのペアとして指定します。

切り捨て実行の後で,ソフトしきい値が線形係数に適用されます。つまりk =TruncationPeriod回のミニバッチが処理された後で,次を使用して係数推定jが切り捨てられます。

β j β j u t 如果 β j > u t 0 如果 | β j | u t β j + u t 如果 β j < u t

  • SGDの場合, β j はミニバッチを次を満たすkの回数処理した後の係数jの推定値です。 u t k γ t λ γtは反復tにおける学習率です。λはλの値です。

  • ASGDの場合, β j はミニバッチを次を満たすkの回数処理した後の係数jの平均推定値です。 u t k λ

正则化“岭”の場合,gydF4y2BaTruncationPeriodは無視されます。

例:“TruncationPeriod”,100年

データ型:|

SGDとASGDの収束制御

すべて折りたたむ

バッチを処理する最大回数。“BatchLimit”と正の整数から構成されるコンマ区切りのペアとして指定します。BatchLimit回のバッチが処理されると,最適化が終了します。

  • 既定の設定では,次のようになります。

    • データを通す回数はPassLimit回です。

    • 複数のソルバーを指定し,SGDまたはASGDを使用して次のソルバーの初期近似値を取得する場合,既定値は装天花板(1 e6 / BatchSize)です。BatchSizeは名前と値のペアの引数BatchSizeの値です。

  • “BatchLimit”PassLimitを指定した場合,処理する観測値の数が最も少なくなる引数が選択されます。

  • “BatchLimit”を指定し,“PassLimit”は指定しなかった場合,データ全体を完全に1回通すのに十分な回数のバッチが処理されます。

例:“BatchLimit”,100年

データ型:|

線形係数およびバイアス項(切片)の相対許容誤差。“BetaTolerance”と非負のスカラーから構成されるコンマ区切りのペアとして指定します。

B t β t b t であるとします。これは,最適化反復tにおける係数およびバイアス項のベクトルです。 B t B t 1 B t 2 < BetaTolerance で最適化が終了します。

解算器で指定された最後のソルバーで収束する場合,最適化が終了します。それ以外の場合,解算器で指定された次のソルバーが使用されます。

例:e-6 BetaTolerance, 1

データ型:|

次回の収束チェックの前にバッチを処理する回数。“NumCheckConvergence”と正の整数から構成されるコンマ区切りのペアとして指定します。

バッチのサイズの指定について,BatchSizeを参照してください。

既定の設定では,データセット全体が通されるたびに約10回収束がチェックされます。

例:“NumCheckConvergence”,100年

データ型:|

データを通す最大回数。“PassLimit”と正の整数から構成されるコンマ区切りのペアとして指定します。

データが完全に1回通されると,すべての観測値が処理されます。

データが通される回数がPassLimitになると,最適化が終了します。

BatchLimitPassLimitを指定した場合,処理する観測値の数が最も少なくなる引数が選択されます。

例:“PassLimit”,5

データ型:|

双対SGDの収束制御

すべて折りたたむ

線形係数およびバイアス項(切片)の相対許容誤差。“BetaTolerance”と非負のスカラーから構成されるコンマ区切りのペアとして指定します。

B t β t b t であるとします。これは,最適化反復tにおける係数およびバイアス項のベクトルです。 B t B t 1 B t 2 < BetaTolerance で最適化が終了します。

DeltaGradientToleranceも指定した場合,いずれかの終了条件が満たされると最適化が終了します。

解算器で指定された最後のソルバーで収束する場合,最適化が終了します。それ以外の場合,解算器で指定された次のソルバーが使用されます。

例:e-6 BetaTolerance, 1

データ型:|

上位および下位プールのカルーシュ・キューン・タッカー(马)相補性条件違反値の間における勾配差分の許容誤差。“DeltaGradientTolerance”と非負のスカラーから構成されるコンマ区切りのペアとして指定します。

  • 马違反値の大きさがDeltaGradientToleranceより小さい場合,最適化が終了します。

  • 解算器で指定された最後のソルバーで収束する場合,最適化が終了します。それ以外の場合,解算器で指定された次のソルバーが使用されます。

例:依照“DeltaGapTolerance”,1

データ型:|

次回の収束チェックの前に処理するデータセット全体が通される回数。“NumCheckConvergence”と正の整数から構成されるコンマ区切りのペアとして指定します。

例:“NumCheckConvergence”,100年

データ型:|

データを通す最大回数。“PassLimit”と正の整数から構成されるコンマ区切りのペアとして指定します。

データが完全に1回通されると,すべての観測値が処理されます。

データが通される回数がPassLimitになると,最適化が終了します。

例:“PassLimit”,5

データ型:|

高炉煤气,LBFGSおよびSpaRSAの収束制御

すべて折りたたむ

線形係数およびバイアス項(切片)の相対許容誤差。“BetaTolerance”と非負のスカラーから構成されるコンマ区切りのペアとして指定します。

B t β t b t であるとします。これは,最適化反復tにおける係数およびバイアス項のベクトルです。 B t B t 1 B t 2 < BetaTolerance で最適化が終了します。

GradientToleranceも指定した場合,いずれかの終了条件が満たされると最適化が終了します。

解算器で指定された最後のソルバーで収束する場合,最適化が終了します。それ以外の場合,解算器で指定された次のソルバーが使用されます。

例:e-6 BetaTolerance, 1

データ型:|

勾配の絶対許容誤差。“GradientTolerance”と非負のスカラーから構成されるコンマ区切りのペアとして指定します。

最適化反復tにおける係数およびバイアス項に関する目的関数の勾配ベクトルを t とします。 t 马克斯 | t | < GradientTolerance で最適化が終了します。

BetaToleranceも指定した場合,いずれかの終了条件が満たされると最適化が終了します。

指定された最後のソルバーで収束する場合,最適化が終了します。それ以外の場合,解算器で指定された次のソルバーが使用されます。

例:e-5 GradientTolerance, 1

データ型:|

ヘッセ近似の履歴バッファーのサイズ。“HessianHistorySize”と正の整数から構成されるコンマ区切りのペアとして指定します。各反復において,最新のHessianHistorySize回の反復の統計量を使用してヘッシアンが構成されます。

SpaRSAの場合,“HessianHistorySize”はサポートされません。

例:“HessianHistorySize”,10

データ型:|

最適化反復の最大回数。“IterationLimit”と正の整数から構成されるコンマ区切りのペアとして指定します。IterationLimitは,解算器の値が“蓄热”“lbfgs”または“sparsa”である場合に適用されます。

例:“IterationLimit”,500年

データ型:|

出力引数

すべて折りたたむ

線形分類モデル学習器テンプレート。テンプレートオブジェクトとして返されます。マルチクラス問題の場合に高次元データを使用して線形分類モデルに学習をさせるには、tfitcecocに渡します。

コマンドウィンドウにtを表示する場合,すべての未指定のオプションは空([])で表示されます。しかし,空のオプションは学習中に対応する既定値に置き換えられます。

詳細

すべて折りたたむ

ウォームスタート

“ウォームスタート”は,収束時間を短縮するために最適化ルーチンに与えられるベータ係数およびバイアス項の初期推定値です。

ヒント

  • 観測値が列に対応するように予測子行列を配置して“ObservationsIn”、“列”を指定することをお勧めします。このようにすると,最適化実行時間が大幅に短縮される可能性があります。

  • 予測子データが高次元で正则化“岭”の場合に最適化の精度を向上させるには,次の解算器の組み合わせのいずれかを設定します。

    • “sgd”

    • “asgd”

    • “双重”学习者“支持向量机”の場合)

    • {“sgd”、“lbfgs”}

    • {“asgd”、“lbfgs”}

    • {“双”、“lbfgs”}学习者“支持向量机”の場合)

    他の組み合わせでは,最適化の精度が低下する可能性があります。

  • 予測子データが中~低次元で正则化“岭”の場合に最適化の精度を向上させるには,解算器“蓄热”に設定します。

  • 正则化“套索”の場合,次の解算器の組み合わせのいずれかを設定します。

    • “sgd”

    • “asgd”

    • “sparsa”

    • {“sgd”、“sparsa”}

    • {“asgd”、“sparsa”}

  • SGDとASGDのいずれかを選択する場合,以下を考慮します。

    • SGDは反復あたりの時間が短くなりますが,収束するまでに必要な反復回数が多くなります。

    • ASGDは収束するまでに必要な反復回数が少なくなりますが,反復あたりの時間が長くなります。

  • 予測子データに含まれている観測値の数が少なく,予測子変数の数が多い場合,次のようにします。

    • “PostFitBias”,真的を指定します。

    • ソルバーがSGDまたはASGDの場合,PassLimitを1より大きい正の整数(5や10など)に設定します。このように設定すると,多くの場合に精度が向上します。

  • ソルバーがSGDまたはASGDの場合,BatchSizeは収束速度に影響を与えます。

    • BatchSizeが小さすぎる場合,最小値を計算するための反復回数は多くなりますが,反復ごとの勾配の計算時間は短くなります。

    • BatchSizeが大きすぎる場合,最小値を計算するための反復回数は少なくなりますが,反復ごとの勾配の計算時間は長くなります。

  • 学習率 (LearnRateを参照)が大きいと,最小値への収束が高速になりますが,発散(最小値の限度を超える状態)の可能性があります。学習率が小さいと最小値への収束が保証されますが,終了までに時間がかかる可能性があります。

  • 正则化“套索”の場合は,さまざまな値のTruncationPeriodを試してください。たとえば,TruncationPeriod110に設定してからOne hundred.に設定します。

  • 効率のため,予測子データは標準化されません。予測子データ(X)を標準化するには,次のように入力します。

    X = bsxfun (@rdivide bsxfun (@minus X,意味着(X, 2)),性病(0,2));

    このコードでは,予測子が行,観測値が列に対応するようにXが配置されている必要があります。また,メモリを節約するため,このコードは元の予測子データを標準化されたデータに置き換えます。

参照

张国伟,林家杰,S. S. Keerthi, S. S. Sundararajan。“大规模线性支持向量机的双坐标下降方法”。第25届机器学习国际会议论文集,ICML’08,2001,pp. 408-415。

李磊,张涛。“基于截断梯度的稀疏在线学习”。j·马赫。学习。研究报告,2009,Vol. 10, pp. 777-801。

Nocedal, J.和S. J. Wright。数值优化,第2版,纽约:施普林格,2006。

谢勒夫-施瓦茨,S. Y.辛格和N.斯雷布罗。Pegasos:支持向量机的原始估计次梯度求解器第24届机器学习国际会议论文集,ICML’07,2007,第807-814页。

莱特,S. J., R. D.诺瓦克,M. A. T. Figueiredo。“可分离近似稀疏重建”。反式。Vol. 57, No . 7, 2009, pp. 2479-2493。

肖[6],林。“正则化随机学习和在线优化的双重平均方法”。j·马赫。学习。研究报告,Vol. 11, 2010, pp. 2543-2596。

[7]徐,魏。“基于平均随机梯度下降的最优一次大规模学习”。2011年,abs / 1107.2490。

拡張機能

R2016aで導入