交叉熵误差(cross entropy error):
- log表示ln
- yk:神经网络输出
- tk:正确解的标签
- tk一般采用one-hot表示,这样乘积的结果由正确解对应的值所决定
- yk越小,E越大
cross_entropy_error.py
# oding:utf-8
import numpy as np
def cross_entropy_error(y, t):
delta = 1e-07 # 设置一个微小值,避免对数的参数为0导致无穷大 1*10的负7次方
return - np.sum(t * np.log(y + delta)) # 注意这个log对应的是ln
t = [0, 0, 1, 0, 0, 0, 0, 0, 0, 0] # 设置‘2’为正确解标签
y = [0.1, 0.05, 0.6, 0.0, 0.05, 0.1, 0.0, 0.1, 0.0, 0.0]
print(cross_entropy_error(np.array(y), np.array(t))) # 0.510825457099338
y = [0.1, 0.05, 0.1, 0.0, 0.05, 0.1, 0.0, 0.6, 00, 0.0]
print(cross_entropy_error(np.array(y), np.array(t))) # 2.302584092994546