Chapter4 神经网络的学习

数据分为训练数据/监督数据(优化)和测试数据(评价泛化能力)。

(1)优化(optimization):用模型拟合观测数据的过程;
(2)泛化(generalization):数学原理和实践者的智慧,能够指导我们生成出有效性超出用于训练的数据集本身的模型。

损失函数(loss function) yk,tk(one-hot:正解1 其余0)

均方误差(mean squared error)

Chapter4 神经网络的学习
Chapter4 神经网络的学习
Chapter4 神经网络的学习

交叉熵误差(cross entropy error)

Chapter4 神经网络的学习
Chapter4 神经网络的学习

mini-batch学习 和chapter3 batch区分

1.在学习过程中,要对所有数据求损失函数,并求平均值。
2.但数据量可能很大,所以选一个mini-batch代表所有数据,求其损失函数。

3.Chapter3中的batch是优化过程中把所有训练数据分批训练,强调分批比一个一个更快。
而本章的mini-batch学习是直接抽一部分学,强调如果全学损失函数计算太复杂。

Chapter4 神经网络的学习

mini-batch版交叉熵误差的实现

适用于单个数据+批量数据
Chapter4 神经网络的学习

数值微分(numerical differentiation)

利用微小的差分求导数的过程叫数值微分。
导数的定义式是前向差分
而编程实现采用中心差分
Chapter4 神经网络的学习

偏导数 略

梯度下降法

方法

求梯度->沿着梯度走一段距离(更新参数)->求新梯度->再沿新梯度走一段距离…

性质

梯度下降法寻找的是梯度为0的点。
负梯度指向函数值减小最快的方向,但并非指向最小值处。
梯度为0的点:极小值、最小值、鞍点(某个方向看是最大值,另个方向看是极小值)
鞍点:

Chapter4 神经网络的学习

梯度的实现

参数x是Numpy数组
Chapter4 神经网络的学习

数学式 学习率(learning rate)η

Chapter4 神经网络的学习
学习率过大或者过小都不能得到好的结果
学习率这样的超参数需要人工设定

实现

Chapter4 神经网络的学习

神经网络的梯度

Chapter4 神经网络的学习

学习算法的实现

以两层神经网络,使用MNIST学习。
步骤:
1.mini-batch
2.计算梯度
3.更新参数
4.重复

因为mini-batch,所以称为随机梯度下降法(SGD:stochastic graident descent)

λ表达式
Chapter4 神经网络的学习

实现:两层神经网络的类

Chapter4 神经网络的学习
Chapter4 神经网络的学习

实现:mini-batch学习

Chapter4 神经网络的学习

进一步优化:基于测试数据的评价

需确认是否发生过拟合
过拟合(overfitting):训练数据中的数字图像能被辨别,但不在训练数据中的图像无法被辨别。即泛化能力差。

评价方法:每一个epoch记录下训练数据和测试数据的识别精度
epoch:一个epoch表示所有训练数据都被使用过一次时的更新次数
10000笔训练数据,随机打乱后按100/批依次分,则训练100次即可训练所有数据,100次就是一个epoch
Chapter4 神经网络的学习

上一篇:git "fatal: The remote end hung up unexpectedly" 解决方案


下一篇:git push 提交失败的几种原因