神经网络的无监督学习
创建一个带有
“瓶颈
”层的网络为了学习流形的参数化:
创建一个损失网络,计算基于输入流形上
“重建错误
”的损失:
把网络分离为
“编码器
”和
“解码器
”网络(编码器使用单个标量值参数化点,其中,解码器根据该参数化重建点):
首先,获取培训数据并选择对应于数字 0 到 4 的图像:
自动编码器的输入和输出有同样的形状,网络的中部有瓶颈阻止网络简单地记住输入.
创建一个网络接受维度为
{1,28,28} 的输入并返回同样维度
{1,28,28} 的输出:
之前网络接受输入 784 个实数,压缩成 40 个实数(瓶颈)的向量. 网络然后需要根据这 40 个实数重构原始图像.
创建一个编码器,把图像转换成维度为
{1,28,28} 的数组:
把代码向量投影到三维并沿着原始标签(网络中不可见)可视化. 数字类倾向于聚类在一起:
在代码向量上执行直接自动聚类并显示从每个聚类获取的样本: