Amazon DSSTNEのディープラーニング設定項目一覧

http://qiita.com/S_Shimotori/items/a631da59074fb04eb9a5

で省略したAmazon DSSTNEの設定項目

良くも悪くも裏で何やっているかわからないので、勉強ついでに設定項目を調べられるだけ調べてみたメモ(リンクを貼っただけ。。)
https://github.com/amznlabs/amazon-dsstne/blob/master/docs/getting_started/LDL.txt

# 引数

バッチサイズや[エポック数](http://yutasugii.hatenablog.com/entry/2015/12/16/002617)など

# config.json

|config.json||デフォルト値||
|---|---|---|---|
|Version|String|最新版||
|Name|String| - |ニューラルネットワークの名前|
|WeightData|String| - |重みを記載したNetCDFのデータセットファイル|
|Kind|"[AutoEncoder](http://qiita.com/piyo7/items/60576759430910ffe5be)", "[FeedForward](http://s0sem0y.hatenablog.com/entry/2016/05/22/014656)"|"FeedForward"|ニューラルネットワークの種類|
|ShuffleIndices|Boolean|true|学習にあたってデータの順番をシャッフルするか|
|[LocalResponse](https://prateekvjoshi.com/2016/04/05/what-is-local-response-normalization-in-convolutional-neural-networks/)[Normalization](http://may46onez.hatenablog.com/entry/2016/01/08/142843)|||LRNのパラメータ設定。項目は後述|
|[SparsenessPenalty](https://github.com/amznlabs/amazon-dsstne/issues/23)|||Google先生はsparsity penaltyと呼んでいる模様(項目は後述)|
|Denoising, p|float(スパースな入力層に対しては0より大きい値)||入力のノイズの付加確率|
|DeltaBoost|||バイナリクロスエントロピー損失関数を使用した際の勾配の調整(項目は後述)|
|ScaledMarginalCrossEntropy|||バイナリスケールドマージナルクロスエントロピー損失関数のパラメータ(項目は後述)|
|Layers|Array|入力層と出力層は最低でも1つずつ|入力層、隠れ層、出力層を設定(項目は後述)|
|ErrorFunction|"SMCE", "[L](http://www.chioka.in/differences-between-l1-and-l2-as-loss-function-and-regularization/)[1](http://cp.literature.agilent.com/litweb/pdf/ads2005a/optstat/os064a.html)", "L2" or "CrossEntropy"|"CrossEntropy"|誤差関数。SMCE = sequential minimum cross entropy?|

|LocalResponseNormalization||デフォルト値||
|---|---|---|---|
|k|float|2|offset|
|n|Integer|5|spread|
|alpha|float|0.0001|scaling|
|beta|float|0.75|exponent|

|SparsenessPenalty||デフォルト値||
|---|---|---|---|
|p|float|0.0|Target sparseness probability for sparse hidden units |
|beta|float|0.0|Sparse penalty weight on sparse hidden units |

|DeltaBoost||デフォルト値||
|---|---|---|---|
|one|float|1.0|Scaling factor for non-zero target values|
|zero|float|1.0|Scaling factor for zero target values|

|ScaledMarginalCrossEntropy||デフォルト値||
|---|---|---|---|
|oneTarget|float|0.9|Relaxed target for non-zero target values|
|zeroTarget|float|0.1|Relaxed target for zero target values|
|oneScale|float|1.0|Scaling factor for non-zero target values|
|zeroScale|float|1.0|Scaling factor for zero target values|

|入力層||デフォルト値||
|---|---|---|---|
|Kind|"Input"|||
|Name|String(ASCII)| - |複雑なトポロジーにおいてASCIIで識別|
|DataSet|String||入力データセット名|
|N|Integer, Array or "auto"||ユニットの次元。"auto"の場合はデータセットの次元に基づく|
|Sparse|Boolean|false|レイヤーがスパースであるかどうか|
|[pDropout](http://sonickun.hatenablog.com/entry/2016/07/18/191656)|float|0.0|入力をdropoutさせる確率|


|隠れ層||デフォルト値||
|---|---|---|---|
|Kind|"Hidden"|||
|Name|String| - ||
|Source|String or Array||隠れ層出力層に対するソース層/入力層に対するデータセット|
|Type|"FullyConnected" or "[Convo](http://cs231n.github.io/convolutional-networks/)[lution](http://qiita.com/icoxfog417/items/5fd55fad152231d706c2)"|"FullyConnected"|全結合か畳み込みか|
|N|Integer|必須|output unitsの数|
|WeightInit|Object|Xavier|重みの初期化について(項目は後述)|
|Activation|"Sigmoid", "Relu", "Tanh", "Linear", "[PRelu](http://qiita.com/shima_x/items/8a2f001621dfcbdac028)", "LinearMax", "MaxOut"|"sigmoid"|[活](http://sleepy-programmer.blogspot.jp/2012/11/blog-post.html)[性](http://sleepy-programmer.blogspot.jp/2015/02/2.html)化関数を指定|
|[Kernel](http://www.slideshare.net/Takayosi/miru2014-tutorial-deeplearning-37219713)|Integer or Array|1 for each|kernel dimensions X, [X], [X, Y], or [X, Y, Z]|
|KernelStride|Integer or Array|1 for each|kernel stride X, [X], [X, Y], or [X, Y, Z]|
|pDropout|float|0.0||
|WeightNorm|float|0, unconstrained|重みベクトルの最大許容長|
|DeltaNorm|float|0, unconstrained|誤差逆伝播法のdelta vectorsの最大許容長|
|[Batch](http://qiita.com/sergeant-wizard/items/052c98c6e712a4a8df6a)[Normalization](http://hirotaka-hachiya.hatenablog.com/entry/2016/08/06/175824)|Boolean|false|入力分布をバッチごとに平均0分散1へ正規化するか|
|Sparse|Boolean|false||
|SparsenessPenalty|Boolean|false|sparseness penaltyを適用するかどうか|
|L1Penalty|float|0.0, off|活性化関数に使うL1 penalty factorの値|
|Recurrent|"LSTM", "SRN", "[SCRN](http://qiita.com/nzw0301/items/3f2d380207a9f7583215)", "FSMN" or "None"|"None"|[RNN](http://qiita.com/icoxfog417/items/2791ee878deee0d0fd9c)を作るかどうか。LSTM = long short term memory。SRN = simple recurrent network。SCRN = structurally constrained recurrent network。FSMN = feedforward sequential memory network。|
|[SharedWeights](http://deeplearning.net/tutorial/lenet.html#shared-weights)|Array or Object| - |前のレイヤーから重みを使い回すかどうか(項目は後述)|

|プーリング層||デフォルト値||
|---|---|---|---|
|Kind|"Pooling"|||
|Name|String| - ||
|Source|String||対象の隠れ層または入力層1つ|
|Function|"Max", "Stochastic", "LocalContrastNormalization", "LocalResponseNormalization", "GlobalTemporal"||プーリングの方法|
|Kernel|Integer or Array|1 for each||
|KernelStride|Integer or Array|1 for each||
|pDropout|float|0.0|||

|ターゲット層||デフォルト値||
|---|---|---|---|
|Kind|"Target"|||
|Name|String| - ||
|Target|String||ソースデータや次元をくれるレイヤー|
|WeightInit|Object|Xavier||
|ErrorFunction|"SMCE", "L1", "L2" or "CrossEntropy"|"CrossEntropy"|||

|出力層||デフォルト値||
|---|---|---|---|
|Kind|"Output"|||
|Name|String| - ||
|DataSet|String| - |アウトプットデータのファイル|
|Source|String or Array|hidden layer or first input|この出力層への入力|
|Type|"FullyConnected" or "Convolution"|"FullyConnected"||
|N|Integer, Array or "auto"|||
|Activation|"Sigmoid", "Relu", "Tanh", "Linear", "PRelu", "LinearMax", "MaxOut"|"sigmoid"||
|Kernel|Integer or Array|1 for each||
|KernelStride|Integer or Array|||
|WeightInit|Object|Xavier||
|WeightNorm|float|0, unconstrained||
|DeltaNorm|float|0, unconstrained||
|pDropout|float|0.0||
|Sparse|Boolean|false||
|SparsenessPenalty|Boolean|false||
|SharedWeights|Array or Object| - |||

|WeightInit||デフォルト値||
|---|---|---|---|
|Scheme|"Xavier", "CaffeXavier", "Gaussian", "Uniform", "Constant", "UnitBall"|"Xavier"|初期化に使うフィルター。[たぶ](http://blog.csdn.net/tangwei2014/article/details/47091881)[ん](https://abhishek4273.com/2016/02/07/ann-chapter-3-deep-learning-using-caffe-python/)。|
|Scale|float|1|Scaling factor for all initializations|
|Bias|float|0|Bias initialization value|

|SharedWeights||デフォルト値||
|---|---|---|---|
|InputLayer|String||Input to this layer from which to attach shared weights|
|SourceInputLayer|String||どの重み行列を共有するか|
|SourceOutputLayer|String||
|Transposed|Boolean|false|転置行列を使うか|