💥1 概述
数据聚类是最基础和最重要的数据分析手段,实现对海量数据快速智能的聚类分析对于帮助整理、摘要和储存数据具有重要意义。在大数据和人工智能快速发展的背景下,传统聚类算法逐渐不能满足人们的实际需求,基于深度神经网络的聚类方法成为当前领域的热门研究方向。现有的深度聚类算法普遍存在目标函数易退化、泛化能力弱、训练不稳定和无监督神经网络表达性不足等问题。如何设计具有强表达性、泛化性、稳定性的深度聚类算法是人工智能中至关重要的研究问题。致力于克服现有深度聚类存在的研究难点,从目标函数设计、数据增强技术、自步学习算法、同变性特征和自监督表示学习等方面,研究如何提升深度聚类学习特征的质量,最终提高聚类性能。为了进一步解决深度聚类在背景复杂接近自然的图像数据上表现不佳的问题,提出基于图像平移的自监督表示学习算法。自监督学习方法通过预测施加在数据上的变换来为神经网络提供监督信息,实践证明用这种监督信息可以训练更加复杂的神经网络,以及在复杂数据集上学习具有判别性的特征。但现有的基于几何变换的自监督方法受变换产生的边缘效应的影响,性能还有待提升。为了解决该问题,我们设计了预测图像平移的像素个数的自监督任务,并通过对同一平移方向的图像施加相同的掩码来消除边缘效应对该任务的影响。实验证明提出的自监督方法能在复杂图像数据集上学习具有很强判别性的特征,为深度聚类提供了新的特征学习模型。 图像分割是图像分析和模式识别的首要问题,它在很大程度上决定着图像的最终质量分析和判别分析的结果,半监督聚类是目前机器学习和数据挖掘领域的一个研究热点,吸引了众多学者对该领域进行研究,并取得了一定的研究成果。本文对图像分割方法和半监督聚类方法进行了研究,提出了两种基于半监督聚类的图像分割算法,并通过实验对其分割效果进行了验证,一定程度上丰富了图像分割算法的研究内容,给图像分割问题的求解提供了新的思路,具有一定的科研价值和应用潜力。
📚2 运行结果
部分代码:
主函数 clc close all I=imread('football.jpg'); I=double(I)/255; subplot(2,3,1) imshow(I) title('原始图像') for i=2:6 F=imkmeans(I,i); subplot(2,3,i); imshow(F,[]); title(['聚类个数=',num2str(i)]) end 其中部分子函数: function [center]=searchcenter(X,kratio) [n,~]=size(X); isleft=true(n,1); count=zeros(n,1); center=[]; kind=0; dist=0; for i=1:n for j=i+1:n dist=dist+weightdist(X(i,:),X(j,:)); end end dist=dist/((n-1)*(n-1)/2); radius1=dist*kratio(1); radius2=dist*kratio(2); while any(isleft) for i=1:n count(i)=0; if isleft(i) for j=1:n if isleft(j) dist=weightdist(X(i,:),X(j,:)); count(i)=count(i) + dist<=radius1; end end end end [~,locs]=max(count); iscenter=true; for i=1:kind dist=weightdist(X(locs,:),center(i,:)); iscenter=iscenter && dist>=radius2; if ~iscenter break; end end if iscenter kind=kind+1; center(end+1,:)=X(locs,:); for i=1:n if isleft(i) dist=weightdist(X(i,:),X(locs,:)); if dist <= radius1 isleft(i)=false; end end end else isleft(locs)=false; end end
🎉3 参考文献
部分理论来源于网络,如有侵权请联系删除。
[1]郭西风. 基于深度神经网络的图像聚类算法研究[D].国防科技大学,2020.DOI:10.27052/d.cnki.gzjgu.2020.000056.
[2]谭静. 基于半监督聚类的图像分割算法研究[D].中国海洋大学,2012.