基于Weka的神经网络定性分类



我有一个训练集,其中输入向量是速度,加速度和转角变化。输出是一个清晰的类——来自给定集合{休息、散步、跑步}的活动状态。例如,对于输入向量[3.1 1.2 2]->运行;[2.1.1]-->步行等等。

我正在使用weka开发一个神经网络模型。我将输出定义为清晰的输出(或者更确切地说是定性的输出——分类值)。模型经过训练后,可以对测试数据进行比较公平的分类。

我想知道内部过程(映射函数)是如何发生的?定性输出状态是否在模型内获得一些标称值,并且在处理后再次转换为分类数据?因为NN模型不能通过隐藏神经元将浮点输入值映射到分类数据,所以实际发生的情况是,尽管模型工作得很好。

如果模型将分类输出转换为标称输出,然后开始处理,那么它将分类值转换为任意数值的基础是什么?

是的,分类值通常被转换为数字,网络学习将输入数据与这些数字联系起来。然而,这些数字通常会进一步编码,而不是只使用单个输出神经元。对于无序标签,最常见的方法是为每个类别添加虚拟输出神经元,并使用1-of-C编码,以0.10.9作为目标值。输出使用赢者通吃范式进行解释。

仅使用一个神经元并对无序标签使用不同编号的类别进行编码通常会导致问题-因为网络将中间类别视为边界类别的"平均值"。但是,如果您有有序的分类数据,则有时可能需要这样做。

你可以在在线神经网络FAQ的这一部分找到这个问题的很好的解释。

神经网络的计算都发生在连续值上。为了使用离散输出进行多类分类,它的最后一层产生一个这样的值向量,每个类一个。要进行离散类预测,取该向量中最大元素的索引。

因此,如果一个四类分类网络的最后一层预测[0 -1 21 1],则向量的第三个元素最大,选择第三个类。通常,这些值也通过softmax激活函数约束形成概率分布。

相关内容

  • 没有找到相关文章

最新更新