Я реализовал Кросс-Энтропию и ее градиент в Python, но я не уверен, правильно ли это. И я также хочу попросить хорошее решение, чтобы избежать np.log (0). Моя реализация для нейронной сети
yEst = np.array([1, 6, 3, 5]).T # output of a softmax function in last layer
y = np.array([0, 6, 3, 0]).T
def crossEntropy(y, yEst):
return - np.sum(y*np.log(yEst),axis =0)
def crossEntropyDerivative(y, yEst):
m = y.shape[0]
c = np.sum(yEst - y, axis = 0)
return c/m
Как я могу избежать log (0)? Градиент правильный?