【问题标题】:create deep network in matlab with logsig layer instead of softmax layer在 matlab 中使用 logig 层而不是 softmax 层创建深度网络
【发布时间】:2018-12-26 18:21:29
【问题描述】:

我想创建一个深度分类网络,但我的类不是互斥的(这就是 sofmaxlayer 所做的)。 是否可以定义一个非互斥的分类层(即,一个数据可以在多个类中)? 一种方法是在分类层中使用logsig函数,而不是softmax,但我不知道如何实现......

【问题讨论】:

    标签: matlab deep-learning softmax


    【解决方案1】:

    如您所知,在 CNN 中,您可以在最后一层有多个类。但是,如果我正确理解您在最后一层的需求,则输出是在一个数字范围内,而不是每个班级的 1 或 0。这意味着你需要回归。如果您的标签支持此任务,那没关系,您可以使用回归来完成,就像本地化边界框回归中发生的那样。最后一层不需要soft-max。只需使用能够为您的任务产生足够输出的其他激活函数。

    【讨论】:

    • 我虽然关于回归层,但我还不太确定。我的每个类的输出应该是 0 到 1 之间的一个数字,但与 softmaxLayer 不同,其中每个类的输出之和为 1(因此你有互斥的类),我没有这个限制(制作一个输入可能不止一类)。我可以使用延时网络来实现这一点,但输入信号的复杂性告诉我,深度网络应该是最好的。
    • 所以你可以简单地改变最后一层的激活函数。消除 Soft-max 并将其替换为 Sigmoid。 Sigmoid 产生一个介于 0 和 1 之间的输出,并且每个输出都是独立的。
    • 我会这样做,但 matlab 没有 logigLayer,这就是我问的原因
    • 我认为你不需要像 Soft-max 层这样的新层(logsigLayer)。您需要给出全连接层的输出并在 matlab sigmoid 函数中转发它们( y = sigmf(x,[a c]) )。我希望它的工作
    • 就是这样,matlab需要一个输出层(目前只有softmax可用)。否则训练有错误...
    猜你喜欢
    • 2020-10-16
    • 2018-12-04
    • 2017-03-01
    • 1970-01-01
    • 2016-10-02
    • 1970-01-01
    • 2017-01-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多