クリック数やその他の情報に関連する機能を取り入れ、何かが将来クリックされるかどうかを予測するcntkモデルがあります。しかし、ランダムフォレストで同じ機能を使用すると問題なく動作しますが、cntkはすべて1を分類します。なぜこれが起こりますか?パラメータチューニングが必要ですか?機能にはさまざまなスケールがあります。 私の列車アクションは次のようになります。CNTK分類モデルすべて1を分類する
BrainScriptNetworkBuilder = [
inputD = $inputD$
labelD = $labelD$
#hidden1 = $hidden1$
model(features) = {
w0 = ParameterTensor{(1 : 2), initValueScale=10}; b0 = ParameterTensor{1, initValueScale=10};
h1 = w0*features + b0; #hidden layer
z = Sigmoid (h1)
}.z
features = Input(inputD)
labels = Input(labelD)
z = model(features)
#now that we have output, find error
err = SquareError (labels, z)
lr = Logistic (labels, z)
output = z
criterionNodes = (err)
evaluationNodes = (err)
outputNodes = (z)
]
SGD = [
epochSize = 4 #learn
minibatchSize = 1 #learn
maxEpochs = 1000 #learn
learningRatesPerSample = 1
numMBsToShowResult = 10000
firstMBsToShowResult = 10
]
batchnormalizationレイヤーはフィーチャの正規化を行いますか?どのような正規化を行うことができますか? –
私は標準化、すなわち '(x-mean)/ std'を参照していました。しかし、BatchNormalizationを使用してこれを行うことができ、パフォーマンスが向上する可能性があります。モデルの学習プロセスの一部として正規化を実際に学習します。私が知る限り、平均と分散を使って入力を正規化します。しかし、オーバーフィットを減らし、慎重に初期化する必要性を減らすなど、他にも優れたメリットがあります。もし興味があれば、[here](https://arxiv.org/abs/1502.03167)の詳細を読むことができます。 –