Neural network Keras多类网络的自定义目标函数

Neural network Keras多类网络的自定义目标函数,neural-network,tensorflow,keras,Neural Network,Tensorflow,Keras,我正在制作一个神经网络,将多个蓝牙RSSI值分类到特定位置 例如,这是来自多个蓝牙接收器的标准化RSS输入: [0.1, 0.6, 0, 0, 0, 0, 0, 0, 0.8, 0.6599999999999999, 0.9, 0.36317567567567566] 这就是输出,将其分类为一个位置: [0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0] 这就是模型: # create model model = Sequential() # Input layer has

我正在制作一个神经网络,将多个蓝牙RSSI值分类到特定位置

例如,这是来自多个蓝牙接收器的标准化RSS输入:

[0.1, 0.6, 0, 0, 0, 0, 0, 0, 0.8, 0.6599999999999999, 0.9, 0.36317567567567566]
这就是输出,将其分类为一个位置:

[0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0]
这就是模型:

# create model
model = Sequential()

# Input layer has 12 inputs and 24 neurons
model.add(Dense(24, input_dim=12, init='normal', activation='relu'))

# Output layer, has 11 outputs
model.add(Dense(11, init='uniform', activation='sigmoid'))

# Compile model
model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])
我用3226个训练样本对网络进行训练,然后用263个额外样本对网络进行测试

在前50个时代之后,训练样本的准确率约为85%。测试样本的准确度约为74%

但是如果我继续训练,测试样本的准确性实际上会下降。再进行50次测试,训练样本的准确率将达到88%,测试样本的准确率将达到62%

我尝试过多个目标函数,但结果是一样的:我训练得越多,结果就越糟

这可能是由于损失函数试图太二进制,也许


如果正确的类具有最高的值,是否有一个损失函数可以积极地奖励结果?

尝试降低Adam优化器的学习率。同时尝试获取更多数据。尝试降低Adam优化器的学习率。另外,还要尝试获取更多数据。