损失函数_均方误差

一、神经网络

以某个指标为线索寻找最优权重参数

损失函数可以是任意函数

  • 有几个函数人们用的比较多

二、均方误差函数

2.1 数字意义解读

  • yk 表示神经网络的输出
  • tk 表示监督数据
  • k表示数据的维度

2.2 表示出来

# ==定义好均方误差函数==
def mean_squared_error(y, t):
    return 0.5 * np.sum((y - t) ** 2)

三、两个用例测试

# 来点假数据
y = [0.1, 0.05, 0.6, 0.0, 0.05, 0.1, 0.0, 0.1, 0.0, 0.0]  # 表示神经网络的输出,结果值就是概率
t = [0, 0, 1, 0, 0, 0, 0, 0, 0, 0]  # 表示监督数据,将正确的解的标签打在这个数组上

# 调用均方误差函数试试看
# 在这里的假数据中,2是正确解,测试两个用例,这里第一个表示神经网络的跑出来的结果,跑出来几乎正确,损失函数的值也很高
result = mean_squared_error(np.array(y), np.array(t))
print(result)

# 假如神经网络跑出来的结果中7的概率是最高的,现在试试看
y = [0.1, 0.05, 0.1, 0.0, 0.05, 0.1, 0.0, 0.6, 0.0, 0.0]  # 表示神经网络的输出,结果值就是概率
result=mean_squared_error(np.array(y), np.array(t))
print(result)

D:\ANACONDA\envs\pytorch\python.exe C:/Users/Administrator/Desktop/DeepLearning/ch04/wgw_test.py
0.09750000000000003
0.5975

Process finished with exit code 0

3.1 结果反思

在上述两个的测试结果中

  • 正确的解标签始终是2
  • 但是根据神经网络输出的不同
  • 损失函数的值也相应不同

所以损失函数就是用来评价神经网络性能的指标

你可能感兴趣的:(深度学习,python,深度学习)