使用聚类模拟深度学习

下面这幅图像是使用K均值聚类得到的结果,看看,是不是跟深度学习的结果有点相似?有点那么个味道?



用来训练的小图片是从一些生活照中随机剪切出来的。下面是对应的matlab代码。

clear all; close all; clc;

% load mnist_uint8.mat;
% X = double(train_x(1 : 1 : end, :)) / 255;

load naturalImgData;
X = double(naturalImgData(1 : 10 : end, :)) / 255;

% X = X - repmat(mean(X, 1), size(X, 1), 1);
X = X - repmat(mean(X, 2), 1, size(X, 2));
maxValue = max(X(:));
minValue = min(X(:));
X = (X - minValue) / (maxValue - minValue) * 2 - 1;

xRot = zeros(size(X)); % You need to compute this
[n m] = size(X);
sigma = (1.0 / m) * X * X';
[u s v] = svd(sigma);
xRot = u' * X;

covar = zeros(size(X, 1)); % You need to compute this
covar = (1 ./ m) * xRot * xRot';

figure('name','Visualisation of covariance matrix');
imagesc(covar);

k = 0; % Set k accordingly
ss = diag(s);

k = length(ss((cumsum(ss) / sum(ss)) <= 0.99));

xHat = zeros(size(X));  % You need to compute this
xHat = u * [u( : , 1 : k)' * X; zeros(n - k, m)];

% fudgefactor = 0;
% X = whiten(X, fudgefactor);

% A = X'*X;
% [V,D] = eig(A);
%  X = X*V*diag(1./(diag(D)+fudgefactor).^(1/2))*V';

visualize(X(1:100, :));

visualize(xHat(1:100, :));

clusterNum = 400;

opts = statset('Display','final');

[idx,ctrs] = kmeans(X, clusterNum, 'Distance','correlation', 'Replicates',1,'Options',opts);

visualize(ctrs);


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值