2.1 Tensorflow : MNIST可视化:降维探索[翻译]
英文链接 : http://colah.github.io/posts/2014-10-Visualizing-MNIST/#tsne_mnist_nice
从某些层面而言,没人能完全理解机器学习。
其实我们做的每一步都是基础操作,并不繁杂。然而人类固有的缺陷限制了我们对简单事物的理解。
人天生就能分辨2D与3D图像,再进一步,4D也勉为其难。但是机器学习需要我们在数千维度或者上万维度,乃至百万维度进行思维和想像,从而导致即使是简单的事物也无法理解。
对高维数据的直接处理就看似无望了?
通常情况下,在遇到无法直接处理的问题时,会借助些工具来解决它。高维数据的处理方式之一就是降维。该方法不仅具有成熟的理论,而且在高维数据可视化上也有诸多研究成果。
降维相关的技术已经成为机器学习和深度学习的基础,而笔者则是希望通过其可视化展示,更深入,更直接地理解神经网络。
因此,我们以降维技术作为入门第一课。 在此之前,我们需要准备一个数据集来支撑所有算法的验证。
MNIST
MNIST 是一个简单的数据集,里面包含了28*28像素的手写图片,比如以下这些:

每张图片的每个MNIST数据点都可以被看做是一个数组,其中每个元素代表一个像素点的灰度。例如,我们可将1做如下等效处理:

由于每张图都是28*28的像素点,对应的二维数组大小为28*28。我们将其处理成一个28*28=784维向量。向量中的每个元素代表每个像素点0至1的灰度值(intensity of pixels)。由此,MNIST可以看做是由784维向量组成的集合。
784维向量空间中并非所有的向量都是MNIST数字。在这些非MNIST数字空间中,其数据点具有典型的特征,为展示其特殊性,随机选择部分数据。在任一数据点中——即随机的28*28像素图,每个像素点都是随机的黑白灰,其结果类似于噪声。

包含MNIST数字的图片集合还是较为罕见。虽然MNIST数据点属于784维空间,但是,该集合仅仅包含于一个较小的子空间。再根据一些稍微复杂的理论,他们属于一个较小的低纬度的子空间。
对于MNIST和类似的数据,已经有诸多理论阐述它们到底是何种低维度结构。其中一个机器学习中广受欢迎的理论是流形假设(manifold hypothesis): MNIST是一个低维流形,通过其高维嵌入空间进行扫掠(sweeping)和形变(curving)。而另一个假设与拓扑数据分析相关,像MNIST这样的数据由具有触手状突起的斑点突出到周围空间组成。
反正以上假设没人知道孰对孰错,所以我们一起来探索试试!
MNIST立方体
TO BE CONTINUED...