%% Starting of EXEM training [mean_Xtr_PCA, V] = do_pca(Xtr); Xtr = bsxfun(@minus, Xtr, mean_Xtr_PCA); Xte = bsxfun(@minus, Xte, mean_Xtr_PCA); % SVR kernel Ker_S = [(1 : length(label_S))', exp(-gamma * pdist2_fast(Sig_S, Sig_S) .^ 2)]; Ker_U = [(1 : length(label_U))', exp(-gamma * pdist2_fast(Sig_U, Sig_S) .^ 2)]; % PCA projection mapped_Xtr = Xtr * V(:, 1 : pca_d); mapped_Xte = Xte * V(:, 1 : pca_d); [mean_Xtr, std_Xtr] = compute_class_stat(Ytr, mapped_Xtr); avg_std_Xtr = mean(std_Xtr, 1); mean_S_rec = zeros(size(Sig_S, 1), pca_d); mean_U_rec = zeros(size(Sig_U, 1), pca_d); mean_U = zeros(size(Sig_U, 1), pca_d); regressors = cell(1, pca_d);
时间: 2024-04-17 15:28:01 浏览: 101
这段代码是EXEM(Extended Exemplar-based Method)训练的开始部分。
首先,使用函数 do_pca 对 Xtr 进行主成分分析(PCA),得到均值 mean_Xtr_PCA 和变换矩阵 V。然后,使用 bsxfun 函数对 Xtr 和 Xte 进行均值归一化,减去 mean_Xtr_PCA。
接下来,构建 SVR(Support Vector Regression)的核矩阵。通过计算 Sig_S 和 Sig_U 之间的欧氏距离的平方,并乘以 -gamma,然后应用指数函数,得到核矩阵 Ker_S 和 Ker_U。其中,Ker_S 包含已知类别样本的索引和对应的核值,Ker_U 包含未知类别样本的索引和对应的核值。
然后,使用 PCA 投影将 Xtr 和 Xte 转换到降维空间。通过将 Xtr 和 Xte 分别乘以前 pca_d 列的特征向量矩阵 V,得到投影后的数据 mapped_Xtr 和 mapped_Xte。
接下来,使用函数 compute_class_stat 计算 Ytr 和 mapped_Xtr 之间的类别统计信息,包括每个类别的均值 mean_Xtr 和标准差 std_Xtr。然后,计算所有类别的平均标准差 avg_std_Xtr。
最后,初始化用于记录重构样本和回归器的变量。mean_S_rec 和 mean_U_rec 是用于重构的已知类别和未知类别样本的均值,mean_U 是未知类别样本的均值,regressors 是用于回归的回归器的单元格数组。
相关问题
%% Starting of EXEM training % PCA learning [mean_Xbase_PCA, V] = do_pca(Xbase); Xbase = bsxfun(@minus, Xbase, mean_Xbase_PCA); Xval = bsxfun(@minus, Xval, mean_Xbase_PCA);
这段代码是EXEM训练的开始部分。首先进行PCA(Principal Component Analysis)学习。
1. `do_pca`函数用于对训练数据集`Xbase`进行PCA降维。返回值`mean_Xbase_PCA`是训练数据集`Xbase`的均值,并且`V`是PCA变换的投影矩阵。
2. 接下来,对训练数据集`Xbase`和验证数据集`Xval`进行均值归一化。通过使用`bsxfun`函数,将训练数据集和验证数据集中的每个样本减去之前计算得到的均值`mean_Xbase_PCA`,以实现均值归一化的操作。
这段代码的目的是在EXEM训练过程中,首先对训练数据集进行PCA降维,然后将训练数据集和验证数据集进行均值归一化,以便后续的模型训练和评估。
function [score_S_eu, score_U_eu, score_S_seu, score_U_seu, score_S_orig_eu, score_S_orig_seu]... = test_EXEM_GZSL(X, mean_S, mean_S_rec, mean_U_rec, std_Xtr) % Prediction accuracy score_S_eu = test_NN_euclidean(X, mean_S_rec); score_U_eu = test_NN_euclidean(X, mean_U_rec); score_S_seu = test_NN_std_euclidean(X, mean_S_rec, std_Xtr); score_U_seu = test_NN_std_euclidean(X, mean_U_rec, std_Xtr); score_S_orig_eu = test_NN_euclidean(X, mean_S); score_S_orig_seu = test_NN_std_euclidean(X, mean_S, std_Xtr); end %%%%%%%%%%%%%%%%%%%% Loss or Accuracy %%%%%%%%%%%%%%%%%%%%%%%%%% function score = test_NN_euclidean(X, mean_X) score = -pdist2_fast(X, mean_X); end function score = test_NN_std_euclidean(X, mean_X, std_X) score = -pdist2_fast(bsxfun(@rdivide, X, std_X), bsxfun(@rdivide, mean_X, std_X)); end
这段代码实现了基于 EXEM 的 GZSL(Generalized Zero-Shot Learning)模型的测试过程。
首先,调用 test_NN_euclidean 函数,将输入样本 X 和已知类别样本的重构特征表示 mean_S_rec 作为参数,计算它们之间的欧氏距离得分,并将结果保存在 score_S_eu 中。
接下来,调用 test_NN_euclidean 函数,将输入样本 X 和未知类别样本的重构特征表示 mean_U_rec 作为参数,计算它们之间的欧氏距离得分,并将结果保存在 score_U_eu 中。
然后,调用 test_NN_std_euclidean 函数,将输入样本 X、已知类别样本的重构特征表示 mean_S_rec 和训练集的标准差 std_Xtr 作为参数,计算它们之间的标准化欧氏距离得分,并将结果保存在 score_S_seu 中。
再次,调用 test_NN_std_euclidean 函数,将输入样本 X、未知类别样本的重构特征表示 mean_U_rec 和训练集的标准差 std_Xtr 作为参数,计算它们之间的标准化欧氏距离得分,并将结果保存在 score_U_seu 中。
最后,调用 test_NN_euclidean 函数,将输入样本 X 和已知类别样本的原始特征表示 mean_S 作为参数,计算它们之间的欧氏距离得分,并将结果保存在 score_S_orig_eu 中。
同时,调用 test_NN_std_euclidean 函数,将输入样本 X、已知类别样本的原始特征表示 mean_S 和训练集的标准差 std_Xtr 作为参数,计算它们之间的标准化欧氏距离得分,并将结果保存在 score_S_orig_seu 中。
这段代码主要是计算输入样本与已知类别样本和未知类别样本之间的距离得分,用于后续的分类准确率计算和模型性能评估。
阅读全文
相关推荐
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)