Я играл с функциями активации для бинарной модели классификации в кератах.Например, я реализовал модель logit с Dense(1, activation='sigmoid')
и внедрил модель cloglog следующим образом:
import numpy as np
from keras.layers import Input, Dense
from keras.models import Model
import keras.backend as K
np.random.seed(42)
# Some Data
nrows = 1000
ncols = 20
X = np.random.rand(nrows, ncols) - 0.5
CF = np.random.rand(ncols, 1)
y = np.sign(X.dot(CF))
y[np.where(y == -1)] = 0
# cloglog model
def cloglog(x):
return -(K.exp(-K.exp(x))-1)
input = Input(shape=(ncols,))
output = Dense(1, activation=cloglog)(input)
model = Model(input, output)
model.compile(loss='binary_crossentropy', optimizer='adam')
model.fit(X, y, epochs=10)
Я бы очень хотел попробовать пробную модель, но я 'Я изо всех сил пытаюсь реализовать функцию связи, используя только операции, доступные в keras.backend
.
Возможно ли это?Или мне действительно нужны функции распределения (pdf / cdf), доступные в scipy
?