NN 모델 확실성/확신을 계산하고 싶습니다. (What my deep model doesn't know 참조) - NN이 이미지가 "8"을 나타낼 때, 나는 그것이 얼마나 확실한 지 알고 싶습니다. 제 모델이 "8"인지 또는 51 %인지 "8"인지 99 % 확신합니까? "6"일 수도 있습니까? 일부 숫자는 매우 모호하며 모델이 "동전을 뒤집을 때"어떤 이미지인지 알고 싶습니다.Keras를 사용하여 예측 불확실성을 계산하는 방법은 무엇입니까?
나는 이것에 대한 이론적 글을 발견했지만 코드에이 문제를 제기하는 데 어려움이 있습니다. 내가 올바르게 이해한다면, 여러 개의 뉴런을 "죽이는"동안 (드롭 아웃 사용) 테스트 이미지를 여러 번 평가해야합니다 ...? 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 갈에 의해 설명 된 방법 (또는 다른 방법은 더 나은 결과를 얻을 이유를 설명)를 사용하여 확실성을 얻을 수있는 방법, 예를 들어 찾고 있어요 명확히한다. probs
어레이는 다음의 10 요소 벡터 것이다
probs = model.predict(some input data)[0]
가장 간단한 방법은 불확실성 계수 일종의 획득하도록
정확히 찾고있는 것과 같습니다. 불행히도 제가 멀리있는 동안 현상금이 만료되었습니다.) 그래서 다른 것을 시작하고 수여 할 것입니다. 고맙습니다! (편집 : 그러나 물론, 나는 단지 두 배를 수여 할 수 있으며, 24 시간 후에 만 ... 내일까지 ... :)) – johndodo