Я пытаюсь обучить модель данных из задачи Хиггса Босона на kaggle. Первое, что я решил сделать, это создать простую модель keras. Я пробовал различное количество и ширину слоев, разные функции затрат, различные оптимизаторы, различные функции в нейронах, но точность в наборе тренировок всегда находится в диапазоне 0,65-0,7. Я не понимаю, почему. Вот мой пример модели, которая работала так странно:Точность не повышается на модели keras
from keras.layers import Dense, merge, Activation, Dropout
from keras.models import Model
from keras.models import Sequential
from keras.optimizers import SGD
model = Sequential()
model.add(Dense(600, input_shape=(30,),activation="relu"))
model.add(Dropout(0.5))
model.add(Dense(400, activation='relu'))
model.add(Dropout(0.5))
model.add(Dense(100, activation='relu'))
model.add(Dropout(0.5))
model.add(Dense(1, activation='sigmoid'))
sgd = SGD(lr=0.01, decay=1e-6)
model.compile(optimizer='rmsprop',loss='binary_crossentropy',metrics=['accuracy'])
model.fit(train,labels,nb_epoch=1,batch_size=1)
Я также попытался более крупные модели и получили такую точность тоже. Пожалуйста, скажите мне, что я делаю неправильно.
EDIT
Я попытался тренировки эту модель с 100 эпох и размер партии 0f 100 и снова получил убыток, равный 4.9528 и точность 0.6924. И он всегда выводит ноль для каждого примера.
Ваша правка комментарий показывает, что ваши данные не сбалансированы, и это проблема. Либо балансируйте оба класса в ваших данных, либо используйте class_weight в функции подгонки. –