Basit yazdım MLP içinde TensorFlow bir modelleme olduğu XOR-Gate .
İçin böylece:
input_data = [[0., 0.], [0., 1.], [1., 0.], [1., 1.]]
aşağıdakileri üretmelidir:
output_data = [[0.], [1.], [1.], [0.]]
Ağın bir giriş katmanı, gizli bir katmanı ve her birinin 2, 5 ve 1 nöronlu bir çıkış katmanı vardır.
Şu anda aşağıdaki çapraz entropiye sahibim:
cross_entropy = -(n_output * tf.log(output) + (1 - n_output) * tf.log(1 - output))
Bu basit alternatifi de denedim:
cross_entropy = tf.square(n_output - output)
diğer bazı denemelerle birlikte.
Ancak, hiçbir zaman kurulum, bir ile hata olduğunun önemi GradientDescentOptimizer
azalan edildi çok yavaş bir daha AdamOptimizer
.
Aslında, tf.train.AdamOptimizer(0.01)
400-800 öğrenme aşamasından sonra (öğrenme oranına bağlı olarak, 0.01
en iyi sonuçların elde edildiği yerde ) gerçekten iyi sonuçlar vermiştir ve tf.train.GradientDescentOptimizer
her ne kadar çapraz entropi hesaplaması veya öğrenme oranı kullanılsa da , her zaman 2000'den fazla öğrenme aşamasına ihtiyaç duyulmaktadır.
Bu neden böyle? Görünüşe göre AdamOptimizer
her zaman daha iyi bir seçim mi?