【发布时间】:2019-12-27 09:48:56
【问题描述】:
我正在尝试用一些简单的数据测试 TensorFlow tf.estimator.DNNClassifier
X = [[1,2], [1,12], [1,17], [9,33], [48,49], [48,50]]
Y = [ 1, 1, 1, 1, 2, 3 ]
分类器有 2 个输入:x1,x2;并且具有这种形状:
#these 4 layers supposed to be able to do even 4-time linear separation
hidden_units = [2000,1000,500,100]
n_classes = 4
但是,事情并没有如期进行,网络无法适应。准确度很快就达到了 8.33 (=5/6) 但后来卡住了。损失收敛到水平线而不是零线。
上面提供的数据是 2 次线性可分的(右键单击图像以在新选项卡中打开):
即使网络跑到 10,000 步,它仍然卡住,我猜它卡住了,因为它无法分离 2 个值:Y=2 和 Y=3,是这样吗?以及如何使网络适合上述数据。
【问题讨论】:
-
首先要做的是对输入数据进行预处理。重要的是如何将整数值映射到从 0 到 1 的神经元激活信号。第二步是将神经元的数量减少到更小的数量。在第一层使用 2000 个神经元来计算一个简单的映射是巨大的工程。
-
我已经尝试了这两种方法,标准化输入和减少神经元,但没有好的结果。
标签: python tensorflow machine-learning artificial-intelligence linear-regression