我已经建立了一个神经网络模型,有3个类。我知道分类过程的最佳输出是类的布尔值1和其他类的布尔值,例如某个类的最佳分类结果,其中classifire的输出导致这些数据的数量是多少属于这个类是向量中的第一个元素是[1,0,0]。但测试数据的输出不会像那样,而是像[2.4,-1,.6]这样的有理数,那么如何解释这个结果呢?如何确定测试数据属于哪个类?
我试图取绝对值并将最大元素转为1而将另一个元素转为零,这是正确的吗?
答案 0 :(得分:0)
学习者。
看起来你的神经网络设计不好。
无论你的结构是输入 - 隐藏 - 输出 - 层的数量,当你做一个多分类问题时,你必须确保你的每个输出神经元正在评估一个单独的类,即,每个它们都有一个有界输出,在这种情况下,介于0和1之间。使用输出层上几乎任何定义的函数来执行此操作。
Nevertheles,为了使神经网络正常工作,你必须强烈记住,每一个神经元循环 - 从输入到输出 - 都作为分类器运行,这就是,它们定义了你的区域输入空间将被分类。
在这个框架下,每个神经元对NN定义的非线性扩展具有直接可解释的意义,特别是当隐藏层很少时。这通过神经网络的一般表达来确保:
Y_out=F_n(Y_n-1*w_n-t_n)
...
Y_1=F_0(Y_in-1*w_0-t_0)
例如,使用径向基础神经元-e.e. F_n=sqrt(sum(Yni-Rni)^2)
和w_n=1
(身份):
Yn+1=sqrt(sum(Yni-Rni)^2)
dn
- 昏暗的球形 - dn
n-1
图层 - 聚类分类的维度是从第一层引出的。类似地,诱导椭圆簇。当在球形/椭圆形簇的结构下添加两个径向基础神经元层时,引起球形/椭圆形簇的联合和交叉,三层是前一个的联合和交叉,依此类推。 / p>
使用线性神经元时-e.e。 F_n=(.)
(同一性),线性分类器被诱导,即输入空间除以dn
- 昏暗的超平面,当添加两层时,引入超平面的联合和交叉,三层是联合以及之前的交叉点,等等。
因此,您可以意识到每层神经元的数量每个类别的分类数。因此,如果空间的几何形状是-lets,这实际上是图形化 - A类的两个集群,B类的一个集群和C类的三个集群,每层至少需要六个神经元。因此,假设您可以期待任何事情,您可以将每层每类的n
个神经元视为一个非常粗略的近似值,即每层每层n
个神经元到n^2
个最小神经元。可以根据分类的拓扑来增加或减少该数量。
最后,这里最好的建议是n输出(类),r输入:
r
个良好的分类神经元,用于根据您的期望对空间进行分割,n
到n^2
个神经元,或根据问题的不足,n
个阈值网络,只有一个层,作为从0到1的连续函数(使代码清晰)干杯...