【问题标题】:Why does the error of my NN not divergate to zero when my input reveals the result当我的输入显示结果时,为什么我的 NN 的错误不会发散到零
【发布时间】:2021-02-11 20:59:32
【问题描述】:

当我的输入显示结果时,为什么我的 NN 的错误不会发散到零?我总是将input[2] 设置为正确的结果,因此NN 应该将所有权重设置为0,除了这个。

from random import random
import numpy
from keras.models import Sequential
from keras.layers import Dense
from tensorflow import keras

datax = []
datay = []
for i in range(100000):
    input = []
    for j in range(1000):
        input.append(random())
    yval=random()
    # should be found out by the nn that input[2] is always the correct output
    input[2] = yval
    datax.append(input)
    datay.append(yval)
    
datax = numpy.array(datax)
datay = numpy.array(datay)

model = Sequential()
model.add(Dense(10))
model.add(Dense(10))
model.add(Dense(1))
model.compile(loss='mean_squared_error', optimizer=keras.optimizers.Adam())
model.fit(datax, datay, epochs=100, batch_size=32, verbose=1)

它在 e-05 附近振荡,但从来没有比这更好

Epoch 33/100
3125/3125 [==============================] - 4s 1ms/step - loss: 1.2802e-04
Epoch 34/100
3125/3125 [==============================] - 4s 1ms/step - loss: 3.7720e-05
Epoch 35/100
3125/3125 [==============================] - 4s 1ms/step - loss: 4.0858e-05
Epoch 36/100
3125/3125 [==============================] - 4s 1ms/step - loss: 8.5453e-05
Epoch 37/100
3125/3125 [==============================] - 5s 1ms/step - loss: 5.5722e-05
Epoch 38/100
3125/3125 [==============================] - 5s 1ms/step - loss: 3.6459e-05
Epoch 39/100
3125/3125 [==============================] - 5s 1ms/step - loss: 1.3339e-05
Epoch 40/100
3125/3125 [==============================] - 5s 1ms/step - loss: 5.8943e-05
...
Epoch 100/100
3125/3125 [==============================] - 4s 1ms/step - loss: 1.5929e-05

【问题讨论】:

    标签: python tensorflow machine-learning keras neural-network


    【解决方案1】:

    梯度下降法的步长计算为梯度乘以学习率。所以理论上 - 你不能达到最小的损失函数。

    尝试衰减学习率(衰减到零)。如果你幸运的话 - 我认为这可能是因为浮点类型的离散性。

    【讨论】:

      猜你喜欢
      • 2011-09-26
      • 2021-12-22
      • 1970-01-01
      • 2018-03-09
      • 1970-01-01
      • 2022-10-13
      • 2019-03-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多