第四章
- 机器学习中使用的数据集分为训练数据和测试数据
- 神经网络用训练数据进行学习,并用测试数据评价学习到的模型的泛化能力
- 神经网络的学习以损失函数为指标,更新权重参数,以使损失函数的值减小
- 利用某个给定的微小值的差分求导数的过程,称为数值微分
- 利用数值微分,可以计算权重参数的梯度
- 数值微分虽然费时间,但实现起来简单。下一章中要实现的稍微复杂一些的误差反向传播法可以高速的计算梯度
损失函数
- 损失函数是表示神经网络性能的“恶劣程度”的指标,“使性能的恶劣程度达到最小”和“使性能的优良恶劣程度达到最大”是等价的
- 这个损失函数可以是任意函数,但一般用均方误差和交叉熵误差等(二者都是数值越小越好)(参数都是监督数据和输出信号)
均方误差mean_sqared_error
(输出-监督数据)平方的总和 / 2
def mean_sqared_error(y, t):
return 0.5 * np.sum((y*t)**2)
交叉熵误差cross_entropy_error
[ 监督数据*ln(输出) ]的总和 取反
def cross_entropy_error(y, t):
delta = 1e-7
return -np.sum(t * np.log(y + delta))
这里的delta作为一种保护性对策,主要是预防 y为0时,对数为负无限大 的情况