Проблема с уменьшением потерь нейронной сети - PullRequest
0 голосов
/ 29 мая 2020

У меня довольно большие данные и проблема с двоичной классификацией, которую я хочу обучить с помощью нейронной сети, я использовал более 10 комбинаций для моей структуры NN, варьирующейся от 3 до 20, я также пытался перестроить свою модель на меньшем образце с целью отладки, но мои потери нисколько не уменьшаются !! Он застревает на 0,4 после количества эпох каждый раз с каждой комбинацией и каждым размером выборки! Но странно то, что точность тоже не снижается и она около 0,8, что очень неплохо! Поскольку я новичок в работе с сетевыми узлами, есть ли предложения по решению проблемы? Я использую библиотеки последовательных моделей keras.

вот моя нейронная сеть:

#Normalizing the data
from sklearn.preprocessing import StandardScaler
sc = StandardScaler()
X = sc.fit_transform(X)
print(X)

from keras import utils
y = utils.to_categorical(y)
print(y)

from sklearn.model_selection import train_test_split
X_train,X_test,y_train,y_test = train_test_split(X,y,test_size = 0.9)

#Dependencies
import keras
from keras.models import Sequential
from keras.layers import Dense
# Neural network
model = Sequential()
model.add(Dense(24, input_dim=25, activation='relu'))
model.add(Dense(22, activation='relu'))
model.add(Dense(20, activation='sigmoid'))
model.add(Dense(18, activation='selu'))
model.add(Dense(18, activation='sigmoid'))
model.add(Dense(16, activation='relu'))
model.add(Dense(16, activation='sigmoid'))
model.add(Dense(14, activation='tanh'))
model.add(Dense(12, activation='relu'))
model.add(Dense(10, activation='sigmoid'))
model.add(Dense(8, activation='sigmoid'))
model.add(Dense(8, activation='selu'))
model.add(Dense(7, activation='relu'))
model.add(Dense(5, activation='relu'))
model.add(Dense(4, activation='sigmoid'))
model.add(Dense(2, activation='sigmoid'))
model.add(Dense(2, activation='sigmoid'))

opt = keras.optimizers.Adam(learning_rate=0.01)
model.compile(loss='categorical_crossentropy', optimizer = opt , metrics=['accuracy'])

history = model.fit(X_train, y_train, epochs=5000, batch_size=1000)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...