で省略したAmazon DSSTNEの設定項目
良くも悪くも裏で何やっているかわからないので、勉強ついでに設定項目を調べられるだけ調べてみたメモ(リンクを貼っただけ。。)
https://github.com/amznlabs/amazon-dsstne/blob/master/docs/getting_started/LDL.txt
引数
バッチサイズやエポック数など
config.json
config.json |
|
デフォルト値 |
|
Version |
String |
最新版 |
|
Name |
String |
- |
ニューラルネットワークの名前 |
WeightData |
String |
- |
重みを記載したNetCDFのデータセットファイル |
Kind |
"AutoEncoder", "FeedForward" |
"FeedForward" |
ニューラルネットワークの種類 |
ShuffleIndices |
Boolean |
true |
学習にあたってデータの順番をシャッフルするか |
LocalResponseNormalization
|
|
|
LRNのパラメータ設定。項目は後述 |
SparsenessPenalty |
|
|
Google先生はsparsity penaltyと呼んでいる模様(項目は後述) |
Denoising, p |
float(スパースな入力層に対しては0より大きい値) |
|
入力のノイズの付加確率 |
DeltaBoost |
|
|
バイナリクロスエントロピー損失関数を使用した際の勾配の調整(項目は後述) |
ScaledMarginalCrossEntropy |
|
|
バイナリスケールドマージナルクロスエントロピー損失関数のパラメータ(項目は後述) |
Layers |
Array |
入力層と出力層は最低でも1つずつ |
入力層、隠れ層、出力層を設定(項目は後述) |
ErrorFunction |
"SMCE", "L1", "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 |
float |
0.0 |
入力をdropoutさせる確率 |
隠れ層 |
|
デフォルト値 |
|
Kind |
"Hidden" |
|
|
Name |
String |
- |
|
Source |
String or Array |
|
隠れ層出力層に対するソース層/入力層に対するデータセット |
Type |
"FullyConnected" or "Convolution" |
"FullyConnected" |
全結合か畳み込みか |
N |
Integer |
必須 |
output unitsの数 |
WeightInit |
Object |
Xavier |
重みの初期化について(項目は後述) |
Activation |
"Sigmoid", "Relu", "Tanh", "Linear", "PRelu", "LinearMax", "MaxOut" |
"sigmoid" |
活性化関数を指定 |
Kernel |
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の最大許容長 |
BatchNormalization
|
Boolean |
false |
入力分布をバッチごとに平均0分散1へ正規化するか |
Sparse |
Boolean |
false |
|
SparsenessPenalty |
Boolean |
false |
sparseness penaltyを適用するかどうか |
L1Penalty |
float |
0.0, off |
活性化関数に使うL1 penalty factorの値 |
Recurrent |
"LSTM", "SRN", "SCRN", "FSMN" or "None" |
"None" |
RNNを作るかどうか。LSTM = long short term memory。SRN = simple recurrent network。SCRN = structurally constrained recurrent network。FSMN = feedforward sequential memory network。 |
SharedWeights |
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" |
初期化に使うフィルター。たぶん。 |
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 |
転置行列を使うか |