chainer.functions.simplified_dropconnect(x, W, b=None, ratio=0.5, train=True, mask=None, use_batchwise_mask=True)[source]

簡略化したDropconnectで正規化された線形ユニット

 

簡略化した Dropconnect は荷重行列のエレメントを確率比でランダムにドロップし、 1 / (1 - ratio)で、残っている要素をスケールします。

2つか3つの変数をとる。: 入力ミニバッチ x、荷重行列 W。バイアスベクトル bはオプション。これにより  Y=xW+bY=xW⊤+bを計算する。

 

テストモードでは、ゼロが  ratioの替わりに簡略化したDropconnect ratioとして使用される。

 

注意: この実装はこの論文のリプロダクションに用いることはできない。現在の実装はオリジナルのものと実装が異なっている。現在の実装の活性化前に平均しているで、このオリジナルバージョンは、活性関数を通すまえにガウス分布でのサンプリングを使用している。

 

Parameters:
  • x (chainer.Variable or numpy.ndarray or cupy.ndarray) – 入力値。1次元目n はミニバッチの次元。他の次元は結合した1次元のデータとして扱われ、サイズは Nでなければならない。
  • W (Variable) – Shapeが(M, N).である荷重変数。
  • b (Variable) – バイアス変数(オプション)。shapeは (M,)
  • ratio (float) – Dropconnect ratio.
  • train (bool) –  Trueが設定されている場合、simplified dropconnectを実行する。それ以外では simplified dropconnect 関数は線形関数として機能する。
  • mask (None or chainer.Variable or numpy.ndarray or cupy.ndarray) – Noneが設定されている場合、 ランダム化したdropconnect マスクが 生成される。それ以外では、このマスクはshapeが (n, M, N)(M, N) の配列でなければならない。また、use_batchwise_mask は無視される。このオプションの主な目的はデバッグである。 mask 配列は dropconnect maskとして用いられる。
  • use_batchwise_mask (bool) –  Trueの場合、dropped connections は、ミニバッチのそれぞれのサンプルに依存する。
Returns:

出力値

Return type:

Variable

See also

Dropconnect

See also

Li, W., Matthew Z., Sixin Z., Yann L., Rob F. (2013). Regularization of Neural Network using DropConnect. International Conference on Machine Learning. URL