一、神经网络
以某个指标为线索寻找最优权重参数
损失函数可以是任意函数
- 有几个函数人们用的比较多
二、均方误差函数
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
- 但是根据神经网络输出的不同
- 损失函数的值也相应不同
所以损失函数就是用来评价神经网络性能的指标