神经网络的无监督学习

流形学习
创建一个合成的二维流形:
创建一个带有瓶颈层的网络为了学习流形的参数化:
创建一个损失网络,计算基于输入流形上重建错误的损失:
培训流形上的损失网络并从损失网络上提取原始网络:
可视化网络如何把任意点投影到流行上:
把网络分离为编码器解码器网络(编码器使用单个标量值参数化点,其中,解码器根据该参数化重建点):
通过编码器下的参数化在原始流形上着色每个点:
通过把编码器应用到流形上获取参数的范围:
显示沿着原始流形范围上的重建:
MNIST 数字自动编码器
首先,获取培训数据并选择对应于数字 0 到 4 的图像:
自动编码器的输入和输出有同样的形状,网络的中部有瓶颈阻止网络简单地记住输入.
创建一个网络接受维度为 {1,28,28} 的输入并返回同样维度 {1,28,28} 的输出:
之前网络接受输入 784 个实数,压缩成 40 个实数(瓶颈)的向量. 网络然后需要根据这 40 个实数重构原始图像.
创建一个编码器,把图像转换成维度为 {1,28,28} 的数组:
把损失附加在处罚输入域输出不同的自动编码器网络:
在重建错误上培训网络:
获取只执行重建的子网络:
重建某些采样图像:
获取产生代码向量的子网络:
为所有测试图像计算代码:
把代码向量投影到三维并沿着原始标签(网络中不可见)可视化. 数字类倾向于聚类在一起:
在代码向量上执行直接自动聚类并显示从每个聚类获取的样本:
可视化每类随机表示的分层聚类: