创建一个产生一组可能输出的人工神经网络

数据挖掘 机器学习 神经网络 分类 张量流 scikit-学习
2022-03-12 12:33:25

我是机器学习的新手,正在努力创建一个 ANN,它将每个观察值分类为某个值。到目前为止,我主要使用 sigmoid 函数来获得观察的概率(真/假或二进制输出)。

在这种情况下,我希望将每个观察值分类为 5 个值之一:0、1、2、3、4。我正在使用 sklearn 库的 StandardScalar 函数来缩放输入数据。建议在以下方面:

  1. 缩放输出数据的最佳方法,以及
  2. 用于输出层的适当激活函数。

谢谢!

1个回答

您不需要缩放输出数据。对于使用 ANN 的分类,最好的激活是 softmax 函数:

f(x) = e^x_i / sum e^x_j

它通过应用指数函数元素来归一化输入向量,然后除以总和。这会产生一个离散的概率分布。

然后你的输出层应该有 5 个输出神经元,应用 softmax,你会得到集合 [0, 1, 2, 3, 4] 上的离散概率分布。然后你不需要对数据进行规范化,只需进行一次热编码即可。请注意,这可能因使用的框架而异。