如何解决将 PCA 输出与相应的坐标匹配
我有这个数据集,其中包含大约 800 张带有相应坐标和不断变化的背景的汽车绕圈行驶的图像。目标是 训练神经网络根据图像预测位置。我重新塑造了图像,以便 原来的 160x320 像素降低到 1x51200,这样我就可以更轻松地输入 NN。然而,因为 这是一个相当大的维度,我应用了 PCA 来减少维度,PCA 确实运行良好,所以 我只能取具有最高特征值的 100 个特征向量,并且仍然具有总方差的 90-95%。
但现在我的障碍来了:我有这 100 张图像,仍然可以重建和可视化,但我不完全知道它们对应于哪个坐标。我不能只取前 100 个坐标,因为这些特征值显然是从图像的不同时间步长中获取的。我需要这些信息,以便我的 NN 能够在学习时匹配它们,并在测试时检查其进度。我读过一个类似的问题,其中的答案指出不可能从 PCA 输出中提取索引,但我很确定肯定还有其他人已经面临类似的障碍?
解决方法
您必须能够使用 PCA 做什么才能从紧凑到原始表示。
# dataset.shape = (800,51200)
M = pca(dataset); # M.shape = (100,51200)
original = dataset[k,:] # one vector corresponding to one image in your dataset
compressed_dataset = dataset @ M.T; # compressed_dataset.shape = (800,100)
# if you have a compressed representation of an image you restore it with
restored = compressed_dataset[k,:] @ M # .shape = (1,512000)
# here you expect all_close(restored,original)
请注意,索引是从数据向量中分离出来的。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。