什么是用于多类分类的最佳Keras模型?


30

我正在研究,如果需求三个赛事冠军的分类一个=( ,win,)drawlose

WINNER  LEAGUE  HOME    AWAY    MATCH_HOME  MATCH_DRAW  MATCH_AWAY  MATCH_U2_50 MATCH_O2_50
3         13    550      571          1.86        3.34        4.23       1.66     2.11
3         7     322     334           7.55         4.1         1.4       2.17     1.61

我当前的模型是:

def build_model(input_dim, output_classes):
    model = Sequential()
    model.add(Dense(input_dim=input_dim, output_dim=12, activation=relu))
    model.add(Dropout(0.5))
    model.add(Dense(output_dim=output_classes, activation='softmax'))
    model.compile(loss='categorical_crossentropy', optimizer='adadelta')
    return model
  1. 我不确定这是否适用于多类别分类
  2. 二进制分类的最佳设置是什么?

编辑:#2-那样吗?

model.add(Dense(input_dim=input_dim, output_dim=12, activation='sigmoid'))
model.add(Dropout(0.5))
model.add(Dense(output_dim=output_classes, activation='softmax'))
model.compile(loss='binary_crossentropy', optimizer='adadelta')

1
您是指“模型”,还是仅指最后一层的activation='softmax'选择和编译选择loss='categorical_crossentropy'?IMO,您的选择对于一个模型可以预测多个互斥的类很有用。如果您需要有关整个模型的建议,那就大不相同了,您应该对自己所关注的问题进行更多的解释,否则,在一个答案中就无法解释太多。
尼尔·斯莱特

我的意思architecture主要是关于层。对我的第二个问题有什么建议吗?
SpanishBoy '16

1
很少有一种“正确”的方法来构建体系结构,应该使用不同的元参数来测试该结构,并且应该以结果为导向(包括培训时间/内存使用等对资源使用的任何限制)。对于#2,您可以只具有两个具有与现在类似的softmax的输出,也可以具有一个输出带有一个输出层,activation='sigmoid'并且loss='binary_crossentropy'
Neil Slater

activation='sigmoid'输出层中。隐藏的层可以像'relu'您喜欢的一样保留(尽管我可能会从'tanh'这个问题开始,这是个人喜好,理论上很少提供支持)
Neil Slater

Answers:


35

activation='softmax'在最后一层的选择和的编译选择loss='categorical_crossentropy'对于模型预测多个相互排斥的类都很有帮助。

关于更一般的选择,很少有“正确”的方法来构造体系结构。相反,这应该是您使用不同的元参数(例如,图层大小,图层数,退出量)测试的东西,并且应该是结果驱动的(包括您可能在训练时间/内存上对资源使用的任何限制)使用等)。

使用交叉验证集可帮助选择合适的体系结构。完成后,为了更准确地衡量模型的总体性能,您应该使用单独的测试集。为此,应使用从您的培训集中独立于简历集的数据。合理的划分可能是60/20/20 train / cv / test,具体取决于您拥有多少数据以及需要多少才能报告准确的最终数字。

对于问题2,您可以只具有两个输出,其softmax最终值与现在类似,也可以具有带有一个输出的最终值activation='sigmoid'loss='binary_crossentropy'

纯粹从可能使用此数据的直觉出发,我建议尝试'tanh''sigmoid'在隐藏层中进行激活,而不是'relu',我还建议增加隐藏神经元的数量(例如100)并减少丢失量(例如0.2)。警告:直觉对神经网络架构的感觉并不科学。试试看,然后测试。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.