119、如何评估降维算法在你的数据集上的性能?
一般来说,可以从以下几个方面评估降维算法的性能:
- 保留方差 :如主成分分析(PCA)中的解释方差比例,保留方差越高,说明降维后的数据保留了原始数据的大部分信息。
- 重构误差 :对于可以反向操作的降维算法,通过比较原始数据和重构数据之间的差异来评估,误差越小性能越好。
- 可视化评估 :将数据降维到二维或三维进行可视化,观察数据的分布和聚类情况,若能清晰展示数据结构,表明性能较好。
- 下游任务性能 :将降维后的数据用于机器学习任务(如分类、回归),对比降维前后模型的性能,若模型性能没有显著下降甚至有所提升,说明降维算法有效。
- 计算效率 :评估降维算法的运行时间和内存使用情况,效率高的算法更适合大规模数据集。
120、将两种不同的降维算法串联起来有意义吗?
将两种不同的降维算法串联起来可能有意义,不同算法有不同特点和优势,串联使用可结合它们的长处:
- 先利用一种算法进行初步降维或特征提取
- 再用另一种算法进一步处理,可能获得更好的降维效果
但需要注意:
- 串联使用可能增加计算复杂度
- 可能导致更多信息损失
具体是否有意义需根据实际数据和任务确定。
121、使用 t - SNE 将 MNIST 数据集降维到二维,然后使用 Matplotlib 绘制结果。你可以使用散点图,用 10 种不同的颜色来表示每个图像的目标类别。或者,你可以在每个实例的位置写出彩色数字,甚至绘制数字图像的缩小版本(如果你绘制所有数字,可视化效果会过于杂乱,所以你应该要么随机抽样,要么仅在附近没有其他实例已被绘制的情况下绘制一个实例)。你应该能得到一个不错的可视化结果,其中数字形成了良好分离的簇。尝试使用其他降维算法,如 PCA、LLE 或 MDS,并比较所得的可视化效果。
- 加载 MNIST 数据集
- 使用 t-SNE 算法将数据集降维到二维
- 使用 Matplotlib 绘制散点图,用 10 种颜色区分不同数字类别
- 也可按其他可选方式绘制
- 分别使用 PCA、LLE、MDS 算法进行降维并绘制可视化结果
- 比较不同算法的可视化效果
在 Python 中可使用相应的库(如 sklearn 中的降维算法和 matplotlib 绘图)来实现。
122、能否在同一个会话中运行两个图?
一般来说,在TensorFlow里不能在同一个会话中运行两个图,一个会话通常只关联一个图。
123、为了计算代价函数关于10个变量的梯度,反向模式自动微分需要遍历图多少次?正向模式自动微分呢?符号微分呢?
反向模式自动微分计算所有偏导数只需两次遍历图(一次正向、一次反向),正向模式自动微分计算关于10个变量的梯度需10次遍历图
124、假设你有一个多层感知机(MLP),由一个包含10个直通神经元的输入层、一个包含50个人工神经元的隐藏层和一个包含3个人工神经元的输出层组成。所有人造神经元都使用ReLU激活函数。输入矩阵X的形状是什么?隐藏层的权重向量Wh的形状和其偏置向量bh的形状是什么?输出层的权重向量Wo的形状和其偏置向量bo的形状是什么?网络的输出矩阵Y的形状是什么?写出将网络的输出矩阵Y表示为X、Wh、bh、Wo和bo的函数的方程。
输入矩阵 X 的形状为 (m, 10) ,其中 m 是样本数量;
隐藏层权重向量 Wh 形状为 (10, 50) ,偏置向量 bh 形状为 (50,) ;
输出层权重向量 Wo 形状为 (50, 3) ,偏置向量 bo 形状为 (3,) ;
网络输出矩阵 Y 形状为 (m, 3) 。
方程为:
- 隐藏层输出
H = ReLU(X · Wh + bh) - 输出矩阵
Y = ReLU(H · Wo + bo)

最低0.47元/天 解锁文章
591

被折叠的 条评论
为什么被折叠?



