推定 推定 pymc.ADVI pymc.ASVGD pymc.SVGD pymc.FullRankADVI pymc.ImplicitGradient pymc.Inference pymc.KLqp pymc.fit pymc.Empirical pymc.FullRank pymc.MeanField pymc.sample_approx pymc.Approcimation pymc.Group pymc.variational.operators.KL pymc.variational.operators.KSD pymc.Stein pymc.adadelta pymc.adagrad pymc.adagard_window pymc.adam pymc.apply_momentum pymc.apply_netserv_momentum pymc.momentum pymc.netserv_momentum pymc.norm_momentum pymc.rmsprop pymc.sgd pymc.total_norm_constraint
pymc.ADVI 自動微分変分推論(ADVI - Automatic Difference Variational Inference)
class pymc.ADVI(*args, **kwargs)
変数 model 推論のためのpymcモデル random_seed int start dict[str,np.ndarray] 推論のための開始点 start_sigma dict[str,np.ndarray] 推論のための開始標準偏差
アルゴリズムのより詳しい情報については以下を参照.
Kucukelbir, A., Tran, D., Ranganath, R., Gelman, A., and Blei, D. M. (2016). Automatic Differentiation Variational Inference. Geoffrey Roeder, Yuhuai Wu, David Duvenaud, 2016 Sticking the Landing: A Simple Reduced-Variance Gradient for ADVI Kingma, D. P., & Welling, M. (2014). Auto-Encoding Variational Bayes.
メソッド ADVI.__init__(*args,**kwargs) ADVI.fit([n,score,callbacks,progressbar]) 変分推論の演算を実行する ADVI.refine(n[,progressbar]) 最後にコンパイルしたステップ関数を使ってソリューションを向上させる ADVI.run_profiling(n,score])
pymc.ASVGD Amortizedスタイン変分勾配下降(ASVGD - Amortized Stein Variational Gradient Descent)
class pymc.ASVGD(approx=None, estimator=<class 'pymc.variational.operators.KSD'>, kernel=<pymc.variational.test_functions.RBF object>, **kwargs)
変数 型 approx class Approximation デフォルト値はFullRank kernel int KSDのためのカーネル関数 model class Model kwargs 勾配見積もりのためのパラメータ
アルゴリズムのより詳しい情報については以下の文献を参照してください。
Dilin Wang, Yihao Feng, Qiang Liu (2016) Learning to Sample Using Stein Discrepancy Dilin Wang, Qiang Liu (2016) Learning to Draw Samples: With Application to Amortized MLE for Generative Adversarial Learning Yang Liu, Prajit Ramachandran, Qiang Liu, Jian Peng (2017) Stein Variational Policy Gradient メソッド ASVGD.__init__(*args,**kwargs) ASVGD.fit([n,score,callbacks,progressbar]) 変分推論の演算を実行する ASVGD.refine(n[,progressbar]) 最後にコンパイルしたステップ関数を使ってソリューションを向上させる ASVGD.run_profiling(n,score])
pymc.SVGD スタイン変分勾配下降
class pymc.SVGD(n_particles=100, jitter=1, model=None, start=None, random_seed=None, estimator=<class 'pymc.variational.operators.KSD'>, kernel=<pymc.variational.test_functions.RBF object>, **kwargs)
変数 型 n_particles int 近似に使う小片(粒子)の数 jitter float 初期値のためのノイズ標準偏差 model class Model 推論のためのpyMCモデル kernel int KSDのためのカーネル関数 start dict[str,np.ndarray] 推論のための初期値 randim_seed Noneまたは int kwargs 勾配見積もりのためのパラメータ
アルゴリズムのより詳しい情報については以下の文献を参照してください。
Qiang Liu, Dilin Wang (2016) Stein Variational Gradient Descent: A General Purpose Bayesian Inference Algorithm Yang Liu, Prajit Ramachandran, Qiang Liu, Jian Peng (2017) Stein Variational Policy Gradient メソッドKingma, D. P., & Welling, M. (2014). Auto-Encoding Variational Bayes. SVGD.__init__(*args,**kwargs) SVGD.fit([n,score,callbacks,progressbar]) 変分推論の演算を実行する SVGD.refine(n[,progressbar]) 最後にコンパイルしたステップ関数を使ってソリューションを向上させる SVGD.run_profiling(n,score])
pymc.FullRankADVI フルランク自動微分変分推論
class pymc.FullRankADVI(*args, **kwargs)
変数 型 model class Model 推論のためのpyMCモデル randim_seed Noneまたは int start dict[str,np.ndarray] 推論のための初期値
アルゴリズムのより詳しい情報については以下の文献を参照してください。
Kucukelbir, A., Tran, D., Ranganath, R., Gelman, A., and Blei, D. M. (2016). Automatic Differentiation Variational Inference. Geoffrey Roeder, Yuhuai Wu, David Duvenaud, 2016 Sticking the Landing: A Simple Reduced-Variance Gradient for ADVI Kingma, D. P., & Welling, M. (2014). Auto-Encoding Variational Bayes. メソッド FullRankADVI.__init__(*args,**kwargs) FullRankADVI.fit([n,score,callbacks,progressbar]) 変分推論の演算を実行する FullRankADVI.refine(n[,progressbar]) 最後にコンパイルしたステップ関数を使ってソリューションを向上させる FullRankADVI.run_profiling(n,score])
pymc.ImplicitGradient 暗黙の勾配(ImplicitGradient)
class pymc.ImplicitGradient(approx, estimator=<class 'pymc.variational.operators.KSD'>, kernel=<pymc.variational.test_functions.RBF object>, **kwargs)
メソッド ImplicitGradient.__init__(*args,**kwargs) ImplicitGradient.fit([n,score,callbacks,progressbar]) 変分推論の演算を実行する ImplicitGradient.refine(n[,progressbar]) 最後にコンパイルしたステップ関数を使ってソリューションを向上させる ImplicitGradient.run_profiling(n,score])
pymc.Inference 変分推論の基底クラス
class pymc.Inference(op, approx, tf, **kwargs)
変数 型 op Class Operator approx Class Approximation tf TestFunction model class Model 推論のためのpyMCモデル kwargs Noneまたは int
メソッド Inference.__init__(*args,**kwargs) Inference.fit([n,score,callbacks,progressbar]) 変分推論の演算を実行する Inference.refine(n[,progressbar]) 最後にコンパイルしたステップ関数を使ってソリューションを向上させる Inference.run_profiling(n,score])
pymc.KLqp カルバック・ライブラー・ダイバージェンス(KL情報量)推論
class pymc.KLqp(approx, beta=1.0)
変数 型 approx Class Approximation fitのための近似 beta float ELBOの正則化スケール
アルゴリズムのより詳しい情報は以下の文献を参照してください。
Christopher P. Burgess et al. (NIPS, 2017) Understanding disentangling in -VAE
メソッド KLqp.__init__(approx[,beta]) KLqp.fit([n,score,callbacks,progressbar]) 変分推論の演算を実行する KLqp.refine(n[,progressbar]) 最後にコンパイルしたステップ関数を使ってソリューションを向上させる KLqp.run_profiling(n,score])
pymc.fit pymc.fit(n=10000, method='advi', model=None, random_seed=None, start=None, start_sigma=None, inf_kwargs=None, **kwargs)
変数 型 n int 繰り返し数 method str 推論クラス名 'advi' 'fullrank_advi' 'svgd' 'asvgd' model class Model 推論のためのpyMCモデル randim_seed None または int int_kwargs dict 推論に渡される追加引数 start dict[str,np.ndarray] 推論のための初期値 start_sigma Noneまたは int 推論のための開始標準偏差
pymc.Empirical class pymc.Empirical(trace=None, size=None, **kwargs)
メソッド Empirical.__init__(approx[trace,size]) Empirical.collect(item) Empirical.evaluate_over_trace(node) トレース城の任意のシンボリック命令を統計的に評価する Empirical.get_optimization_replacements(s,d) kogPへの最適化 Empirical.make_size_and_deterministic_replacements() 決定フラグとサンプルサイズに依存した初期値に正しい交換値を作る。 Empirical.rslice(name) pytensor.scanを呼ばずに名付けランダム変数に対するベクター化サンプリング Empirical.sample([draws,random_seed,...]) 事後分布の変数からサンプルを出力する Empirical.sample_node(node[,size,...]]) 与え非れたノードのサンプル Empirical.set_size_and_deterministic(node,s,d) symbolic_sample_over_posterior()またはsymbolic_single_sample()でノードがサンプルされた後、新しい乱数生成器が割り当てれてノードに適用される。 Empirical.simbolic_sample_over_posterior(node) 各時間の事後から独立したサンプルを適用してノードのサンプルを実行する Empirical.symbolic_single_sample(node[,...]) 事後から単一サンプルを適用してノードのサンプルを実行する Empirical.to_flat_input(node[,...]) 変数を平坦なビューに取り替えてself.inputに保存する。
属性 all_histograms any_histograms datalogp 後で最適化されるpytensor.scan経由でモデルからEqを計算する。 datalogp_norm 正規化Eq ddim has_logq inputs joint_histogram logq 後で最適化されるpytensor.scan経由でモデルからEqを計算する。 logq_norm 正規化Eq (logP) logq 全てのグループのlogQを収集する logq_norm 全てのグループのlogQを収集して正規化する ndim params replacements pyMCのランダム変数を近似で置き換えるためにグループから全てを交換 sample_dict_fn scale_cost_to_minibatch スケーリングコストを操作するプロパティ single_symbolic_datalogp シングルMCサンプルでEq(dataterm)を見積もるのにpytensor.scanは必要とされず、コードは最適化される single_symbolic_logp シングルMCサンプルのEq(logP)見積りにpytensor.scanは必要とされず、コードは最適化される single_symbolic_varlogp シングルMCサンプルのEq(priorterm)見積りにpytensor.scanは必要とされず、コードは最適化される sized_symbolic_datalogp pytensor.scanを使いモデルからサンプルしたデータ termを計算する sized_symbolic_logp pytensor.scanを使いモデルからサンプルしたlogPを計算する sized_symbolic_varlogp pytensor.scanを使いモデルからサンプルした事前期間を計算する symbolic_logq 全てのグループのsymbolic_logqを収集する symbolic_normalizing_constant self.logqの正規化定数、total_sizeの代わりにminibatch_sizeにサイズ変更する symbolic_random symbolic_randoms varlogp 後で最適化するpytensor.scanを使ってモデルからEq(priorterm)を計算する varlogp_norm
pymc.FullRank シングルグループフルランク近似
class pymc.FullRank(*args, **kwargs)
メソッド FullRank.__init__(*args,**kwargs) FullRank.collect(item) FullRank.get_optimization_replacements(s,d) logPの最適化 FullRank.make_size_and_deterministic_replacements() 決定フラグとサンプルサイズに依存した初期値に正しい交換値を作る。 FullRank.rslice(name) pytensor.scanを呼ばずに名付けランダム変数に対するベクター化サンプリング FullRank.sample([draws,random_seed,...]) 事後分布の変数からサンプルを出力する FullRank.sample_node(node[,size,...]]) 与え非れたノードのサンプル FullRank.set_size_and_deterministic(node,s,d) symbolic_sample_over_posterior()またはsymbolic_single_sample()でノードがサンプルされた後、新しい乱数生成器が割り当てれてノードに適用される。 FullRank.simbolic_sample_over_posterior(node) 各時間の事後から独立したサンプルを適用してノードのサンプルを実行する FullRank.symbolic_single_sample(node[,...]) 事後から単一サンプルを適用してノードのサンプルを実行する FullRank.to_flat_input(node[,...]) 変数を平坦なビューに取り替えてself.inputに保存する。
属性 all_histograms any_histograms datalogp 後で最適化されるpytensor.scan経由でモデルからEqを計算する。 datalogp_norm 正規化Eq ddim has_logq inputs joint_histogram logq 後で最適化されるpytensor.scan経由でモデルからEqを計算する。 logq_norm 正規化Eq (logP) logq 全てのグループのlogQを収集する logq_norm 全てのグループのlogQを収集して正規化する ndim params replacements pyMCのランダム変数を近似で置き換えるためにグループから全てを交換 sample_dict_fn scale_cost_to_minibatch スケーリングコストを操作するプロパティ single_symbolic_datalogp シングルMCサンプルでEq(dataterm)を見積もるのにpytensor.scanは必要とされず、コードは最適化される single_symbolic_logp シングルMCサンプルのEq(logP)見積りにpytensor.scanは必要とされず、コードは最適化される single_symbolic_varlogp シングルMCサンプルのEq(priorterm)見積りにpytensor.scanは必要とされず、コードは最適化される sized_symbolic_datalogp pytensor.scanを使いモデルからサンプルしたデータ termを計算する sized_symbolic_logp pytensor.scanを使いモデルからサンプルしたlogPを計算する sized_symbolic_varlogp pytensor.scanを使いモデルからサンプルした事前期間を計算する symbolic_logq 全てのグループのsymbolic_logqを収集する symbolic_normalizing_constant self.logqの正規化定数、total_sizeの代わりにminibatch_sizeにサイズ変更する symbolic_random symbolic_randoms varlogp 後で最適化するpytensor.scanを使ってモデルからEq(priorterm)を計算する varlogp_norm
pymc.MeanField class pymc.MeanField(*args, **kwargs)
メソッド MeanField.__init__(*args,**kwargs) MeanField.collect(item) MeanField.get_optimization_replacements(s,d) logPの最適化 MeanField.make_size_and_deterministic_replacements() 決定フラグとサンプルサイズに依存した初期値に正しい交換値を作る。 MeanField.rslice(name) pytensor.scanを呼ばずに名付けランダム変数に対するベクター化サンプリング MeanField.sample([draws,random_seed,...]) 事後分布の変数からサンプルを出力する MeanField.sample_node(node[,size,...]]) 与え非れたノードのサンプル MeanField.set_size_and_deterministic(node,s,d) symbolic_sample_over_posterior()またはsymbolic_single_sample()でノードがサンプルされた後、新しい乱数生成器が割り当てれてノードに適用される。 MeanField.simbolic_sample_over_posterior(node) 各時間の事後から独立したサンプルを適用してノードのサンプルを実行する MeanField.symbolic_single_sample(node[,...]) 事後から単一サンプルを適用してノードのサンプルを実行する MeanField.to_flat_input(node[,...]) 変数を平坦なビューに取り替えてself.inputに保存する。
属性 all_histograms any_histograms datalogp 後で最適化されるpytensor.scan経由でモデルからEqを計算する。 datalogp_norm 正規化Eq ddim has_logq inputs joint_histogram logq 後で最適化されるpytensor.scan経由でモデルからEqを計算する。 logq_norm 正規化Eq (logP) logq 全てのグループのlogQを収集する logq_norm 全てのグループのlogQを収集して正規化する ndim params replacements pyMCのランダム変数を近似で置き換えるためにグループから全てを交換 sample_dict_fn scale_cost_to_minibatch スケーリングコストを操作するプロパティ single_symbolic_datalogp シングルMCサンプルでEq(dataterm)を見積もるのにpytensor.scanは必要とされず、コードは最適化される single_symbolic_logp シングルMCサンプルのEq(logP)見積りにpytensor.scanは必要とされず、コードは最適化される single_symbolic_varlogp シングルMCサンプルのEq(priorterm)見積りにpytensor.scanは必要とされず、コードは最適化される sized_symbolic_datalogp pytensor.scanを使いモデルからサンプルしたデータ termを計算する sized_symbolic_logp pytensor.scanを使いモデルからサンプルしたlogPを計算する sized_symbolic_varlogp pytensor.scanを使いモデルからサンプルした事前期間を計算する symbolic_logq 全てのグループのsymbolic_logqを収集する symbolic_normalizing_constant self.logqの正規化定数、total_sizeの代わりにminibatch_sizeにサイズ変更する symbolic_random symbolic_randoms varlogp 後で最適化するpytensor.scanを使ってモデルからEq(priorterm)を計算する varlogp_norm
pymc.sample_approx pymc.sample_approx(approx, draws=100, include_transformed=True)
変数 型 approx Class Approximation サンプルの近似 draws int ランダムサンプル数 include_transformed bool Trueならば変換変数はサンプルされる
pymc.Approximation グループ近似のラッパー
class pymc.Approximation(groups, model=None)
変数 型 groups Class Approximation グループインスタンスのリスト model Model
メソッド MeanField.__init__(*args,**kwargs) MeanField.collect(item) MeanField.get_optimization_replacements(s,d) logPの最適化 MeanField.make_size_and_deterministic_replacements() 決定フラグとサンプルサイズに依存した初期値に正しい交換値を作る。 MeanField.rslice(name) pytensor.scanを呼ばずに名付けランダム変数に対するベクター化サンプリング MeanField.sample([draws,random_seed,...]) 事後分布の変数からサンプルを出力する MeanField.sample_node(node[,size,...]]) 与え非れたノードのサンプル MeanField.set_size_and_deterministic(node,s,d) symbolic_sample_over_posterior()またはsymbolic_single_sample()でノードがサンプルされた後、新しい乱数生成器が割り当てれてノードに適用される。 MeanField.simbolic_sample_over_posterior(node) 各時間の事後から独立したサンプルを適用してノードのサンプルを実行する MeanField.symbolic_single_sample(node[,...]) 事後から単一サンプルを適用してノードのサンプルを実行する MeanField.to_flat_input(node[,...]) 変数を平坦なビューに取り替えてself.inputに保存する。
属性 all_histograms any_histograms datalogp 後で最適化されるpytensor.scan経由でモデルからEqを計算する。 datalogp_norm 正規化Eq ddim has_logq inputs joint_histogram logp 後で最適化されるpytensor.scan経由でモデルからEqを計算する。 logp_norm 正規化Eq (logP) logq 全てのグループのlogQを収集する logq_norm 全てのグループのlogQを収集して正規化する ndim params replacements pyMCのランダム変数を近似で置き換えるためにグループから全てを交換 sample_dict_fn scale_cost_to_minibatch スケーリングコストを操作するプロパティ single_symbolic_datalogp シングルMCサンプルでEq(dataterm)を見積もるのにpytensor.scanは必要とされず、コードは最適化される single_symbolic_logp シングルMCサンプルのEq(logP)見積りにpytensor.scanは必要とされず、コードは最適化される single_symbolic_varlogp シングルMCサンプルのEq(priorterm)見積りにpytensor.scanは必要とされず、コードは最適化される sized_symbolic_datalogp pytensor.scanを使いモデルからサンプルしたデータ termを計算する sized_symbolic_logp pytensor.scanを使いモデルからサンプルしたlogPを計算する sized_symbolic_varlogp pytensor.scanを使いモデルからサンプルした事前期間を計算する symbolic_logq 全てのグループのsymbolic_logqを収集する symbolic_normalizing_constant self.logqの正規化定数、total_sizeの代わりにminibatch_sizeにサイズ変更する symbolic_random symbolic_randoms varlogp 後で最適化するpytensor.scanを使ってモデルからEq(priorterm)を計算する varlogp_norm
pymc.Group class pymc.Group(group=None, vfam=None, params=None, *args, **kwargs)
変数 型 group pyMC変数のリスト vfam str 一致するグループの変分ファミリーを示す文字列 param dict 変分ファミリー変数のdict randim_seed None または int 乱数生成器のためのランダムシード model PyMC Model options dict グループのための特別なオプション kwargs Noneまたは int その他引数
メソッド Group.__init__(*args,**kwargs) Group.get_param_spec_for(**kwargs) Group.group_for_params(params) Group.group_for_short_name(name) Group.make_size_and_deterministic_replacements() 決定フラグとサンプルサイズに依存した初期値に正しい交換値を作る。 Group.register(sbcls) Group.set_size_and_deterministic(node,s,d) symbolic_sample_over_posterior()またはsymbolic_single_sample()でノードがサンプルされた後、新しい乱数生成器が割り当てれてノードに適用される。 Group.simbolic_sample_over_posterior(node) 各時間の事後から独立したサンプルを適用してノードのサンプルを実行する Group.symbolic_single_sample(node[,...]) 事後から単一サンプルを適用してノードのサンプルを実行する Group.to_flat_input(node[,...]) 変数を平坦なビューに取り替えてself.inputに保存する。 Group.var_to_data(shared) 平坦な一次元テンソル変数をself.ordering 情報を元にしたxarrayデータセットにマップする
属性 alias_names cov 構造化されていない2次元テンソル変数として潜在変数間の共分散 ddim has_logq initial_dist_map initial_dist_name inputs logq 後で最適化されるpytensor.scan経由でモデルからEqを計算する。 logq_norm 正規化Eq (logP) mean 構造化されていない1次元テンソル変数としての潜在変数の平均 mean_data xarrayデータセットとしての潜在変数の平均 ndim params params_dict replacements pyMCのランダム変数を近似で置き換えるためにグループから全てを交換 shared_params short_name std 構造化されていない1次元テンソル変数としての潜在変数の標準偏差 std_data xarrayデータセットとしての潜在変数の標準偏差 symbolic_initial symbolic_logq 正しいスケール symbolic_logq_not_scaled self.symbolic_random のためにlogqの計算symbolic_normalizing_constant self.logqの正規化定数、total_sizeの代わりにminibatch_sizeにサイズ変更する symbolic_random 抽象ノード self.params_dict で変数化される事後近似を作る
pymc.variational.operators.KL class pymc.variational.operators.KL(approx, beta=1.0)
変数 型 approx Class Approximation 推論の近似 beta float KL情報(クルバック・ライブラー)のためのベータ変数
メソッド KL.__init__(approx[,beta]) KL.apply(f) それ自身のオペレータ
属性 T datalogp datalogp_norm has_test_function inputs logp logp_norm logq logq_norm model require_logq returns_loss supports_aevb varlogp varlogp_norm
pymc.variational.operators.KSD カーネル化スタイン下降を元にした演算
class pymc.variational.operators.KSD(approx, temperature=1)
変数 型 approx Class Approximation 推論の近似 temperature float スタイン勾配の温度
アルゴリズムのより詳しい情報については以下の文献を参照してください。
Qiang Liu, Dilin Wang (2016) Stein Variational Gradient Descent: A General Purpose Bayesian Inference Algorithm
メソッド KL.__init__(approx[,beta]) KL.apply(f) それ自身のオペレータ
属性 T datalogp datalogp_norm has_test_function inputs logp logp_norm logq logq_norm model require_logq returns_loss supports_aevb varlogp varlogp_norm
pymc.Stein class pymc.Stein(approx, kernel=<pymc.variational.test_functions.RBF object>, use_histogram=True, temperature=1)
メソッド Stein.__init__(approx[,beta])
属性 Kxy approx_symbolic_matrices density_part_grad dlogp dxkxy grad input_joint_matrix logp_norm repulsive_part_grad
pymc.adadelta Adaデルタ 更新
pymc.adadelta(loss_or_grads=None, params=None, learning_rate=1.0, rho=0.95, epsilon=1e-06)
変数 型 loss_or_grads スカラー損失命令 params list 更新命令を生成する変数 learning_rate float 更新ステップのサイズを操作する学習率 rho float スクエア勾配移動平均因子 epsilon float 数値の安定性に付加する微小値
アルゴリズムの詳細は以下の文献を参照してください。
Zeiler, M. D. (2012): ADADELTA: An Adaptive Learning Rate Method.
(使用例)
>>> a = pytensor.shared(1.)
>>> b = a*2
>>> updates = adadelta(b, [a], learning_rate=.01)
>>> isinstance(updates, dict)
True
>>> optimizer = adadelta(learning_rate=.01)
>>> callable(optimizer)
True
>>> updates = optimizer(b, [a])
>>> isinstance(updates, dict)
True
pymc.adagrad Adagrad 更新
pymc.adagrad(loss_or_grads=None, params=None, learning_rate=1.0, epsilon=1e-06)
変数 型 loss_or_grads スカラー損失命令 params list 更新命令を生成する変数 learning_rate float 更新ステップのサイズを操作する学習率 epsilon float 数値の安定性に付加する微小値
アルゴリズムのより詳しい情報は以下の文献を参照してください。
Duchi, J., Hazan, E., & Singer, Y. (2011): Adaptive subgradient methods for online learning and stochastic optimization. Chris Dyer: Notes on AdaGrad.
(使用例)
>>> a = pytensor.shared(1.)
>>> b = a*2
>>> updates = adagrad(b, [a], learning_rate=.01)
>>> isinstance(updates, dict)
True
>>> optimizer = adagrad(learning_rate=.01)
>>> callable(optimizer)
True
>>> updates = optimizer(b, [a])
>>> isinstance(updates, dict)
True
pymc.adagrad_window pymc.adagrad_window(loss_or_grads=None, params=None, learning_rate=0.001, epsilon=0.1, n_win=10)
変数 型 loss_or_grads スカラー損失命令 params list 更新命令を生成する変数 learning_rate float 更新ステップのサイズを操作する学習率 epsilon float adagradの正規化で0除算を避けるためのオフセット n_win int 勾配パラメータのスケールを計算するための過去のステップ数
戻り値 OrderedDict 各パラメータのdictionaryマッピング
pymc.adam Adam更新
pymc.adam(loss_or_grads=None, params=None, learning_rate=0.001, beta1=0.9, beta2=0.999, epsilon=1e-08)
変数 型 loss_or_grads スカラー損失命令 params list 更新命令を生成する変数 learning_rate float 更新ステップのサイズを操作する学習率 beta1 float 最初のモーメントの指数減衰率 beta2 float 2番目のモーメントの指数減衰率 epsilon float 数値安定のための一定値
戻り値 OrderedDict 各パラメータのdictionaryマッピング
アルゴリズムのより詳細な情報は以下の文献を参照してください。
Kingma, Diederik, and Jimmy Ba (2014): Adam: A Method for Stochastic Optimization.
(使用例)
>>> a = pytensor.shared(1.)
>>> b = a*2
>>> updates = adam(b, [a], learning_rate=.01)
>>> isinstance(updates, dict)
True
>>> optimizer = adam(learning_rate=.01)
>>> callable(optimizer)
True
>>> updates = optimizer(b, [a])
>>> isinstance(updates, dict)
True
pymc.adamax Adamax 更新
pymc.adamax(loss_or_grads=None, params=None, learning_rate=0.002, beta1=0.9, beta2=0.999, epsilon=1e-08)
変数 型 loss_or_grads スカラー損失命令 params list 更新命令を生成する変数 learning_rate float 更新ステップのサイズを操作する学習率 beta1 float 最初のモーメントの指数減衰率 beta2 float 2番目のモーメントの指数減衰率 epsilon float 数値安定のための一定値
戻り値 OrderedDict 各パラメータのdictionaryマッピング
(使用例)
>>> a = pytensor.shared(1.)
>>> b = a*2
>>> updates = adamax(b, [a], learning_rate=.01)
>>> isinstance(updates, dict)
True
>>> optimizer = adamax(learning_rate=.01)
>>> callable(optimizer)
True
>>> updates = optimizer(b, [a])
>>> isinstance(updates, dict)
True
pymc.apply_momentum 更新モーメンタムを返す
pymc.apply_momentum(updates, params=None, momentum=0.9)
パラメータ updates 命令を更新するためのdictionaryマッピング変数 params モメンタムを適用する変数 momentum float 適用するモーメンタムの量
戻り値 OrderedDict モーメンタムを更新した全パラメータのdictionaryマッピング
pymc.apply_netserv_momentum Neterovモーメンタムを含む更新dictionaryを返す
pymc.apply_nesterov_momentum(updates, params=None, momentum=0.9)
パラメータ updates 命令を更新するためのdictionaryマッピング変数 params モメンタムを適用する変数 momentum float 適用するモーメンタムの量
戻り値 OrderedDict モーメンタムを更新した全パラメータのdictionaryマッピング
pymc.momentum 確率的勾配下降のモーメンタム更新
pymc.momentum(loss_or_grads=None, params=None, learning_rate=0.001, momentum=0.9)
変数 型 loss_or_grads スカラー損失命令 params list 更新命令を生成する変数 learning_rate float 更新ステップのサイズを操作する学習率 momentum float 適用するモーメンタムの量
戻り値 OrderedDict 各パラメータのdictionaryマッピング
(使用例)
>>> a = pytensor.shared(1.)
>>> b = a*2
>>> updates = momentum(b, [a], learning_rate=.01)
>>> isinstance(updates, dict)
True
>>> optimizer = momentum(learning_rate=.01)
>>> callable(optimizer)
True
>>> updates = optimizer(b, [a])
>>> isinstance(updates, dict)
True
pymc.nesterov_momentum 確率的勾配下降のNeterovモーメンタム更新
pymc.nesterov_momentum(loss_or_grads=None, params=None, learning_rate=0.001, momentum=0.9)
変数 型 loss_or_grads スカラー損失命令 params list 更新命令を生成する変数 learning_rate float 更新ステップのサイズを操作する学習率 momentum float 適用するモーメンタムの量
戻り値 OrderedDict 各パラメータのdictionaryマッピング
(使用例)
>>> a = pytensor.shared(1.)
>>> b = a*2
>>> updates = nesterov_momentum(b, [a], learning_rate=.01)
>>> isinstance(updates, dict)
True
>>> optimizer = nesterov_momentum(learning_rate=.01)
>>> callable(optimizer)
True
>>> updates = optimizer(b, [a])
>>> isinstance(updates, dict)
True
pymc.norm_comstraint 最大重み基準の制限と勾配畳み込み
pymc.norm_constraint(tensor_var, max_norm, norm_axes=None, epsilon=1e-07)
変数 型 tensor_var 更新のためのPyTensor命令 max_norm scalar tensor_varの基準の最大値を設定 norm_axes float 基準を計算するための軸 epsilon float 数値の安定性のための値、ゼロ除算を避ける
戻り値 TensorVariable 重みベクトルに適応してサイズを変更したtensor_var入力
(使用例)
>>> param = pytensor.shared(
np.random.randn(100, 200).astype(pytensor.config.floatX))
>>> update = param + 100
>>> update = norm_constraint(update, 10)
>>> func = pytensor.function([], [], updates=[(param, update)])
>>> # Apply constrained update
>>> _ = func()
>>> from lasagne.utils import compute_norms
>>> norms = compute_norms(param.get_value())
>>> np.isclose(np.max(norms), 10)
True
pymc.rmsprop RMSProp 更新
pymc.rmsprop(loss_or_grads=None, params=None, learning_rate=1.0, rho=0.9, epsilon=1e-06)
変数 型 loss_or_grads スカラー損失命令 params list 更新命令を生成する変数 learning_rate float 更新ステップのサイズを操作する学習率 rho float 勾配移動平均減衰因子 epsilon float 数値の安定性に付加する微小値
戻り値 OrderedDict 各パラメータのdictionaryマッピング
アルゴリズムのより詳しい情報は以下の文献を参照してください。
Tieleman, at. and Hinton, G. (2012): Neural Networks for Machine Learning, Lecture 6.5 - rmsprop. Coursera
(使用例)
>>> a = pytensor.shared(1.)
>>> b = a*2
>>> updates = rmsprop(b, [a], learning_rate=.01)
>>> isinstance(updates, dict)
True
>>> optimizer = rmsprop(learning_rate=.01)
>>> callable(optimizer)
True
>>> updates = optimizer(b, [a])
>>> isinstance(updates, dict)
True
pymc.sgd 確率的勾配下降(SGD)の更新
pymc.sgd(loss_or_grads=None, params=None, learning_rate=0.001)
変数 型 loss_or_grads スカラー損失命令 params list 更新命令を生成する変数 learning_rate float 更新ステップのサイズを操作する学習率
戻り値 OrderedDict 各パラメータのdictionaryマッピング
(使用例)
>>> a = pytensor.shared(1.)
>>> b = a*2
>>> updates = sgd(b, [a], learning_rate=.01)
>>> isinstance(updates, dict)
True
>>> optimizer = sgd(learning_rate=.01)
>>> callable(optimizer)
True
>>> updates = optimizer(b, [a])
>>> isinstance(updates, dict)
True
pymc.total_norm_constraint テンソルリストの再計量
pymc.total_norm_constraint(tensor_vars, max_norm, epsilon=1e-07, return_norm=False)
変数 型 tensor_vars 再計量するためのテンソル max_norm list 合計の基準の閾値 epsilon float ゼロ除算や微小値での除算を避けるための数値 return_norm bool 真ならば合計の基準を返す
戻り値 TensorVariable 計量したテンソル変数 norm 再計量するための入力事前変数の組み合わせ
アルゴリズムのより詳しい情報は以下の文献を参照してください。
Sutskever, I., Vinyals, O., & Le, Q. V. (2014): Sequence to sequence learning with neural networks. In Advances in Neural Information Processing Systems (pp. 3104-3112)
(使用例)
from lasagne.layers import InputLayer, DenseLayer
import lasagne
from lasagne.updates import sgd, total_norm_constraint
x = pt.matrix()
y = pt.ivector()
l_in = InputLayer((5, 10))
l1 = DenseLayer(l_in, num_units=7, nonlinearity=pt.special.softmax)
output = lasagne.layers.get_output(l1, x)
cost = pt.mean(pt.nnet.categorical_crossentropy(output, y))
all_params = lasagne.layers.get_all_params(l1)
all_grads = pt.grad(cost, all_params)
scaled_grads = total_norm_constraint(all_grads, 5)
updates = sgd(scaled_grads, all_params, learning_rate=0.1)