Я обучаю глубокую нейронную сеть для задачи регрессии (прогнозирование усталостной долговечности материалов - log10(Циклы)) с использованием табличных данных. Я наблюдаю много шума и регулярные всплески как на кривых потерь при обучении, так и на валидации (MSE).
Некоторая информация о модели и наборе данных:
- Размер набора данных: около 2500 выборок, 64% обучение, 16% проверка, 20% тестирование.
- Цель: log10(Cycles).
- Особенности: Категориальные переменные были закодированы методом горячего кодирования. Непрерывные переменные (такие как напряжение, деформация, модуль упругости) масштабировались с помощью StandardScaler. Недостающие значения были заполнены с использованием медианного вменения.
- 4 скрытых плотных слоя, по 256 нейронов каждый.
- Активация: ReLU.
- Выходной слой: 1 нейрон, линейная активация.
- Оптимизатор: Адам
- Скорость обучения: 5e-05
- Размер пакета: 128
- Потери/показатель: среднеквадратическая ошибка (MSE)
Код: Выделить всё
from tensorflow import keras
from keras.models import Sequential
from keras.layers import Dense
from keras.callbacks import EarlyStopping
n_features = X_only_train_normalizado.shape[1]
n_neurons = 256
n_layers = 4
model = Sequential()
model.add(keras.Input(shape=(n_features,)))
for _ in range(n_layer):
model.add(Dense(n_neurons, activation='relu',kernel_initializer='he_normal'))
model.add(Dense(1, activation='linear', kernel_initializer='glorot_uniform'))
model.compile(
optimizer=keras.optimizers.Adam(learning_rate=5e-05),
loss='mean_squared_error',
metrics=['mae', 'mape']
)
early_stop = EarlyStopping(
monitor='val_loss',
patience=10000,
restore_best_weights=True,
verbose=2
)
history = model.fit(
X_only_train_normalizado, y_only_train,
epochs=10000,
batch_size=128,
validation_data=(X_val_normalizado, y_val),
callbacks=[early_stop],
verbose=2
)
Некоторые примеры:


Единственная проблема, о которой я могу думать, это серьезная чрезмерная параметризация, которая может заставлять сеть запоминать шум, но я использую параметры, полученные в результате анализа оптимизации Optuna.
Любые советы о том, как решить эту проблему или какие-либо методы, чтобы найти причину этого, будут оценены.
Мобильная версия