小编mel*_*ose的帖子

不平衡多类多标签分类的神经网络

如何处理在训练神经网络时结果不平衡的多标签分类?我遇到的解决方案之一是惩罚罕见标记类的错误.以下是我如何设计网络:

类数:100.输入层,第一隐藏层和第二层(100)与辍学和ReLU完全连接.第二个隐藏层的输出是py_x.

cost = tf.reduce_mean(tf.nn.sigmoid_cross_entropy_with_logits(logits=py_x, labels=Y))
Run Code Online (Sandbox Code Playgroud)

其中Y是一个热编码的修改版本,其值为1到5,为样本的所有标签设置.最常用标签的值为~1,最稀有标签的值为~5.该值不是离散的,即,在一次热编码中要设置的新值是基于公式的

= 1 + 4*(1-(percentage of label/100))
Run Code Online (Sandbox Code Playgroud)

例如:<0,0,1,0,1,....>将转换为类似<0,0,1.034,0,3.667,...>的内容.注意:仅更改原始矢量中的值1.

这样,如果模型错误地预测罕见标签,则其错误将是高的,例如:0.0001-5 = -4.9999,与非常频繁的标签的错误标记相比,这将反向传播更重的错误.

这是惩罚的正确方法吗?有没有更好的方法来处理这个问题?

machine-learning neural-network tensorflow

8
推荐指数
1
解决办法
1113
查看次数

CMOCKA / Linker:“包装”许多功能

我最近遇到了 C 的“ cmocka ”模拟库。我能够模拟单个函数并成功测试调用者函数。现在我需要它来将它用于我正在开发的项目,该项目需要模拟大量函数。如何将我想要模拟的所有函数传递给 Linker 的 'wrap' 参数?是否可以将函数名称存储在文件中,以便链接器可以获取它?

c linker unit-testing cmocka

2
推荐指数
1
解决办法
1283
查看次数