损失函数的选择:binary_crossentropy、categorical_crossentropy、sparse_categorical_crossentropy

二分类问题:

    如果是二分类问题,即最终的结果只能是两个分类中的一个,则损失函数loss使用binary_crossentropy

多分类问题:

   对于多分类问题,在选择损失函数loss时,主要是看数据是如何编码的:

      1.如果是分类编码(one-hot编码),则使用categorical_crossentropy

        我对one-hot编码的理解是:one-hot编码就是在标签向量化的时候,每个标签都是一个N维的向量(N由自己确定),其中这个向量只有一个值为1,其余的都为0。也就是将整数索引i转换为长度为N的二进制向量,这个向量只有第i个元素是1,其余的都是0

        Keras有内置的将标签向量化的方法:

from keras.utils.np_utils import to_categorical

one_hot_train_labels = to_categorical(train_labels)
one_hot_test_labels = to_categorical(test_labels)

      2.如果是整数编码,则使用sparse_categorical_crossentropy

       我对整数编码的理解是:整数编码就是对所有标签都放到一个向量中,每个标签对应向量的一个值

猜你喜欢

转载自blog.csdn.net/fu_jian_ping/article/details/107707780