Категориальная реализация функции кросс-энтропийной потери Python - PullRequest
0 голосов
/ 31 октября 2019

Я реализовал Кросс-Энтропию и ее градиент в 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)? Градиент правильный?

...