1

これは、TensorFlow でカスタム推定器を作成するためのガイドです: https://www.tensorflow.org/guide/custom_estimators

非表示のレイヤーは次を使用して作成されtf.nn.reluます。

# Build the hidden layers, sized according to the 'hidden_units' param.
for units in params['hidden_units']:
    net = tf.layers.dense(net, units=units, activation=tf.nn.relu)

と を使用してXORを学習するために、例を少し変更しました。アクティベーション関数を に変更すると、例は通常どおりに機能します。なぜそうなのですか?XOR 入力は 0 と 1 だけなので、正しい結果が得られますか?hidden_units=[4]n_classes=2tf.nn.sigmoid

どちらの関数も、ゼロ ラインに収束する滑らかな損失曲線を提供します。

4

1 に答える 1

1

XOR問題について、relu隠れ層が深いと逆伝播による誤差値が消失する勾配消失を解決しました。

したがって、Sigmoid非表示レイヤーを 1 つだけ作成すると機能します。

ここに画像の説明を入力

Sigmoid は 0~1 に vlue があります。出力層からの逆伝搬によるエラー値は、偏微分方程式により出力層から遠いところでは非常に小さな値になります。

ここに画像の説明を入力

青線はRelu、黄線はSigmoidです。

Relu は x の値が 0 より大きい場合、エラー値が 1 層目に到達する可能性があります。

于 2019-05-11T10:24:29.113 に答える