我想计算NN模型的确定性/置信度(参见我的深度模型不知道什么)-当NN告诉我一张图片代表“8”时,我想知道它有多确定。我的模型是99%肯定它是“8”,还是51%肯定它是“8”,但也可能是“6”?某些数字相当模糊,我想知道哪些图像只是模型在“抛硬币”。
我已经找到了一些理论写作,但我无法将其编码。如果我理解正确,我应该对测试图像进行多次评估,同时“关闭”不同的神经元(使用辍学),然后...?
在MNIST数据集上工作,我正在运行以下模型:
我已经找到了一些理论写作,但我无法将其编码。如果我理解正确,我应该对测试图像进行多次评估,同时“关闭”不同的神经元(使用辍学),然后...?
在MNIST数据集上工作,我正在运行以下模型:
from keras.models import Sequential
from keras.layers import Dense, Activation, Conv2D, Flatten, Dropout
model = Sequential()
model.add(Conv2D(128, kernel_size=(7, 7),
activation='relu',
input_shape=(28, 28, 1,)))
model.add(Dropout(0.20))
model.add(Conv2D(64, (3, 3), activation='relu'))
model.add(Dropout(0.20))
model.add(Flatten())
model.add(Dense(units=64, activation='relu'))
model.add(Dropout(0.25))
model.add(Dense(units=10, activation='softmax'))
model.summary()
model.compile(loss='categorical_crossentropy',
optimizer='sgd',
metrics=['accuracy'])
model.fit(train_data, train_labels, batch_size=100, epochs=30, validation_data=(test_data, test_labels,))
如何使用这个模型进行预测,以获取其关于预测的确定性?我希望能有一些实际的例子(最好是在Keras中,但任何例子都可以)。
为了澄清,我正在寻找一个使用Yurin Gal所概述的方法获取确定性的例子(或者解释为什么其他方法会产生更好的结果)。