日志

3-06 TensorFlow入门–随机梯度下降

前面我们反复提到了使用梯度下降法逐渐调整神经网络的权重和偏置,使得神经网络输出的loss逐渐逼近最小值。同时,用于训练网络的训练数据集越大越好,越能提高神经网络预测的精度。这就有一个矛盾:梯度下降法每计算一次需要输入全部的数据计算误差,再反向求导。模型越复杂,输入数据越多,计算量就会飙升。

3-05 TensorFlow入门–过拟合以及训练集的大小

分类器经常会使用大量数据进行训练,但训练总是会带来一些问题:分类器可以非常好的识别那些见过的数据,一旦输入全新的数据,预测结果会变得非常差。这种情况在分类器中是普遍存在的,这是因为分类器总是偏向于记住这些训练数据而不是记住特征后推理新数据。我们将在这个章节讨论如何解决这种过拟合问题,以及选取多大的训练集比较合适。

3-04 TensorFlow入门-输入与优化

经过上面几个章节的讲解,我们知道了使交叉熵减小的办法是梯度下降,需要对损失函数求导。我们掌握了导数工具之后将面临两个问题:我如何将图像输入到我的分类器中,以及我何时开始进行我的优化过程?本章节我们将会一一解答。

3-02 TensorFlow入门-训练分类器

分类事一种给定输入和标记的任务,如下图的字母,每个字母有一个标签,说明它是什么。典型情况下我们会有很多样本,我们把它归类后交给分类器学习。当出现了全新的样本时,分类器的目标是指出这个新样本属于哪一类。虽然机器学习不仅仅包含分类,但是分类是我们机器学习的基础,例如:排序,目标检测,回归等算法都需要基于分类。本文将实现使用TensorFlow训练识别手写数字0,1,2.

3-01 TensorFlow入门-Hello World

本节描述了TensorFlow的基本概念以及TensorFlow的基本用法。通过讲解可以了解到TensorFlow的基本计算过程以及constant/placeholder/session等概念,并了解加减乘除的用法

3-00 TensorFlow入门–安装TensorFlow

本章节开始学习如何使用TensorFlow解决实际问题。围绕MNIST数据集识别出图像中的字母作为目标。我们的目标是使神经网络自动识别出图像代表的是什么字母。首先我们在电脑上安装TensorFlow

29_动手实现TensorFlow–随机梯度下降

随机梯度下降(SGD)是梯度下降的一个版本,每一个回合都从所有数据集中随机选取一部分数据集输入到神经网络中。理想情况下我们应该把全部的数据集一次输入到神经网络中,但是在实际中由于内存的限制,我们无法实现这样的训练方式。SGD是梯度下降的一个近似值,当输入神经网络的批次越多,神经网络预测的结果越好。