Я тренирую нейронную сеть с одним скрытым слоем, и все время получаю странное поведение: Val_Accuracy
больше Training_Acc
, но Val_Loss
меньше Training_Loss
.Я не понимаю, на что это может указывать.
Я делаю классификацию по 5-классовой цели, работая с sparse_categorical_crossentropy
в качестве потерь и sparse_categorical_accuracy
в качестве дополнительной метрики.(Да, моя цель представляет собой целое число, оно не однократное - «разреженный» - это правильно.)
Я много пытался настроить гиперпараметры;особенно LR и количество узлов.
Поскольку я использую Dropout, я знаю, что точность / потеря тестирования может быть лучше, чем обучение.Вопрос о различии двух метрик.
opti = tf.keras.optimizers.Adam(lr=0.00001)
batch = 100
mindelta = 0.0001
lr_red_factor = 0.4
acti = 'relu'
actilast = 'softmax'
kern = 'he_normal'
bias = 'zeros'
droprate = 0.4
target = 5
loss = 'sparse_categorical_crossentropy'#'mean_squared_error'
metrics = ['sparse_categorical_accuracy']
nodesperlayer = 30
howmanyhidden = 1
patience = (4000/(nodesperlayer*howmanyhidden))/batch
model = models.Sequential()
first = True
for _ in range(howmanyhidden):
if first:
model.add(layers.Dense(nodesperlayer, use_bias=True,
kernel_initializer=kern,
bias_initializer=bias,
input_dim=feats.columns.shape[0]))
first=False
else:
model.add(layers.Dense(nodesperlayer, use_bias=True,
kernel_initializer=kern,
bias_initializer=bias))
model.add(layers.BatchNormalization(axis=-1, momentum=0.99,
epsilon=0.001, center=True,
scale=True, beta_initializer='zeros',
gamma_initializer='ones',
moving_mean_initializer='zeros',
moving_variance_initializer='ones',
beta_regularizer=None,
gamma_regularizer=None,
beta_constraint=None,
gamma_constraint=None))
model.add(layers.Activation(acti))
model.add(layers.Dropout(droprate)) #todo seed?
model.add(layers.Dense(target, activation = actilast))
model.compile(loss=loss, metrics=metrics, optimizer=opti)
только один из множества примеров, чтобы прояснить, что я имею в виду:
потеря: 1.1345 - sparse_categorical_accuracy: 0.5586 - val_loss: 1.0571 - val_sparse_categorical_accuracy: 0.6028