Получение разных результатов для идентичной модели FFNN в керасе - PullRequest
0 голосов
/ 29 июня 2018

Я строю модель на основе FFNN (Feed Forward Neural Network) с использованием Keras.

Я построил первую версию:

def mlp0(input_dim, loss):
    model = Sequential()
    model.add(Dropout(0.5, input_shape=(input_dim,)))
    model.add(Dense(512, activation='sigmoid'))
    model.add(Dense(1, activation='relu'))
    model.compile(loss=loss, optimizer=Adagrad())
    return model

Это дает мне очень хорошие результаты в к-кратной перекрестной проверке, но когда я прогнозирую набор проверки, производительность плохая.

Итак, я попробовал другую версию.

def mlp1(input_dim, loss):
    inputs = keras.Input(shape=(input_dim,))
    x = keras.layers.Dropout(0.5)(inputs)
    x = keras.layers.Dense(512, activation='sigmoid')(x)
    outputs = keras.layers.Dense(1, activation='relu')(x)
    model = keras.Model(inputs, outputs)
    model.compile(loss=loss, optimizer=Adagrad())
    return model

Эта вторая модель дает худшие результаты при перекрестной проверке, но результаты совместимы с результатами в наборе проверки.

На мой взгляд, это идентичные модели, построенные по-разному, но по какой-то причине они дают мне разные ответы. Что я делаю не так?

Edit:

Эти модели ведут себя одинаково:

def mlp0(input_dim, loss):
    model = Sequential()
    model.add(Dense(512, activation='sigmoid',  input_shape=(input_dim,), kernel_regularizer=regularizers.l2(0.01)))
    model.add(Dense(1, activation='relu', kernel_regularizer=regularizers.l2(0.01)))
    model.compile(loss=loss, optimizer=Adam())
    return model

import keras
from keras import regularizers

def mlp1(input_dim, loss):

    inputs = keras.Input(shape=(input_dim,))
    x = keras.layers.Dense(512, activation='sigmoid', kernel_regularizer=regularizers.l2(0.01))(inputs)
    outputs = keras.layers.Dense(1, activation='relu', kernel_regularizer=regularizers.l2(0.01))(x)
    model = keras.Model(inputs, outputs)
    model.compile(loss=loss, optimizer=Adam())
    return model

Это заставляет меня думать, что в фазе прогнозирования есть улов с выпадением

...