9-1 从零开始训练网络

目录

  1. 搭建网络基本架构
  2. 构建训练网络
  3. 启动训练网络并测试数据

1 搭建网络基本架构

要完成的功能

我们的代码要导出三个接口,分别完成以下功能:

  1. 初始化 initialization,设置输入层,中间层,和输出层的节点数。
  2. 训练 train 根据训练数据不断的更新权重值
  3. 查询 query,把新的数据输入给神经网络,网络计算后输出答案。(推理)

完成以上代码后,神经网络的大体框架就完成了,我们留下最重要的train函数,也就是通过训练样本训练链路权重的流程到下一步实现。

2 构建训练网络

1 实现网络训练功能

自我训练过程分两步:

  1. 第一步是计算输入训练数据,给出网络的计算结果,这点跟我们前面实现的query()功能很像。 ——计算结果
  2. 第二步是将计算结果与正确结果相比对,获取误差,采用误差反向传播法更新网络里的每条链路权重。 ——更新权重

2 获取训练数据及预处理

接下来我们就得拿实际数据来训练我们的神经网络了。
我们要做的是读取训练数据,以及数据的预处理(归一化)

3 启动训练网络并测试数据

  • 网络的最终目标是,输入一张手写数字图片后,网络输出该图片对应的数字。
  • 由于网络需要从0到9一共十个数字中挑选出一个,于是我们的网络最终输出层应该有十个节点,每个节点对应一个数字。
  • 假设图片对应的是数字0,那么输出层网络中,第一个节点应该输出一个高百分比,其他节点输出低百分比,如果图片对应的数字是9,那么输出层最后一个节点应该输出高百分比,其他节点输出低百分比。

版权声明:本文为Jamie_Shu原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。