当损失函数是均方误差时,如何定义准确度?是绝对百分比误差吗?
我使用的模型具有输出激活线性和编译 loss= mean_squared_error
model.add(Dense(1))
model.add(Activation('linear')) # number
model.compile(loss='mean_squared_error', optimizer='adam', metrics=['accuracy'])
Run Code Online (Sandbox Code Playgroud)
输出看起来像这样:
Epoch 99/100
1000/1000 [==============================] - 687s 687ms/step - loss: 0.0463 - acc: 0.9689 - val_loss: 3.7303 - val_acc: 0.3250
Epoch 100/100
1000/1000 [==============================] - 688s 688ms/step - loss: 0.0424 - acc: 0.9740 - val_loss: 3.4221 - val_acc: 0.3701
Run Code Online (Sandbox Code Playgroud)
那么例如val_acc:0.3250是什么意思?Mean_squared_error应该是标量而不是百分比 - 不应该吗?那么val_acc - 均方误差,或平均百分比误差或其他函数?
根据维基百科上的MSE定义:https://en.wikipedia.org/wiki/Mean_squared_error
MSE是估计量质量的度量 - 它总是非负的,接近零的值更好.
这是否意味着价值val_acc: 0.0优于val_acc: 0.325?
编辑:我训练时精确度量输出的更多示例 - 随着我训练更多,精度会增加.虽然损失函数 - mse应该减少.是否为mse定义了准确度 - 它是如何在Keras中定义的?
lAllocator: After …Run Code Online (Sandbox Code Playgroud) regression machine-learning mean-square-error keras loss-function
我正在尝试创建一个简单的基于深度学习的模型来进行预测,y=x**2
但是看起来深度学习无法学习其训练集范围之外的一般功能。
凭直觉,我可以认为神经网络可能无法拟合y = x ** 2,因为输入之间不涉及乘法。
请注意,我并不是在问如何创建适合的模型x**2。我已经实现了。我想知道以下问题的答案:
完成笔记本的路径:https : //github.com/krishansubudhi/MyPracticeProjects/blob/master/KerasBasic-nonlinear.ipynb
培训输入:
x = np.random.random((10000,1))*1000-500
y = x**2
x_train= x
Run Code Online (Sandbox Code Playgroud)
训练守则
def getSequentialModel():
model = Sequential()
model.add(layers.Dense(8, kernel_regularizer=regularizers.l2(0.001), activation='relu', input_shape = (1,)))
model.add(layers.Dense(1))
print(model.summary())
return model
def runmodel(model):
model.compile(optimizer=optimizers.rmsprop(lr=0.01),loss='mse')
from keras.callbacks import EarlyStopping
early_stopping_monitor = EarlyStopping(patience=5)
h = model.fit(x_train,y,validation_split=0.2,
epochs= 300,
batch_size=32,
verbose=False,
callbacks=[early_stopping_monitor])
_________________________________________________________________
Layer (type) Output Shape Param #
=================================================================
dense_18 (Dense) (None, 8) …Run Code Online (Sandbox Code Playgroud) machine-learning neural-network deep-learning non-linear-regression keras