用范畴交叉熵预测异常结果

2024-06-28 20:29:40 发布

您现在位置:Python中文网/ 问答频道 /正文

前言:我对机器学习完全陌生,所以这可能是一个简单的解决方案

期望:首先我训练了一个CNN模型,使用二元交叉熵对两类(好的和坏的)进行验证,正确率为97%,提交了新的图像进行预测,并得到了预期的结果(这两个新的图像在90年代被正确排序的概率是正确的)

1 #print(model.predict_classes(img))
0.965675 #print(model.predict_proba(img))

问题:现在我尝试切换到分类交叉熵来使用三个类(b1 b2 b3),模型的训练精度为96%。我提交了3个新的图像预测,2个图像应该匹配,一个是左外野,不应该匹配任何东西。所有三张图片都应该符合1。概率

[1] #print(model.predict_classes(img))
[[0. 1. 0.]] #print(model.predict_proba(img))

[2]
[[0. 0. 1.]]

[1]
[[0. 1. 0.]]

问:为什么左外场的图像会与训练到96%的模型匹配?为什么所有的概率都在“1”这个范畴内(100%)

附录:

model = Sequential()
model.add(Conv2D(32, kernel_size=(3, 3),
                 activation='relu',
                 input_shape=input_shape))
model.add(Conv2D(64, (3, 3), activation='relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Dropout(0.25))
model.add(Flatten())
model.add(Dense(128, activation='relu'))
model.add(Dropout(0.5))
model.add(Dense(num_classes, activation='softmax'))

model.compile(loss='categorical_crossentropy', optimizer='Adadelta', metrics=['accuracy'])

Tags: 模型图像addimgsizemodel概率activation