Je voudrais calculer NN modèle de certitude / confiance (voir Ce que mon modèle de profondeur ne sais pas) - lorsque NN raconte-moi une image représente "8", je voudrais savoir comment il est certain. Mon modèle est certain à 99% qu'il est "8" ou est-il de 51% c'est: "8", mais il pourrait aussi être "6"? Certains chiffres sont tout à fait ambiguë et je voudrais savoir pour qui images le modèle est juste de la "pile ou face".
J'ai trouvé quelques écrits théoriques à ce sujet, mais j'ai de la difficulté à insérer dans le code. Si je comprends bien, je dois évaluer un test de l'image à plusieurs reprises tout en "tuant" les neurones différents (à l'aide d'abandon) et puis...?
Travail sur MNIST dataset, je suis en cours d'exécution d'un modèle suivant:
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,))
Question: comment dois-je prévoir avec ce modèle, afin que je reçois de sa certitude sur les prédictions trop? Je vous serais reconnaissant de quelques exemples pratiques (de préférence dans Keras, mais tout ce qu'il fera).
EDIT: pour préciser, je suis à la recherche d'exemple de la façon d'obtenir la certitude à l'aide de la méthode décrite par Yurin Gal (ou une explication pourquoi une autre méthode donne de meilleurs résultats).