日志

27_动手实现TensorFlow–实现梯度下降

上节实现了误差计算之后我们已经实现所有前向的计算步骤。下面我们将使用计算出的误差进行反向的操作,也就是反向传播。在这个过程中,神经网络计算权重该如何修改才能够使得误差最小。我们通常使用梯度下降法实现对权重的修改。

26_动手实现TensorFlow–Cost or Lost

通过之前学习我们知道,我们通过权重和偏置(weights and biases)去计算node的输出,然后通过激活函数去将输出归类。神经网络通过输入经过标记的数据进行训练,不断修改权重和偏置提高输出的精度。当前有多种办法去衡量一个神经网络的输出精度,这些办法都以网络产生尽可能接近已知正确值的值的能力为核心。人们使用不同的名称表示精确度测量,通常将其称为损失(Lost)或成本(Cost)。

24_动手实现TensorFlow–线性变换Linear_Transform

经过上一节课的完善,我们的MiniFlow已经可以像神经网络一样接受输入数据,产生输出数据了。但是神经网络还有一个重要特征就是可以通过训练逐渐提升精度。但我们只有一个Add节点,这是无法提升精度的。为了达到提升精度的目的,我们引入一个比Add节点更有用的节点类型:线性节点。

22_动手实现TensorFlow–MiniFlow的架构

本文实现了神经网络MiniFlow的基础架构:
1. 通用节点类node class,包含输入、输出、值、前向传播函数
2. 输入节点类input class,为node的子类,只保存数据,不做计算
3. 加法节点类add class,为node的子类,做累加计算

21_自己的TensorFlow–MiniFlow

在这个章节我们将创建自己的深度学习框架,自己的TensorFlow。使用计算图和反向传播,我们可以创建自己的节点正确计算导数。更重要的是我们将可以深入理解计算图的机理与实现过程。

19_神经网络–反向传播

上节我们认识到增加隐藏层可以解决更为复杂的非线性问题,也计算出了各隐藏层节点的输入与输出值。现在问题来了,我们要怎样才能够让这种多层感知器的网络进行权重的学习呢?本节将介绍深度学习的基础:反向传播

18_神经网络–多层感知器

之前的例子我们通过XOR(异或门)的感知器结构显示了通过增加神经网络层数,可以用于解决非线性问题。本节我们讲解多层感知器构造及如何实现。