简单神经网络二分类问题训练出错,精确度不变
tensorflow吧
全部回复
仅看楼主
level 2
Cheahom 楼主
求大神帮助:
我是想训练一个简单的神经网络来做二分类问题。
数据是信用卡交易数据集,一共284807条数据,31列(前30列是交易信息,中间的V开头的事PCA降维出来的无具体含义,最后一列是0或1,表示这个交易记录是否是正常的)
我遇到的问题是训练过程中精确度不变(最后打印的),截图中训练批次和数量很少(循环200次,batchsize65),多的几千也试过,精度都不变,感觉就是没学进东西去,不知道是哪里错了。我后来把计算精度的那个式子feed_dict了一个正负样本数一比一的小数据集,然后精确度始终只有0.5,那应该就是随机取的吧。神经网络用的是之前用过的一个能跑的,是那个泰坦尼克数据集的,转过来除了那个placeholder和最后的训练其他部分基本没变,按道理应该能用的都是二分类问题
有没有大神知道我是哪里弄错了 = =
我是在jupyter notebook里写的,只好截图发上来,如有需要可以再发代码和数据文件
2019年02月22日 03点02分 1
level 2
虽然在泰坦尼克数据集上没问题
但是这个数据集的特征的数值大小也应该考虑啊…
这就是饱和了… 不知道你解决了没
2019年02月26日 23点02分 2
预处理一下数据 用lrn
2019年03月02日 09点03分
@htdne- 数据集是老师给的让我们拿这个做的,说是已经降维过了让我们写神经网络做个预测,lrn我还不太懂[心碎][泪]自己再研究研究吧
2019年03月07日 10点03分
@Cheahom 的确是饱和了,一般饱和和权重也有关系。为什么不试试用截断的高斯分布 初始化权重呢 标准差设置为0.01。。我做CNN的识别狗的种类的时候,为了图简单 网络的层 用了比较高层的API 结果也是跑了几百轮loss就在一个数值 不动了,后来发现 是权重的问题,解决办法就是自定义那些层
2019年03月07日 10点03分
level 2
是不是交叉熵的问题
2019年02月28日 15点02分 3
感觉交叉熵没错诶,标准的二分类问题,,,用那个(真值-预测值)**2我也试过的也不行,毕竟就是0和1
2019年03月07日 10点03分
level 2
weight= tf.Variable(tf.truncated_normal([‘input_size’,‘num_class’],stddev=0.01))
bias = tf.Variable(tf.constant(0.1,shape=[’num_class‘]))
prediction = tf.nn.softmax(tf.matmul( ’input‘,weight)+bias)
接2楼
我的意思就是。。这样自定义一些层
然后 定义损失函数 再优化什么的就可以了。。。
总之。。。。我还是认为loss不变 就是权重初始化导致的饱和了。。。。
和交叉熵没关系的。
虽然softmax sigmoid自身也会饱和,但上面你是用了交叉熵损失 其log和softmax sigmoid中的 exp函数 抵消掉了。
而你的数据集 是固定的,所以问题也只能出现在 权重初始化上面
2019年03月07日 10点03分 4
如果可以的话,可以把数据集给我,我跑一下 然后反馈给你结果。。。。。。。。。。
2019年03月07日 10点03分
大佬,也是二分类问题,损失值一直在下降,但是精度一直保持一个固定值,调参后精度下降,之后上升到那个固定值又不变了,是什么问题呀?
2020年03月30日 02点03分
level 1
我也出现了类似的情况,请问解决了吗[委屈]
2019年04月19日 08点04分 5
我后来用keras写网络做这个数据能跑。。但是就没有那个next_batch的处理了。。对于这种样本不均衡数据的处理还比较生疏,不知道咋下手
2019年04月20日 03点04分
level 1
你好,请问这个问题最后解决了吗?
2021年09月27日 08点09分 6
1