Модель не сходится к распределению - PullRequest
0 голосов
/ 08 мая 2019

Я все еще новичок в керасе и играюсь с ним. Моя текущая цель - научить модель распределению. Для этого я выбрал функцию распределения numpy beta. Моя цель состояла в том, чтобы заставить модель изучить бета-распределение и сказать, будет ли значение внутри него или нет.

Итак, я сделал CSV с 5000 значениями бета / прямоугольных значений, которые модель должна извлечь из этого.

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

Я пытался изменить модель, но, похоже, это не сработало.

data_size = 5000

X = np.zeros((data_size, 2))
Y = np.zeros((data_size, 1))

for i in range(np.size(X, 0)):
    X[i][0] = np.random.beta(2, 2)
    X[i][1] = np.random.random()
    Y = X[i][0]

np.savetxt('\values.csv', X, delimiter=',')
dataset = np.loadtxt('\values.csv', delimiter=',')
X_train = dataset[:, 0:2]
Y_train = dataset[:, 1]

model = Sequential()

model.add(Dense(32, input_dim=2, activation='tanh'))
model.add(Dense(16, activation='tanh'))
model.add(Dense(1, activation='softmax'))

model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])

model.fit(X_train, Y_train, epochs=500, batch_size=50, verbose=1, validation_split=0.2)

1 Ответ

0 голосов
/ 09 мая 2019

Я перешел на GAN.Дискриминатор принимает распределение как inpu, в то время как генератор учится воспроизводить его.

Работает как чудо и требует всего несколько эпох, чтобы сходиться.

...