gpt4 book ai didi

java - Softmax 激活实现

转载 作者:行者123 更新时间:2023-12-02 19:42:51 25 4
gpt4 key购买 nike

我目前正在用 Java 实现我自己的神经网络。我已经实现了一些常见的激活函数,例如 Sigmoid 或 ReLU,但我不知道如何实现 Softmax。

我想要一个像这样的方法

private double softmax(double input) {
double output = ???;
return output;
}

有什么想法可以实现吗?我还需要为我的学习算法提供 softmax 的导数。

最佳答案

Softmax没有获得单个输入值。它将当前 NN 层的所有值的 vector 作为输入(我所说的“值”是指前一层的输出与核矩阵进行点积并添加到偏差中),并输出一个概率分布 所有值都落入 [0, 1] 范围内。

因此,例如,如果您的 NN 层有 5 个单元/神经元,则 softmax 函数将 5 个值作为输入,并将它们标准化为所有 5 个输出值都在 [0, 1] 之间的概率分布 使用以下公式:

enter image description here

对于我们的示例:K = 5 和 Z1、Z2、...、Z5 是输入 vector 。

下面是实现 softmax 的示例 Java 代码:

private double softmax(double input, double[] neuronValues) {
double total = Arrays.stream(neuronValues).map(Math::exp).sum();
return Math.exp(input) / total;
}

关于java - Softmax 激活实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59841452/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com