2017-02-19 9 views
0

私は重大な回帰問題にテンソルを使用します。 ポーカーハンド、ポーカーベット、アクションを表すネットワーク(192のバイナリ(0または1)要素を持つ配列)と、このアクションからの利得を表す出力(単一要素の配列)の入力。私は、この目標のために得たトレーニング(100回の反復)の結果Tensorflow回帰モデルは負の値から学習しません

self._target = tf.placeholder("float", [None]) 
self.cost = tf.reduce_mean(tf.square(self._target - tf.transpose(self.output_layer))) 
self._train_operation = tf.train.GradientDescentOptimizer(self.LEARNING_RATE).minimize(self.cost) 

: ネットワークは、100個のニューロン

input_layer = tf.placeholder(tf.float32, (None, self.INPUT_LAYER_SIZE)) 
    layer_1_biases = tf.Variable(tf.truncated_normal(stddev=self.STD_DEV, shape=[self.LAYER_1_SIZE])) 
    layer_1_weights = tf.Variable(tf.truncated_normal(stddev=self.STD_DEV, shape=[self.INPUT_LAYER_SIZE, self.LAYER_1_SIZE])) 
    layer_2_biases = tf.Variable(tf.truncated_normal(stddev=self.STD_DEV, shape=[self.LAYER_2_SIZE])) 
    layer_2_weights = tf.Variable(tf.truncated_normal(stddev=self.STD_DEV, shape=[self.LAYER_1_SIZE, self.LAYER_2_SIZE])) 
    layer_3_biases = tf.Variable(tf.truncated_normal(stddev=self.STD_DEV, shape=[self.LAYER_3_SIZE])) 
    layer_3_weights = tf.Variable(
     tf.truncated_normal(stddev=self.STD_DEV, shape=[self.LAYER_2_SIZE, self.LAYER_3_SIZE])) 

    layer_1 = tf.add(tf.matmul(input_layer, layer_1_weights), layer_1_biases) 
    layer_1 = tf.nn.relu(layer_1) 
    layer_2 = tf.add(tf.matmul(layer_1, layer_2_weights), layer_2_biases) 
    layer_2 = tf.nn.relu(layer_2) 
    layer_3 = tf.add(tf.matmul(layer_2, layer_3_weights), layer_3_biases) 
    layer_3 = tf.nn.relu(layer_3) 

    output_layer_weights = tf.ones(shape=[self.LAYER_2_SIZE,1]) 
    output_layer = tf.matmul(layer3, output_layer_weights) 

    return input_layer, output_layer 

私は率0.001とGradientDescentOptimizerを学んで二乗誤差を最小化しようとすると3つの隠された層を有しています:

[-10.0, -10.0, -10.0, +10.0, -10.0] 

この出力:

[0.08981139, 0.05091755, 0.04566674, 0.06034175, 9.99115811, 0.13543463] 

トレーニング中にログファイルに負の出力が見られませんでした。だから私のネットワークは負の値から学ばない。何か案は?

答えて

0

簡易回答: 有効化機能ReLUはmax(0,x)です。ここで、xは入力の重み付けの合計です。したがって、関数は常に正になります。他の有効化機能(tanhなど)を使用する必要があります

関連する問題